[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.
Ü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:

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:
Funktionsweise
–
– 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:
if imgWidth is greater than maxWidth then
set thumbWidth to maxWidth
else
set thumbWidth to imgWidth
end if
if imgHeight > maxHeight then
set thumbHeight to maxHeight
else
set thumbHeight to imgHeight
end if
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.




Neueste Kommentare