Bisakah saya membuat tautan dalam Mode Org yang mengandung tanda kurung, [atau]?


13

Apakah ada cara untuk keluar dari tanda kurung ( [dan ]) sehingga mereka dapat dimasukkan dalam deskripsi tautan mode Organisasi? Tautan berikut tidak berfungsi, misalnya:

[[http://mathoverflow.net/questions/195203/automorphisms-of-ideals-of-mathbbct][Automorphisms of ideals of C[t]]]

Saya berharap menggunakan backslash ( \[) akan bekerja atau akan ada entitas org, tetapi sepertinya tidak demikian.


1
Masalahnya adalah tautan dalam Org diuraikan menggunakan ekspresi reguler, dan tugas ini akan setara dengan rekursi, yang tidak dapat diuraikan dengan ekspresi reguler. Jika Anda hanya ingin menambahkan satu tingkat rekursi, itu bisa dilakukan dengan menambal org-make-link-regexps, tetapi secara umum itu tidak dapat dilakukan dengan pengaturan saat ini.
wvxvw

Lolos bisa dilakukan. Anda dapat mencoba menyesuaikan regexp yang relevan org-bracket-link-regexpuntuk menangani hal ini, meskipun org-insert-linkmasih ingin mengganti tanda kurung dengan kawat gigi dan mungkin ada konsekuensi lainnya.
politza

Oh, saya baru ingat itu \[dan \]seharusnya memberi persamaan yang ditampilkan (seperti $$), bukan tanda kurung.
Omar

Jawaban:


5

Solusi yang berfungsi, tidak begitu cantik, adalah dengan menggunakan mode org Macro .

Makro di bawah ini diganti oleh kode ASCII [dan ]ketika mengekspor ke html atau lateks.

# Square Bracket Open [
#+MACRO: BO @@latex:\char91@@ @@html:[@@
# Square Bracket Close ]
#+MACRO: BC @@latex:\char93@@ @@html:]@@

[[http://emacs.stackexchange.com][{{{BO}}}Emacs SE{{{BC}}}]]

Referensi


Terima kasih, tapi saya berharap untuk meyakinkan org-mode untuk menjadikannya sebagai tanda kurung di dalam buffer. Solusi Anda tentu saja berfungsi untuk ekspor.
Omar

Tidak berfungsi untuk ekspor HTML.
Alex

3

Di bawah ini adalah versi yang dimodifikasi org-make-link-regexpyang akan memungkinkan satu tingkat kurung kurung persegi di dalam deskripsi:

(defun org-make-link-regexps ()
  "Update the link regular expressions.
This should be called after the variable `org-link-types' has changed."
  (setq org-link-types-re
    (concat
     "\\`\\(" (mapconcat 'regexp-quote org-link-types "\\|") "\\):")
    org-link-re-with-space
    (concat
     "<?\\(" (mapconcat 'regexp-quote org-link-types "\\|") "\\):"
     "\\([^" org-non-link-chars " ]"
     "[^" org-non-link-chars "]*"
     "[^" org-non-link-chars " ]\\)>?")
    org-link-re-with-space2
    (concat
     "<?\\(" (mapconcat 'regexp-quote org-link-types "\\|") "\\):"
     "\\([^" org-non-link-chars " ]"
     "[^\t\n\r]*"
     "[^" org-non-link-chars " ]\\)>?")
    org-link-re-with-space3
    (concat
     "<?\\(" (mapconcat 'regexp-quote org-link-types "\\|") "\\):"
     "\\([^" org-non-link-chars " ]"
     "[^\t\n\r]*\\)")
    org-angle-link-re
    (concat
     "<\\(" (mapconcat 'regexp-quote org-link-types "\\|") "\\):"
     "\\([^" org-non-link-chars " ]"
     "[^" org-non-link-chars "]*"
     "\\)>")
    org-plain-link-re
    (concat
     "\\<\\(" (mapconcat 'regexp-quote org-link-types "\\|") "\\):"
     (org-re "\\([^ \t\n()<>]+\\(?:([[:word:]0-9_]+)\\|\\([^[:punct:] \t\n]\\|/\\)\\)\\)"))
    ;;   "\\([^]\t\n\r<>() ]+[^]\t\n\r<>,.;() ]\\)")
    org-bracket-link-regexp
    ;; "\\[\\[\\([^][]+\\)\\]\\(\\[\\([^][]+\\)\\]\\)?\\]"
    "\\[\\[\\([^][]+\\)\\]\\(\\[\\([^[]*?\\[[^]]*?\\][^]]*?\\|[^][]+\\)\\]\\)?\\]"
    org-bracket-link-analytic-regexp
    (concat
     "\\[\\["
     "\\(\\(" (mapconcat 'regexp-quote org-link-types "\\|") "\\):\\)?"
     "\\([^]]+\\)"
     "\\]"
     "\\(\\[" "\\([^[]*?\\[[^]]*?\\][^]]*?\\|[^]]+\\)" "\\]\\)?"
     ;; "\\(\\[" "\\([^]]+\\)" "\\]\\)?"
     "\\]")
    org-bracket-link-analytic-regexp++
    (concat
     "\\[\\["
     "\\(\\(" (mapconcat 'regexp-quote (cons "coderef" org-link-types) "\\|") "\\):\\)?"
     "\\([^]]+\\)"
     "\\]"
     "\\(\\[" "\\([^]]+\\)" "\\]\\)?"
     "\\]")
    org-any-link-re
    (concat "\\(" org-bracket-link-regexp "\\)\\|\\("
        org-angle-link-re "\\)\\|\\("
        org-plain-link-re "\\)")))

Tetapi seperti yang disebutkan di atas, ini tidak menyelesaikan masalah pengeditan tautan (Org masih ingin mengganti tanda kurung dengan kurung kurawal.) Ini juga hanya dapat menangani satu level bersarang dari satu grup kurung.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.