2012-07-27 8 views
6

Ich möchte wirklich Org-Modus verwenden.Wie kann ich andere Überschriftenformate wie twiki --- + oder mediawiki == h2 == im Organisationsmodus verwenden?

Aber, ich will org-Modus verwenden strukturierte Dokumente zu verstehen, die bereits geschrieben wurden unterschiedliche Überschrift Syntax,

z.B. mit twiki der --- +

---+ H1 

Top level 

---++ H2 

Nested 

---+ H1 #2 

Second top level 

Oder mediawiki wie

= H1 = 

Top level 

== H2 == 

Nested 

= H1 #2 = 

Second top level 

ich alle der Güte der org-Modus Falten haben möchte, usw., nur diese verschiedene Schriftenformate verwenden.


Eigentlich schlimmer, dass:

Ich möchte, sagen wir, die twiki oder mediawaiki Schriften Vorrang vor org Modus Sternchen Schriften zu nehmen. Aber ich hätte gerne beide im Einsatz.

= H1 =

Top level 

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

== H2 == 

Nested 

= H1 #2 = 

Second top level 

- + Was ich habe so versucht, weit

ich in der Lage gewesen Umriss-Modus zu verwenden twiki zu handhaben, zum Beispiel über

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

Allerdings, org-outline-regexp tut nicht hwat ich hoffe.

Die Out-Level-Funktion von Emacs Outline-Modus sieht fast genau so aus, wie ich es möchte.

(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'.") 

, d. H. Anstelle von Regexps, eine generische Funktion.

Aber ich habe es nicht geschafft, es mit Org-Modus arbeiten zu lassen. Es sieht so aus, als ob der org-Modus das nicht wirklich nutzt oder vielmehr andere Sachen hat.

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

Geschieht dies nicht, na ja, die Hauptsache, dass ich aus wollen org-Modus ist Links, Fragen eine andere Frage hier How can I "linkify" a non-org-mode buffer in emacs

+0

Ihre beste Wette ist die Umwandlung der hässlichen Formate in die hübsche. Aber vielleicht kannst du genug mit 'org-heading-regexp' herumspielen, damit es in einem der anderen Modi funktioniert? – pmr

+0

Welches ist das hässliche Format und welches ist das hübsche?; -} // in der verknüpften Frage habe ich ziemlich generische Linking-Funktion. –

Antwort

4

Meine Frustration war einfach, dass org-Modus hat andere Regeln für das, was ein ausmacht neuer Outline-Bereich als Outline-Modus. Es erfordert ein Leerzeichen nach den Sternchen, so dass es bei meiner umfangreichen Sammlung von Notizen, die auf diese Leerzeichen verzichten, nicht funktioniert.

Ich löste das, indem ich das nachgestellte Leerzeichen in der nicht-gut-dokumentierten org-outline-regexp Variable entfernte, die verwendet wird, um die pufferlokale Variable outline-regexp zu initialisieren, und das scheint für mich zu arbeiten. Z.B. (set-variable 'org-outline-regexp "\\*+")

Was Ihre eigentliche Frage betrifft, meine Vermutung ist, dass andere Regexp und Code würde sich ändern, um radikal andere Dinge wie Twiki oder Mediawiki Überschriften zu behandeln.

+0

Danke für den Hinweis auf das Leerzeichen. // Ja, das System von Regexps, das der Org-Modus verwendet, ist klobig, und außerdem scheint es mehrere Stellen zu geben, an denen sie "Sterne zählen", um den Einzugspegel zu bestimmen. Während ich in Mediawiki zählen müsste === s, und in Twiki muss ich +++ s zählen. // i.e. es muss eine Funktion sein, die die Überschriftenebene angibt, keine Regexp. –

+0

Übrigens benutze ich meinen Linkifikationscode, um die Links zu formatieren, indem ich den Outline-Modus verwende, der twiki gut genug verarbeitet, aber einige der org-Modus-Funktionen aufruft, ohne den Organisationsmodus zu aktivieren. // klobig, aber gut genug. –

Verwandte Themen