31. Januar 2014

Markdown-Link inklusive Titel aus erstem Google-Suchergebnis erstellen

Keyboard Maestro Icon

Du schreibst deine Beiträge in Markdown? Sehr gut. Was, wenn du ein Schlagwort hast, dass du verlinken willst? Es macht z.B. Sinn, den Namen einer App auf die Herstellerwebseite zu verlinken. Also öffnest du deinen Browser, tippst den Namen vermutlich bei Google ein, klickst auf das erste Ergebnis, kopierst die URL und fügst sie in deinem Schreibprogramm ein. Umständlich, oder?

Darum hat Brett Terpstra, Indie-Entwickler und Über-Nerd, ein Skript namens SearchLink geschrieben. Es gibt dir die Möglichkeit anhand festgelegter Suchbegriffe das erste Suchergebnis als Markdown-Link zu erhalten. Dadurch wird aus den 5 Schritten von oben ein einziger.

Du notierst deinen Link in einem vorgegebenen Format und lässt vor dem Weiterverarbeiten das Skript drüber laufen. Es wird die Suchwörter erkennen, die Suchen im Hintergrund ausführen und relevante Stellen mit korrekten Links im Markdown-Format ersetzen. Dabei unterstützt es nicht nur Google-Suchen, sondern auch den iTunes App Store, Wikipedia, Amazon und mehr.

Syntax

Die Syntax für eine Google-Suche lautet:

Ein Link auf [iEnno](!g "iEnno Mac").

!g deutet auf eine Google Suche hin, "iEnno Mac" ist der zugehörige Suchbegriff. SearchLink drüber laufen lassen und das Ergebnis ist

Ein Link auf [iEnno](http://www.ienno.de/ "iEnno | Ein Macianer auf seinem Spielplatz").

Enno Style

Du kannst SearchLink so benutzen wie von Herrn Terpstra vorgesehen und damit glücklich werden. Da ein über Rechtsklick verfügbarer System Service zwar nett, aber nicht das Ende der Fahnenstange ist, habe ich noch ein paar Anpassungen vorgenommen. Vorwarnung: ab hier wird es etwas nerdig.

Was ich geändert habe:

  1. Ich brauche ausschließlich die Google Suche.
  2. Aus irgendeinem Grund funktioniert das Skript bei mir (!) nur, solang Googles Server über IPv4 angesprochen werden. Ich vermute irgendwas Kabel-Deutschlandiges dahinter. Darum muss ich eine Verbindung über IPv6 ausschließen.
  3. Aufruf über Keyboard Maestro, da einfaches Shortcut-Handling.

Der erste Punkt geht durch Löschen von unrelevanten Code-Zeilen, logisch. Der Zweite ist ein bisschen aufwändiger. Über Net:HTTP kann ich keine Angabe zur Nutzung von IPv4 machen, darum habe ich es etwas unelegant direkt über curl gemacht.

resp = `curl -4 --silent 'ajax.googleapis.com/ajax/services/search/web?v=1.0&q=#{CGI.escape(terms)}&filter=1&rsz=small'`.force_encoding('iso-8859-1').encode('utf-8')

Außerdem übergebe ich den zu ersetzenden String in Form einer Keyboard-Maestro-Variable mit dem kreativen Namen param.

Zum Nachmachen

Das abgewandelte SearchLink-Skript gibt es als Gist, das Keyboard-Maestro-Macro aufgrund der sowieso nötigen Anpassungen nicht als Direkt-Download, sondern als Screenshot zum Selberbauen:

Keyboard-Maestro-Macro

Keyboard-Maestro-Macro

  1. Den ausgewählten Text kopieren.
  2. Nach Keywords für die Google-Suche fragen. Dabei den kopierten Text als Vorauswahl zur Verfügung stellen.
  3. SearchLink-Format in der param-Variable speichern.
  4. SearchLink-Skript ausführen, was anhand von param und dem ersten Google-Suchergebnis einen Markdown-Link zurückgibt. Alles unterhalb dieser Aktion sind Aufräumarbeiten.

Wie gesagt, es ist sehr nerdig und nicht ganz easy. Aber einmal zum Laufen gebracht ist die Zeitersparnis enorm. Über den normalen Weg ist man schnell, wenn man 8 bis 10 Sekunden benötigt. SearchLink schafft’s i.d.R. in 2. Leute, das sind 6 Sekunden mehr Katzenbilder pro Link. Wenn das nix is.

Nein ernsthaft, nach dem automatischen Upload zu WordPress ist SearchLink die größte Effizienzbombe in meinem Blogging-Workflow.

Dir gefällt, was du liest?
Sehr schön ;) Erzähl es doch weiter!