2012-07-27 9 views
6

Voglio davvero usare org-mode.Come posso utilizzare altri stili di titolo come twiki --- + o mediawiki == h2 == in org-mode?

Ma, voglio usare org-mode per comprendere documenti strutturati che sono già state scritte utilizzando la sintassi titolo diverso,

esempio usando TWiki di --- +

---+ H1 

Top level 

---++ H2 

Nested 

---+ H1 #2 

Second top level 

O MediaWiki come

= H1 = 

Top level 

== H2 == 

Nested 

= H1 #2 = 

Second top level 

Mi piacerebbe avere tutti la bontà di org-mode pieghevole, ecc, semplicemente usando questi diversi stili di titolo.


In realtà, peggio che che:

Vorrei, per esempio, la twiki o alle voci mediawaiki a priorità più alta rispetto intestazioni modalità asterisco org. Ma mi piacerebbe avere entrambi in uso.

= H1 =

Top level 

* this is a list 
** nested 
* list 
** nested 

== H2 == 

Nested 

= H1 #2 = 

Second top level 

- + Quello che ho provato finora

sono stato in grado di utilizzare la modalità contorno per gestire TWiki, ad esempio attraverso

---+ Emacs stuff 
# try (defvar twiki-outline-regexp "---+\\++ \\|\\(\\(?: \\)+\\)[0-9*] ") 
Local Variables: *** 
outline-regexp: "^---\\++" *** 
org-outline-regexp: "^---\\++" *** 
End: *** 

Tuttavia, org-outline-regexp non fa hwat, spero.

La funzione di uscita in modalità contorno di emacs è quasi identica a quella che desidero.

(defvar outline-level 'outline-level 
    "*Function of no args to compute a header's nesting level in an outline. 
It can assume point is at the beginning of a header line and that the match 
data reflects the `outline-regexp'.") 

cioè, invece di espressioni regolari, una funzione generica.

Ma non sono riuscito a farlo funzionare con org-mode. Sembra che la modalità org non la usi davvero, o, piuttosto, abbia altre cose.

;; In Org buffers, the value of `outline-regexp' is that of 
;; `org-outline-regexp'. The only function still directly relying on 
;; `outline-regexp' is `org-overview' so that `org-cycle' can do its 
;; job when `orgstruct-mode' is active. 
(defvar org-outline-regexp "\\*+ " 
    "Regexp to match Org headlines.") 
(defconst org-outline-regexp-bol "^\\*+ " 
    "Regexp to match Org headlines. 
This is similar to `org-outline-regexp' but additionally makes 
sure that we are at the beginning of the line.") 

(defconst org-heading-regexp "^\\(\\*+\\)\\(?: +\\(.*?\\)\\)?[ \t]*$" 
    "Matches an headline, putting stars and text into groups. 
Stars are put in group 1 and the trimmed body in group 2.") 

In caso contrario, beh, la cosa principale che voglio da org-mode è collegamenti, Chiedere un'altra domanda qui How can I "linkify" a non-org-mode buffer in emacs

+0

La soluzione migliore è convertire i brutti formati in quello carino. Ma forse puoi giocare con 'org-heading-regexp' abbastanza da farlo funzionare in una delle altre modalità? – pmr

+0

Qual è il brutto formato e quale è il bello?; -} // nella domanda collegata, ho un funzionamento piuttosto generico di link. –

risposta

4

mia frustrazione era semplicemente che org-mode ha regole diverse per ciò che costituisce un nuova sezione del contorno rispetto a outline mode. Richiede uno spazio dopo gli asterischi, quindi non funziona sulla mia vasta collezione di note, che rinunciano a quegli spazi.

Ho risolto questo rimuovendo lo spazio finale nella variabile org-outline-regexp non ben documentata, che viene utilizzata per inizializzare la variabile locale del buffer outline-regexp e che sembra funzionare per me. Per esempio. (set-variable 'org-outline-regexp "\\*+")

Per quanto riguarda la tua domanda, la mia ipotesi è che altre espressioni regolari e il codice dovrebbero cambiare per gestire cose radicalmente diverse come le intestazioni di twiki o mediawiki.

+0

Grazie per il suggerimento sullo spazio finale. // Sì, il sistema di espressioni regolari usate da org-mode è goffo e, inoltre, sembrano esserci molti punti in cui "Conta le stelle" per determinare il livello del rientro. Mentre in mediawiki avrei bisogno di contare === s, e in twiki ho bisogno di contare +++ s. // I.e. deve essere una funzione che fornisce il livello di intestazione, non un'espressione regolare. –

+0

A proposito, sto usando in tempo reale il mio codice di collegamento per formattare i collegamenti, utilizzando la modalità struttura, che gestisce abbastanza bene il twiki, ma chiama alcune delle funzioni goto-link in modalità org senza attivare effettivamente la modalità org. // Clunky, ma abbastanza buono. –

Problemi correlati