Emacs-Modus für den Markdown des Stapelüberlaufs


96

Ich verwende den Org-Modus in Emacs, um alle meine technischen Dokumentationen zu bearbeiten. Ich möchte Emacs verwenden, um Fragen vorzubereiten, die ich für den Stapelüberlauf habe. Gibt es dafür einen Emacs-Modus oder noch besser eine Erweiterung für den Org-Modus für die Stapelüberlauf-Formatierung? Im Idealfall sollten alle Formatierungsoptionen enthalten sein, die von der Markdown-Syntax unterstützt werden, die in den Fragen- / Kommentarpuffern für den Stapelüberlauf verwendet wird.


Diejenigen, die diese Frage lesen, könnten an SX - Stack Exchange for Emacs
Sean Allred

Antworten:


144

Emacs in Stack Overflow integrieren

Wie bereits erwähnt , können Sie den Markdown-Modus verwenden . Um den Markdown-Modus in Stack Overflow zu integrieren, können Sie das Firefox-Plugin It's All Text verwenden, mit dem Sie Textbereiche mit einem externen Editor bearbeiten können. So richten Sie es ein:

  1. Markdown-Modus installieren . Wenn Sie Debian oder Ubuntu verwenden, können Sie es durch Ausgabe installieren

    sudo apt-get install emacs-goodies-el

    oder wenn Sie auf Emacs 24 (oder package.el auf Emacs 23) und Marmelade oder Melpa haben , können Sie es mit installieren

    M-x package-install RET markdown-mode
  2. Installieren Sie It's All Text .

  3. Legen Sie die Einstellungen von It's All Text für die Verwendung von Emacs fest. Entweder können Sie es auf die ausführbare Datei (z. B. / usr / bin / emacs) oder den Emacsclient setzen .
  4. Fügen Sie Ihren .emacs Folgendes hinzu, um den Markdown-Modus für die Textbereiche Stapelüberlauf und Stapelaustausch zu aktivieren:

    ;; Integrate Emacs with Stack Exchange https://stackoverflow.com/a/10386560/789593
    (add-to-list 'auto-mode-alist '("stack\\(exchange\\|overflow\\)\\.com\\.[a-z0-9]+\\.txt" . markdown-mode))
    

    Wenn alternativ as-external-alistdefiniert ist - wenn M-x describe-variable RET as-external-alistdies nicht fehlschlägt - wird es wahrscheinlich Ihre überschreiben auto-mode-alist. Es hat ein etwas anderes Format (es ist eine Liste von Paaren anstelle einer Liste von Nachteile-Zellen), so dass dies funktioniert:

    (add-to-list 'as-external-alist '("stack\\(exchange\\|overflow\\)\\.com\\.[a-z0-9]+\\.txt" markdown-mode))
  5. Drücken Sie die blaue Bearbeitungstaste unten rechts in einem Textbereich, um ihn über Emacs zu bearbeiten. Die blaue Schaltfläche zum Bearbeiten wird im folgenden Screenshot angezeigt:

    Screenshot der blauen Schaltfläche zum Bearbeiten unten rechts in diesem Textbereich

    Im folgenden Screenshot sehen Sie einen Emacs-Puffer im Markdown-Modus, der diesen Beitrag bearbeitet:

    Screenshot eines Emacs-Puffers im Markdown-Modus, der diesen Beitrag bearbeitet

  6. Wenn Sie mit der Bearbeitung in Emacs fertig sind, speichern Sie den Puffer, um ihn an Firefox zu senden.

Wenn Sie diese Funktionalität für andere Domänen wünschen, müssen Sie den obigen regulären Ausdruck ändern. Im Folgenden werden Stack Exchange, Stack Overflow, Ask Ubuntu und Super User erkannt:

;; Integrate Emacs with Stack Exchange https://stackoverflow.com/a/10386560/789593
(add-to-list 'auto-mode-alist '("\\(stack\\(exchange\\|overflow\\)\\|superuser\\|askubuntu\\)\\.com\\.[a-z0-9]+\\.txt" . markdown-mode))

Markdown-Modus mit Org-Modus verwenden

Um den Markdow-Modus mit dem Org-Modus zu verwenden, können Sie seine Funktion zum Arbeiten mit dem Quellcode verwenden . Damit können Sie Markdown-Blöcke in Ihre Org-Modus-Puffer aufnehmen, die Sie über den Markdown-Modus bearbeiten können. Sie können es wie folgt verwenden:

  1. Wenn Sie sich in einem Org-Modus-Puffer befinden, geben Sie <seine neue Zeile ein und drücken Sie Tab. Dies führt zu

    #+begin_src 
    
    #+end_src
    
  2. Geben Sie markdowndanach ein, #+begin_srcdamit Sie haben

    #+begin_src markdown
    
    #+end_src
    
  3. Im Quellblock (zwischen #+begin_src markdownund #+end_src) drücken Sie C-c ', um den Quellblock im Markdown-Modus zu bearbeiten.

  4. Bearbeiten Sie den Quellblock im Markdown-Modus.

  5. Drücken Sie C-c ', um zum Org-Modus-Puffer zurückzukehren und die Bearbeitung einzufügen. Dies kann so aussehen, wie der folgende Screenshot zeigt:

    Ein Org-Modus-Puffer, der einen Block Markdown-Code für diesen Beitrag bearbeitet


2
Wenn Sie as-externalinstalliert haben (oder nxhtml-modewelche installiert werden as-external), wird Ihre Anpassung von möglicherweise vollständig ignoriert auto-mode-alist. Die Variable, die Sie ändern möchten, lautet dannas-external-alist .
Quodlibetor

@quodlibetor Würde ich as-external-alistdann genau so ändern ?
NN

@NN Es ist fast genau das gleiche, aber Sie müssen die Periode aus der inneren Zelle herausnehmen, ich habe dies und es funktioniert für mich:(add-to-list 'as-external-alist '("stack\\(exchange\\|overflow\\)\\.com\\.[a-z0-9]+" markdown-mode))
Quodlibetor

Vielleicht können Sie diese Antwort aktualisieren, um SX - Stack Exchange für Emacs zu erwähnen :)
Sean Allred

1
Sein All Text wird nicht mehr unterstützt und läuft nicht mit neueren Versionen von Firefox (57+)
Iain

14

Es gibt einen Markdown-Modus: http://jblevins.org/projects/markdown-mode/

Weitere Anpassungen finden Sie unter http://emacswiki.org/emacs/MarkdownMode .

Und hier gibt es ein Markdown-Backend für die neue Export-Engine: http://orgmode.org/w/?p=org-mode.git;a=blob_plain;f=contrib/lisp/org-md.el;hb= KOPF

Stellen Sie sicher, dass Sie das contrib/lisp/Verzeichnis zu Ihrem hinzufügen load-path.

Dann (require 'org-export)und (require 'org-md).

M-x org-md-export-to-markdown RET wird nach Markdown exportiert.



Ich habe einen grundlegenden Exporteur von org-markdown gefunden: github.com/alexhenning/ORGMODE-Markdown
Nate Parsons

4

Die Antwort von @ NN gilt mit diesen Detailänderungen auch für Chrome.

Chrome verfügt über die Erweiterung " Bearbeiten mit Emacs" , die "Es ist alles Text" ähnelt. Nach der Installation finden Sie weitere Anweisungen auf der Seite mit den Erweiterungsoptionen.

Es gibt eine Emacs-Anpassungsgruppe edit-servermit Optionen. Am wichtigsten ist, dass die Hauptmodusänderung pro Site anders konfiguriert ist als in der Antwort von @ NN:

(add-to-list 'edit-server-url-major-mode-alist
             '("^stackoverflow" . markdown-mode))

Damit der Edit-Server in Terminal-Emacs funktioniert, musste ich die edit-server-new-frameOption deaktivieren .


1

Pandoc unterstützt das Lesen einer Teilmenge des Organisationsmodus und kann Markdowns ausgeben.

Mit anderen Worten, Sie können weiterhin im Organisationsmodus schreiben, einschließlich Kursivschrift / wie diese /, und dann nach Markdown exportieren. Von Emacs können Sie in Markdown konvertieren, indem Sie die Region auswählen, Cu MS- \ drücken und pandoc -r org -t Markdown eingeben, um die folgende Ausgabe zu erhalten:

In other words, you can keep writing in org-mode, including writing italics *like this*, and then export to markdown.

Sie können die Datei auch speichern und in der Befehlszeile konvertieren.


0

Auch mit Chrome ist das ganz einfach

Dies ist weniger eine Antwort als ein Test für meine Lösung die Verwendung Bearbeiten mit Emacs Chrom - Plugin und der Emacs Edit Server konfiguriert verwenden Abschlags-Modus für Stackoverflow (und andere Stack Seiten , die ich verwenden). Alles, was ich nach der Installation der Erweiterung und der MELPA- Pakete tun musste, war festgelegt

(setq edit-server-url-major-mode-alist
             '(("mail.google.com" . org-mode)
               ("stackoverflow\\.com" . markdown-mode)
               (".*\\.stackexchange\\.com" . markdown-mode)
               ("github\\.com" . markdown-mode)))

Google Mail-Nachrichtenunterstützung

Beachten Sie in der obigen Einstellung, ich bin mit org-Modus für Google Mail - Nachrichten. Sie müssen hier noch ein wenig arbeiten, aber mit ein wenig Aufwand können Sie Ihre Google Mail-Nachricht im org-Modus erstellen und dann mit org-mime HTML aus Ihrem org-strukturierten Text generieren. Sie können einfach Markdown und eine Konvertierung von Markdown in HTML verwenden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.