[TextMate] Markdown Header mit Ruby formatieren

19.02.09 | Kategorie: news | Kommentieren?
Tags: , , , , , ,
(No Ratings Yet)
Loading ... Loading ...
new_header_tmcommand.png

Wie viele meiner Leser vielleicht schon wissen, bin ich ein Fan von Markdown.

Markdown formatiert Überschriften in folgender Schreibweise:

#Überschrift

Dabei steht das # für die Grösse der Überschrift. Je mehr # desto kleiner wird die Überschrift. Nach dem umwandeln per Markdown wird nämlich # zu <h1> und ## zu <h2>.

Ich fand die Schreibweise eigentlich sehr hübsch nur leider wollte ich immer auch am Ende jeder Überschrift die gleiche Anzahl an Rauten stehen haben, ausserdem sollte zwischen Raute(n) und Text ein Leerzeichen sein. Aus oben genanntem Beispiel wird also:

# Überschrift #

Naja…wie dem auch sei. Ich bin aber auch ein ziemlich fauler Sack und lasse meinen Computer solche Strafarbeiten gerne für mich erledigen. Deshalb habe ich mir ein kleines Ruby Script geschrieben, welches ich in TextMate integriert habe und per Shortcut aufrufe.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/env ruby
 
dashes = ""
output = ""
until dashes.length == ENV['TM_CURRENT_LINE'].count("#")
    dashes.concat('#')
end
 
# strip every original occurence of "#"
ENV['TM_CURRENT_LINE'] = ENV['TM_CURRENT_LINE'].gsub(/[\#]/, '')
# strip first occurence of \s
ENV['TM_CURRENT_LINE'] = ENV['TM_CURRENT_LINE'].gsub(/^[\s]/,'')
 
puts output.concat(dashes).concat(" ").concat(ENV['TM_CURRENT_LINE']).concat(" ").concat(dashes)
puts ""
puts "${0}"

Selbst einrichten:

  1. Bundles >> Bundle Editor >> Show Bundle Editor
  2. Unten rechts auf das ”+” klicken und dort wählen “New Command”.
  3. In das grosse Textfeld das Skript von oben reinkopieren.
  4. Input: “Selected Text” or “Line”, Output: “Insert as Snippet”, Activation: “Key Equivalent” ⌅ (bei mir), Scope Selector: text.html.markdown

Fertig. Jetzt kann dieses neue Command per ⌅ aufgerufen werden.

Runterladen

Runterladen geht auch. Folgende Datei runterladen, doppelklicken und dann in das gewünschte Bundle in eurem Bundle Editor verschieben.

New Header.tmCommand

No related posts.

have your say

Kommentiere oder setze einen Trackback zu diesem Eintrag.
Neue Kommentare per RSS.

Be nice. Keep it clean. Stay on topic. No spam.

:

:


«
»