Jekyll: Semiautomatische Postings auf Twitter

Bisher teile ich meine Beiträge selektiv und manuell auf den sozialen Medien wie Facebook, Twitter und Co. Das mache ich vor allem deshalb, weil einige technische Dokumente eher für mich als Referenz dienen und weniger für eine Diskussion gedacht sind. Ich war schon länger auf der Suche nach einer Lösung hier “selektiv automatisch” zu posten und in diesem Beitrag habe ich einen guten Ansatz gefunden.

Im wesentlichen ist die Idee einfach. Es gib einen RSS Feed für jeden Dienst der durch eine Variable in Post gefüllt wird. Dann nehmen wir den bekannten Dienst If-Then-That (IFTTT) für die Postings.

Ich fange erst einmal mit Twitter an. Zuerst bauen wir das Jekyll Layout

cd _layouts
vi social-feed.xml
   ---
    layout: social-feed
    ---
    <?xml version="1.0" encoding="UTF-8"?>
    <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
      <channel>
        <title>{{ site.title | xml_escape }}</title>
        <description>{{ site.description | xml_escape }}</description>
        <link>{{ site.url }}</link>
        <atom:link href="{{"/atom.xml" | prepend: site.url }}" rel="self" type="application/rss+xml"/>
        <pubDate>{{ site.time | date_to_rfc822 }}</pubDate>
        <lastBuildDate>{{ site.time | date_to_rfc822 }}</lastBuildDate>
        <generator>Jekyll v{{ jekyll.version }}</generator>
        {% assign platform = page.title | downcase %}
        {% for post in site.posts limit:10 %}
            {% assign share = post.share | downcase %}
            {% if share contains platform %}
            <item>
                <title>{{ post.title | xml_escape }}</title>
                <pubDate>{{ post.date | date_to_rfc822 }}</pubDate>
                <link>{{ post.url | prepend: site.url }}</link>      
            </item>
            {% endif %}
        {% endfor %}
      </channel>
    </rss>

Dann das Template für den Twitterfeed

    cd ..
    mkdir social-feeds
    cd social-feeds
    vi twitter.xml
        ---
        layout: social-feed
        title: twitter
        ---

Wenn man jetzt in einem Post die Variable “share: twitter” im YAML Header verwendet wird der Post in dem RSS Feed für Twitter aufgenommen der im Verzeichnis social-feeds erstellt wird.

Dann hat man die Basis gelegt. Jetzt kann man unter ifttt ein “Rezept” anlegen bei dem die Quelle der eben generierte RSS Feed ist und als Ziel Twitter angegeben wird.