Mode Emacs untuk penurunan harga Stack Overflow

96

Saya menggunakan Org-mode di Emacs untuk menangani semua dokumentasi teknis saya. Saya ingin menggunakan Emacs untuk mempersiapkan pertanyaan yang saya miliki untuk Stack Overflow. Apakah ada mode Emacs untuk itu, atau bahkan lebih baik, ekstensi untuk Org-mode untuk menangani pemformatan Stack Overflow? Idealnya itu harus mencakup semua opsi pemformatan yang didukung oleh sintaks penurunan harga yang digunakan dalam pertanyaan / buffer komentar Stack Overflow.

blueFast
sumber
Mereka yang membaca pertanyaan ini mungkin tertarik dengan SX - Stack Exchange for Emacs!
Sean Allred

Jawaban:

144

Mengintegrasikan Emacs dengan Stack Overflow

Seperti yang disebutkan, Anda dapat menggunakan mode penurunan harga . Untuk mengintegrasikan mode penurunan harga dengan Stack Overflow, Anda dapat menggunakan plugin Firefox It's All Text yang memungkinkan Anda mengedit area teks dengan editor eksternal. Berikut cara menyiapkannya:

  1. Pasang mode penurunan harga . Jika Anda menggunakan Debian atau Ubuntu, Anda dapat menginstalnya dengan menerbitkan

    sudo apt-get install emacs-goodies-el

    atau jika Anda menggunakan emacs 24 (atau memiliki package.el di emacs 23) dan Marmalade atau Melpa Anda dapat menginstalnya dengan

    M-x package-install RET markdown-mode
  2. Instal Ini Semua Teks .

  3. Setel preferensi It's All Text untuk menggunakan Emacs. Anda dapat menyetelnya ke file yang dapat dieksekusi (mis. / Usr / bin / emacs) atau emacsclient .
  4. Tambahkan berikut ini ke .emacs Anda untuk mengaktifkan mode penurunan harga untuk area teks Stack Overflow dan Stack Exchange:

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

    Atau, jika as-external-alistditentukan — jika M-x describe-variable RET as-external-alisttidak gagal — ini mungkin akan menimpa file auto-mode-alist. Ini memiliki format yang sedikit berbeda (ini adalah daftar pasangan, bukan daftar sel kontra) jadi ini akan berfungsi:

    (add-to-list 'as-external-alist '("stack\\(exchange\\|overflow\\)\\.com\\.[a-z0-9]+\\.txt" markdown-mode))
  5. Tekan tombol edit biru di sisi kanan bawah textarea untuk mengeditnya melalui emacs. Tombol edit biru ditunjukkan pada tangkapan layar berikut:

    Tangkapan layar dari tombol edit biru di sisi kanan bawah textarea ini

    Pada screenshot berikut adalah buffer Emacs dalam mode penurunan harga yang mengedit posting ini:

    Tangkapan layar dari buffer Emacs dalam mode penurunan harga mengedit posting ini

  6. Setelah Anda selesai mengedit di Emacs simpan buffer untuk mengirimkannya ke Firefox.

Jika Anda menginginkan fungsionalitas ini untuk domain lain, Anda perlu mengubah regexp di atas. Berikut ini adalah Stack Exchange, Stack Overflow, Ask Ubuntu, dan Super User:

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

Menggunakan mode penurunan harga dengan mode Org

Untuk menggunakan mode markdow dengan mode Org, Anda dapat menggunakan fiturnya untuk bekerja dengan kode sumber . Dengannya Anda dapat memasukkan blok penurunan harga di dalam buffer mode Org yang dapat Anda edit melalui mode penurunan harga. Anda dapat menggunakannya sebagai berikut:

  1. Ketika dalam buffer Org-mode masuk <sdi baris baru dan tekan Tab. Ini akan menghasilkan

    #+begin_src 
    
    #+end_src
  2. Masukkan markdownsetelah #+begin_srcjadi yang Anda miliki

    #+begin_src markdown
    
    #+end_src
  3. Saat berada di dalam blok sumber (antara #+begin_src markdowndan #+end_src) tekan C-c 'untuk mengedit blok sumber dengan mode penurunan harga.

  4. Edit blok sumber dalam mode penurunan harga.

  5. Tekan C-c 'untuk kembali ke buffer Org-mode dan masukkan edit. Ini bisa terlihat seperti yang ditunjukkan oleh tangkapan layar berikut:

    Buffer mode Org yang mengedit blok kode penurunan harga untuk posting ini

NN
sumber
2
Jika Anda telah as-externalmenginstal (atau nxhtml-modeyang menginstal as-external) mungkin benar-benar mengabaikan penyesuaian Anda auto-mode-alist, variabel yang ingin memodifikasi kemudian adalah as-external-alist.
quodlibetor
@quodlibetor Apakah saya akan memodifikasi as-external-alistdengan cara yang sama persis?
NN
@NN Ini hampir persis sama, tetapi Anda perlu mengambil periode keluar dari sel dalam, saya memiliki ini dan ini bekerja untuk saya:(add-to-list 'as-external-alist '("stack\\(exchange\\|overflow\\)\\.com\\.[a-z0-9]+" markdown-mode))
quodlibetor
Mungkin Anda dapat memperbarui jawaban ini untuk menyebutkan SX - Stack Exchange untuk Emacs :)
Sean Allred
1
Semua Teksnya tidak lagi didukung dan tidak akan berjalan dengan versi terbaru firefox (57+)
Iain
14

Ada mode penurunan harga: http://jblevins.org/projects/markdown-mode/

Lihat http://emacswiki.org/emacs/MarkdownMode untuk beberapa penyesuaian.

Dan ada backend penurunan harga untuk mesin ekspor baru di sini: http://orgmode.org/w/?p=org-mode.git;a=blob_plain;f=contrib/lisp/org-md.el;hb= KEPALA

Pastikan Anda menambahkan contrib/lisp/direktori ke load-path.

Lalu (require 'org-export)dan (require 'org-md).

M-x org-md-export-to-markdown RET akan mengekspor ke penurunan harga.

bzg
sumber
4

Jawaban @ NN juga berlaku untuk Chrome, dengan perubahan detail ini.

Chrome memiliki ekstensi Edit dengan Emacs , yang mirip dengan itu semua teks. Setelah menginstalnya, Anda akan menemukan petunjuk lebih lanjut dari halaman opsi ekstensi.

Ada grup kustomisasi emacs edit-serverdengan opsi, yang terpenting perubahan mode utama per situs dikonfigurasi secara berbeda dari jawaban @ NN:

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

Selain itu, agar server edit berfungsi di terminal emacs, saya harus menonaktifkan edit-server-new-frameopsi.

ristohietal
sumber
1

Pandoc memiliki dukungan untuk membaca subset dari mode-org dan dapat mengeluarkan penurunan harga.

Dengan kata lain, Anda dapat terus menulis dalam mode-org, termasuk menulis miring / seperti ini /, lalu mengekspor ke penurunan harga. Dari emacs Anda dapat mengkonversi ke penurunan harga dengan memilih wilayah, menekan Cu MS- \ dan mengetik pandoc -r org -t penurunan harga, mendapatkan output seperti ini:

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

Atau, Anda dapat menyimpan file dan mengonversinya di baris perintah.

Sandra
sumber
0

Chrome Juga Mudah

Ini kurang merupakan jawaban daripada pengujian solusi saya menggunakan plugin Chrome Edit dengan Emacs dan Server Edit Emacs yang dikonfigurasi untuk menggunakan mode penurunan harga untuk Stackoverflow (dan situs Stackexchange lain yang saya gunakan). Yang harus saya lakukan setelah menginstal ekstensi dan paket MELPA telah ditetapkan

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

Dukungan Pesan Gmail

Perhatikan dalam pengaturan di atas, saya menggunakan mode-org untuk pesan gmail. Masih perlu melakukan sedikit pekerjaan di sini, tetapi dimungkinkan, dengan sedikit usaha, untuk membuat draf pesan gmail Anda menggunakan mode-org dan kemudian menggunakan org-mime untuk menghasilkan html dari teks terstruktur organisasi Anda. Anda bisa menggunakan penurunan harga dan penurunan harga untuk konversi html.

Tim X
sumber