2012-07-27 9 views
6

Realmente quiero usar org-mode.¿Cómo puedo usar otros estilos de encabezado como twiki --- + o mediawiki == h2 == en org-mode?

Pero, quiero utilizar org-mode para entender los documentos estructurados que ya se han escrito utilizando una sintaxis diferente título,

por ejemplo, el uso de twiki --- +

---+ H1 

Top level 

---++ H2 

Nested 

---+ H1 #2 

Second top level 

O MediaWiki como

= H1 = 

Top level 

== H2 == 

Nested 

= H1 #2 = 

Second top level 

me gustaría tener todo de la bondad del plegamiento de org-mode, etc., simplemente usando estos diferentes estilos de título.


En realidad, peor que eso:

me gustaría, por ejemplo, la twiki o en las partidas a mediawaiki tienen prioridad sobre las partidas modo asterisco org. Pero me gustaría tener ambos en uso.

= H1 =

Top level 

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

== H2 == 

Nested 

= H1 #2 = 

Second top level 

- + Lo que he intentado hasta ahora

he podido usar el modo de esquema para manejar twiki, por ejemplo a través

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

Sin embargo, org-outline-regexp no hace lo que yo esperaría.

La función de nivel exterior de emacs 'outline-mode se ve casi exactamente como yo quiero.

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

es decir, en lugar de regexps, una función genérica.

Pero no he logrado que funcione con org-mode. Parece que org-mode realmente no usa esto, o más bien, tiene otras cosas.

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

De no ser así, bueno, lo principal que quiero de org-mode es enlaces, haciendo otra pregunta aquí How can I "linkify" a non-org-mode buffer in emacs

+0

Su mejor opción es convertir los formatos feos en uno bonito. Pero tal vez puedas jugar con 'org-heading-regexp' lo suficiente para que funcione en uno de los otros modos? – pmr

+0

¿Cuál es el formato feo y cuál es el bonito?; -} // en la pregunta vinculada, tengo una vinculación bastante genérica funcionando. –

Respuesta

4

Mi frustración fue simplemente que org-mode tiene diferentes reglas para lo que constituye una nueva sección de esquema que lo hace el esquema-modo. Requiere un espacio después de los asteriscos, por lo que no funciona en mi extensa colección de notas, que renuncian a esos espacios.

Resolví eliminar el espacio final en la variable org-outline-regexp no bien documentada, que se utiliza para inicializar la variable de buffer-local outline-regexp, y eso parece funcionar para mí. P.ej. (set-variable 'org-outline-regexp "\\*+")

En cuanto a su pregunta real, mi suposición es que otras expresiones regulares y el código tendrían que cambiar para manejar cosas radicalmente diferentes como twiki o encabezados mediawiki.

+0

Gracias por la pista sobre el espacio final. // Sí, el sistema de expresiones regulares que usa org-mode es torpe, y, además, parece haber varios lugares donde "Cuentan estrellas" para determinar el nivel de sangría. Mientras que en mediawiki necesitaría contar === s, y en twiki necesito contar +++ s. // es decir necesita ser una función que proporcione el nivel de encabezado, no una expresión regular. –

+0

Por cierto, estoy usando curiosamente mi código de enlace para formatear los enlaces, usando el modo esquema, que maneja twiki bastante bien, pero llamando a algunas de las funciones goto-link de org-mode sin activar realmente el modo orgánico. // Clunky, pero lo suficientemente bueno. –

Cuestiones relacionadas