Wstaw bloki kodu w treści wiadomości e-mail

15

Jestem programistą i chciałbym móc odróżniać bloki kodu od zwykłego tekstu, gdy piszę e-maile.

Basically I wanna be able to do this. In the Mail app, (or Sparrow!).

Czy istnieje sposób, aby to zrobić za pomocą skrótu, makra itp., Abym nie musiał za każdym razem sięgać po mysz i zmieniać jak 20 atrybutów czcionki?

garażtrois
źródło

Odpowiedzi:

15

Magia kryjąca się za formatowaniem na StackExchange to świetny skrypt perla o nazwie Markdown . Pobierz go i kliknij dwukrotnie wynikowy plik Markdown_1.0.1.zip.

Następnie w terminalu wpisz

chmod a+x ~/Downloads/Markdown_1.0.1/Markdown.pl
sudo cp ~/Downloads/Markdown_1.0.1/Markdown.pl /usr/local/bin/

Gdy to zrobisz, możesz utworzyć usługę w Automatorze .

Utworzona usługa odbiera tekst sformatowany w dowolnej aplikacji . Odznacz pole, które mówi Wyjście zastępuje zaznaczony tekst.

Twoja usługa będzie zawierać dwie akcje:

Pierwszą akcją jest Uruchom skrypt powłoki . Oto skrypt powłoki:

/usr/local/bin/Markdown.pl | /usr/bin/textutil -stdin -stdout -format html -convert rtf | /usr/bin/pbcopy

Twoja akcja sekcji to Uruchom AppleScript . Oto AppleScript:

tell application "System Events"
    keystroke "v" using {command down}
end tell

Zapisz usługę i, jeśli chcesz, przypisz jej skrót klawiaturowy za pomocą Preferencji systemowych » Klawiatura » Skróty klawiaturowe » Usługi

Następnie możesz wpisać tekst za pomocą kodów formatujących używanych w tej witrynie i uruchomić tę usługę, aby wygenerować sformatowany tekst. Działa to tylko wtedy, gdy wiadomości e-mail są skonfigurowane jako tekst sformatowany - jeśli masz zwykłe wiadomości tekstowe, uruchomienie tej usługi po prostu usunie treść wiadomości, ponieważ sformatowany przez usługę tekst sformatowany nie będzie mógł wklejony.

Daniel
źródło
1
Czystsze niż „renderowanie” HTML w Safari. Lubię to.
jaberg
Niestety, to wciąż nie działa dla mnie. Teraz pojawia się komunikat „Nie udało się zapisać danych wyjściowych” i znów wygląda na to, że jest to spowodowane drugą częścią (wklejenie). Korzystam z wersji 10.6.8 z Automator 2.1.1. Zgaduję, że to problem z wersją.
garageàtrois
1
Jeśli ktoś ma problemy z debugowaniem, mamy pokój: chat.stackexchange.com/rooms/info/2830/...
jaberg
To jest genialne. Dla tych z Was, którzy wolą reStructuredText:/path/to/rst2html.py -q --stylesheet=/create/a/style.css --embed-stylesheet | /path/to/textutil -stdin -stdout -format html -convert rtf | pbcopy
Shabbyrobe
Cholera jasna, to jest super !!! Działa świetnie.
Mike N
2

Zakładając, że swobodnie wysyłasz pocztę HTML, możesz użyć Markdown do sformatowania wiadomości e-mail i utworzyć usługę automatyzacji do konwersji, renderowania i zastąpienia swojej przeceny sformatowanym tekstem.

ᔥ Ryan Gray: Markdown Compose dla Mac OS X Mail

[W] hat musiałem zapisać HTML wygenerowany z konwersji Markdown do pliku tymczasowego, a następnie otworzyć go w Safari, niech Safari wybierze wszystko i skopiuje do schowka (kopiowanie obiektu HTML), a następnie wklei go - zastąpienie wybranego tekstu Markdown. Przepływ pracy usługi pobiera zaznaczony tekst, ale sam nie zastępuje zaznaczenia bezpośrednio.

Instrukcje dotyczące tworzenia tej usługi znajdują się w artykule. Oprócz podania wyraźnej ścieżki do pliku markdown.pl w skrypcie Automator upewnij się, że markdown.pl jest plikiem wykonywalnym.

chmod a+x your/path/to/markdown.pl

Uwaga: wraz ze śmiercią Posterousa oryginalny link do artykułu Ryana Graya uległ zerwaniu. Zredagowałem odpowiedź, aby wskazać wersję zarchiwizowaną w The Internet Archive Wayback Machine . ↬ Dominique za zwrócenie mojej uwagi na niedziałający link.

jaberg
źródło
Artykuł Ryana Graya nie jest już pod adresem podanym teraz, gdy Posterous już nie ma. Jednak Brett Terpstra ma niesamowity zestaw usług OSX dla Markdown !
Dominique
Tak, stale korzystam z usług Markdown firmy Brett.
jaberg
1

Wiem, że ten jest trochę stary - więc tutaj jest swego rodzaju aktualizacja. Trudno mi było poprawnie uruchomić skrypt powłoki tej odpowiedzi .

Zainstalowałem Markdown poprzez brew .

W skrypcie powłoki „Pass input:” set to „as arguments”. Miałem sukces z tą odmianą skryptu powłoki:

/usr/local/bin/markdown <( echo "$1" ) | /usr/bin/textutil -stdin -stdout -convert rtf -format html | /usr/bin/pbcopy

AppleScript pozostał taki sam.

wprowadź opis zdjęcia tutaj

Tomek
źródło
0

Używam takiego skryptu powłoki:

echo "<style>
$(cat /Applications/Marked.app/Contents/Resources/swiss.css |
sed 's/&/&amp;/g;s/</\&lt;/g;s/>/\&gt;/g')
</style>
$(cat | pandoc --strict -p)" |
textutil -stdin -stdout -inputencoding UTF-8 -format html -convert rtf |
LC_CTYPE=UTF-8 pbcopy

pandoc --strict -p działa jak Markdown.pl i zachowuje zakładki.

-inputencoding UTF-8jest wymagany do zachowania znaków spoza ASCII. LC_CTYPE=UTF-8nie jest potrzebne, jeśli LC_CTYPE jest już ustawiony na ustawienia regionalne UTF-8.

Lri
źródło