[mac] Thumbnail-Support für MarsEdit

Da MarsEdit keine Thumbnails unterstützt und ich diese doch sehr gern und viel einsetze, hab ich mir eine kleine Lösung dazu gebastelt.

Wie Wordpress mit Bilderuploads grundsätzlich umgeht war mir bisher noch nicht so bekannt. Beim genaueren hinschauen hab ich aber gemerkt, dass Wordpress immer 3 Versionen von den Bildern anlegt. Ein Thumbnail (bei mir 150×150 px), eine verkleinerte Version (hier 450px) und die Orginaldatei. Das Benennungsschema ist:

dateiname-widthxheight.endung

Mit dieser Grundlage kann man sich also schon theoretisch die Dimensionen des Bildes ausrechnen und dann den Dateinamen selber einsetzen. Das ganze (vor allem das Ausrechnen) war mir aber dann doch zu anstrengend und daher hab ich nach einer automatisierten Lösung gesucht.

MarsEdit-MenuBar.png

Über das Script-Menü kann man auf einige mitgelieferte Scripte zugreifen. Allerdings kann man natürlich auch eigene schreiben und genau das habe ich versucht. Das Ergebnis sieht so aus:

Script Menü mit Thumbnail-Einträgen

Anleitung

Man läd zuerst ganz normal ein Bild hoch und bekommt dann den img-Tag im Editor angezeigt. Diesen markiert man nun komplett (wichtig!) und wählt dann im Menü das entsprechende Script aus. Nun wird das img-Tag durch einen a-Tag erweitert und durch das Thumbnail ersetzt. Das Ergebnis sieht dann so aus:

Nach dem Script ausführen

Funktionsweise

– Wordpress Medium Size Image

– Converts a MarsEdit-Image Tag to the image-tag of the medium sized image and links it with the orginal image.

– Author: Lucas Bares 2010 (http://www.luke-b.com)
– Version: 0.1

set maxWidth to 450
set maxHeight to 450

on displayErrorMessage(s)
    display dialog (s) buttons {"OK"} default button "OK" with icon caution
end displayErrorMessage

tell application "MarsEdit"
    
    try
        set currentWindow to document 1
    on error errorMessage
        displayErrorMessage("Can’t run Script because no post window is open!") of me
        return
    end try
    
    set s to selected text of currentWindow
    if (s is equal to "") then
        displayErrorMessage("No Image URL selected") of me
        return
    else
        – Split transmitted data and extract info
        set AppleScript’s text item delimiters to "\""
        set attList to every text item of s
        set imgPath to item 2 of attList
        set imgAlt to item 4 of attList
        set imgBorder to item 6 of attList
        set imgWidth to item 8 of attList as integer
        set imgHeight to item 10 of attList as integer
        
        – Calculate image dimensions
        if imgWidth > imgHeight then
            set thumbWidth to maxWidth
            round ((imgHeight * maxHeight) / imgWidth) rounding down
            set thumbHeight to result
        else
            set thumbHeight to maxHeight
            round ((imgWidth * maxHeight) / imgHeight) rounding down
            set thumbWidth to result
        end if
        
        – Extract filename without file extension in -> f
        set AppleScript’s text item delimiters to "."
        set nameListe to every text item of imgPath
        set f to first item of nameListe
        set i to 2
        
        repeat while i is not (count of nameListe)
            set f to f & "." & (item i of nameListe)
            set i to i + 1
        end repeat
        
        – Build link
        set newString to ""
        set newString to "<a href=\"" & imgPath & "\" rel=\"lightbox[post]\">\n"
        set newString to newString & "  <img class=\"alignnone size-thumbnail\" src=\"" & f & "-" & thumbWidth & "x" & thumbHeight & "." & (last item of nameListe) & "\" alt=\"" & imgAlt & "\" />\n"
        set newString to newString & "</a>\n"
        
        
        set selected text of document 1 to newString
    end if
end tell

Das Script macht im Wesentlichen nicht anderes, als den Tag etwas auseinanderzunehmen, die Maße des neuen Bildes zu berechnen und somit den Pfad zur verkleinerten Version zu errechnen. Danach baut es etwas HTML-Code und ersetzt den markierten Text im Editor

Beim kleinen Thumbnail ist der Code etwas anders, da hier das Bild zugeschnitten wird. Vom Grundsatz her ist der Code aber gleich:

Installation

Da ich bisher noch nie AppleScript programmiert bzw geschrieben habe, ist das Script sicherlich nicht sonderlich hochwertig, aber es erfüllt seinen Dienst und lässt sich ziemlich leicht anpassen. Wer es will kann es gerne über die unten angefügten Links downloaden. Danach müsst ihr die beiden Script-Dateien nur noch in

User/Library/Application Support/MarsEdit/Scripts

kopieren und sie müssten im Menü auftauchen.

Zum Download klicken


3 Responses to “[mac] Thumbnail-Support für MarsEdit”

  • [mac] Mars Edit als Alternative zu MacJournal | LuKe-B | Personal Blog Says:

    [...] bei Wordpress Leider ist kein Thumbnail-Support integriert. Aber dank AppleScript hab ich eine kleine Lösung mir gebastelt, mit der man doch noch zu den Thumbnails kommt. Mehr dazu [...]

  • Björn Says:

    Also entweder stell ich mich zu doof an oder das Script funktioniert nicht mehr.

    - MarsEdit 3.3.4 unter OSX 10.7.2

  • LuKe Says:

    Da ich mittlerweile MarsEdit nicht mehr nutze kann ich nicht mehr garantieren, dass das Script noch funktioniert.

    Da das Script eigentlich relativ API-Unabhängig ist und lediglich einen String bearbeitet wundert es mich allerdings etwas.

    Funktioniert das Script allgemein nicht mehr, passiert nichts, oder ist der generierte Link falsch?

Leave a Reply