Stack Overflow'un indirimi için Emacs modu


96

Tüm teknik belgelerimi işlemek için Emacs'ta Org modunu kullanıyorum. Stack Overflow için sahip olduğum soruları hazırlamak için Emacs kullanmak istiyorum. Bunun için bir Emacs modu veya daha iyisi, Yığın Taşması biçimlendirmesini işlemek için Org modu için bir uzantı var mı? İdeal olarak, Stack Overflow soru / yorum arabelleklerinde kullanılan markdown sözdizimi tarafından desteklenen tüm biçimlendirme seçeneklerini içermelidir.


Yanıtlar:


144

Emacs'i Stack Overflow ile Entegre Etme

Belirtildiği gibi , markdown modunu kullanabilirsiniz . Markdown modunu Stack Overflow ile entegre etmek için, metin alanlarını harici bir düzenleyiciyle düzenlemenizi sağlayan Firefox eklentisi It's All Text'i kullanabilirsiniz . İşte nasıl kurulacağı:

  1. Markdown modunu yükleyin . Debian veya Ubuntu kullanıyorsanız, bunu yayınlayarak kurabilirsiniz.

    sudo apt-get install emacs-goodies-el
    

    veya emacs 24 kullanıyorsanız (veya emacs 23'te package.el kullanıyorsanız ) ve Marmalade veya Melpa ile yükleyebilirsiniz.

    M-x package-install RET markdown-mode
    
  2. It's All Text'i yükleyin .

  3. Emacs kullanmak için Hepsi Metin tercihlerini ayarlayın. Ya çalıştırılabilir (örneğin / usr / bin / emacs) ya da emacsclient olarak ayarlayabilirsiniz .
  4. Yığın Taşması ve Yığın Exchange metin alanları için işaretleme modunu etkinleştirmek üzere .emac'lerinize aşağıdakileri ekleyin:

    ;; 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))
    

    Alternatif olarak, as-external-alisttanımlanmışsa ( M-x describe-variable RET as-external-alistbaşarısız olmazsa) muhtemelen sizin auto-mode-alist. Biraz farklı bir biçime sahiptir (bu, eksiler hücreleri listesi yerine çiftlerin bir listesidir), bu nedenle bu işe yarayacaktır:

    (add-to-list 'as-external-alist '("stack\\(exchange\\|overflow\\)\\.com\\.[a-z0-9]+\\.txt" markdown-mode))
    
  5. Emacs aracılığıyla düzenlemek için bir metin alanının sağ alt tarafındaki mavi düzenleme düğmesine basın. Mavi düzenleme düğmesi aşağıdaki ekran görüntüsünde gösterilmektedir:

    Bu metin alanının sağ alt tarafındaki mavi düzenleme düğmesinin ekran görüntüsü

    Aşağıdaki ekran görüntüsünde, bu gönderiyi düzenleyen markdown modunda bir Emacs tamponu gösterilmektedir:

    Bu yazıyı düzenleyen markdown modunda bir Emacs arabelleğinin ekran görüntüsü

  6. Emacs'ta düzenlemeyi bitirdiğinizde, tamponu Firefox'a göndermek için kaydedin.

Bu işlevi diğer alanlar için istiyorsanız, yukarıdaki regexp'i değiştirmeniz gerekir. Aşağıdakiler Stack Exchange, Stack Overflow, Ask Ubuntu ve Super User'ı tanır:

;; 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 modunu Kuruluş modu ile kullanma

Markdow modunu Org modu ile kullanmak için , onun özelliğini kaynak kodu ile çalışmak için kullanabilirsiniz . Bununla birlikte, Markdown modu aracılığıyla düzenleyebileceğiniz Org modu arabelleklerinizin içine markdown blokları ekleyebilirsiniz. Aşağıdaki gibi kullanabilirsiniz:

  1. Kuruluş modu arabelleğindeyken <syeni bir satır girin ve tuşuna basın Tab. Bu sonuçlanacak

    #+begin_src 
    
    #+end_src
    
  2. markdownSonra girin, #+begin_srcböylece sahip olursunuz

    #+begin_src markdown
    
    #+end_src
    
  3. Kaynak bloğun içindeyken ( #+begin_src markdownve arasında #+end_src) C-c 'kaynak bloğu işaretleme modu ile düzenlemek için basın.

  4. Kaynak bloğu markdown modunda düzenleyin.

  5. Basın C-c 'Org modu tamponu dönüp düzenlemeyi ekleyin. Bu, aşağıdaki ekran görüntüsünün gösterdiği gibi görünebilir:

    Bu gönderi için bir indirim kodu bloğunu düzenleyen bir Kuruluş modu arabelleği


2
Eğer varsa as-externalyüklü (veya nxhtml-modehangi yüklemeleri as-external) tamamen sizin ayarlamasını görmezden olabilir auto-mode-alist, değiştirmek istediğiniz değişkeni sonra ise as-external-alist.
quodlibetor

@quodlibetor O as-external-alistzaman tam olarak aynı şekilde değişiklik yapar mıydım ?
NN

@NN Neredeyse tamamen aynı, ancak periyodu iç hücreden çıkarmanız gerekiyor, bu var ve benim için çalışıyor:(add-to-list 'as-external-alist '("stack\\(exchange\\|overflow\\)\\.com\\.[a-z0-9]+" markdown-mode))
quodlibetor

Belki de bu yanıtı SX - Stack Exchange for Emacs'tan bahsetmek için güncelleyebilirsiniz :)
Sean Allred

1
Tüm Metni artık desteklenmiyor ve firefox'un (57+) son sürümleriyle çalışmayacak
Iain

14

Markdown modu var: http://jblevins.org/projects/markdown-mode/

Bazı özelleştirme için http://emacswiki.org/emacs/MarkdownMode adresine bakın .

Ve burada yeni dışa aktarma motoru için bir indirim arka ucu var: http://orgmode.org/w/?p=org-mode.git;a=blob_plain;f=contrib/lisp/org-md.el;hb= KAFA

Emin Eklemek olun contrib/lisp/adresinden Müşteri dizini load-path.

Sonra (require 'org-export)ve (require 'org-md).

M-x org-md-export-to-markdown RET markdown'a aktarılacak.



Bir temel kuruluş- markdown
Nate Parsons

4

@ NN'nin cevabı, ayrıntılardaki bu değişikliklerle birlikte Chrome için de geçerlidir.

Chrome, Hepsi metin'e benzeyen Emacs ile Düzenle uzantısına sahiptir . Yükledikten sonra, uzantı seçenekleri sayfasından daha fazla talimat bulacaksınız.

edit-serverSeçeneklere sahip bir emacs özelleştirme grubu vardır, en önemlisi site başına ana mod değişikliği @ NN'nin cevabından farklı şekilde yapılandırılmıştır:

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

Ayrıca, edit-server'ın terminal emacs'de çalışması için edit-server-new-frameseçeneği devre dışı bırakmam gerekiyordu .


1

Pandoc , kuruluş modunun bir alt kümesini okumak için desteğe sahiptir ve fiyat düşürme çıkışı sağlayabilir.

Başka bir deyişle, italik / bunun gibi / yazmak da dahil olmak üzere kuruluş modunda yazmaya devam edebilir ve ardından markdown'a aktarabilirsiniz. Emacs'den bölgeyi seçerek, Cu MS- \ tuşuna basarak ve pandoc -r org -t markdown yazarak aşağıdaki gibi çıktılar alarak markdown'a dönüştürebilirsiniz:

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

Veya dosyayı kaydedebilir ve komut satırında dönüştürebilirsiniz.


0

Chrome İle Çok Kolay

Bu, Edit with Emacs chrome eklentisi ve Stackoverflow (ve kullandığım diğer Stackexchange siteleri) için markdown modunu kullanmak üzere yapılandırılmış Emacs Edit Server kullanarak çözümümün testinden daha az bir cevaptır . Uzantıyı ve MELPA paketlerini kurduktan sonra tek yapmam gereken

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

Gmail Mesaj Desteği

Yukarıdaki ayarda, gmail mesajları için kuruluş modunu kullanıyorum . Yine de burada biraz çalışmanız gerekiyor, ancak biraz çabayla, gmail mesajınızı org modunu kullanarak taslak haline getirmek ve ardından org yapılandırılmış metninizden html oluşturmak için org-mime kullanmak mümkündür . Sadece markdown ve html dönüşümüne bir markdown kullanabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.