Tag Cloud Images aus Jekyll Tags erstellen

Ich wollte aus den Tags meines Jekyll Blogs ein kleines Bild einer Tagcloud des Blogs erstellen um dies in der rechten Spalte als Icon anzuzeigen. Es gäbe zwar die Möglichkeit eine echte verlinkte Tagcloud zu erstellen nur hat dies den Nachteil das es die Buildzeit in der aktuellen Jekyll Version in unakzeptable Zeiten bringt. Die Tagcloud würde für jede Seite einzeln erstellt werden.

Das Python Modul word_cloud kann recht einfach auf Basis eines Textes solche Wortwolken erstellen.

Zuerst erzeuge in in einem Layout einen Text mit allen Tags der Blogbeiträge

    
    ---
    layout: none
    ---
    {% for post in site.posts %}
            {% if post.draft != true %}
    {% for tag in post.tags %}{{ tag }}  {% endfor %}
            {% endif %}
        {% endfor %}
    

Auf Basis der Beispielprogramme habe ich mir folgendes Script erstellt das mir mit dem gerade erzeugten Text eine einfarbige Tagcloud erstellt und an die “richtige” Stelle kopiert

    #!/usr/bin/env python2
    from os import path
    import matplotlib.pyplot as plt
    from wordcloud import WordCloud,STOPWORDS
    def red_color_func(word, font_size, position, orientation, random_state=None, **kwargs):
        return (182,16,36)
    d = path.dirname(__file__)
    stopwords = STOPWORDS.copy()
    stopwords.add("movabletype")
    stopwords.add("prism")
    text = open(path.join(d, '_site/tagcloud.txt')).read()
    wordcloud = WordCloud(background_color="white", max_words=25, stopwords=stopwords).generate(text)
    plt.imshow(wordcloud.recolor(color_func=red_color_func, random_state=3))
    wordcloud.to_file(path.join(d, "assets/tag-cloud.png"))
25.7.15 Weitere Beiträge zu: jekyll wordcloud

Dies ist ein privater Blog von Hagen Bauer- berufstätiger Vater, Ehemann, Naturliebhaber, Läufer, Zelter, technikverliebt.


Creative Commons License
This blog is licensed under a Creative Commons License