Los enlaces externos del modo de organización no funcionan cuando se exportan a HTML

8

Tengo 2 .orgarchivos:

// a.org contains the anchor
<<my_anchor>>

// b.org contains the link to my_anchor
[[file:a.org::my_anchor][My Link]]

Cuando hago clic en el enlace en modo org, se vincula correctamente a la posición de my_anchorin a.org. Pero cuando exporto estos 2 archivos a HTML, lo que espero es:

// b.html
<a href="a.html#my_anchor">My Link</a>

Lo que obtuve es:

// b.html
<a href="a.html">My Link</a>

Me pregunto cómo escribir correctamente un enlace externo para que funcione tanto en modo org como en HTML exportado.

vicch
fuente
Lo que obtengo está <a id="orgtarget1"></a>dentro a.htmly <a href="a.html#MissingReference">My Link</a>dentro b.html, que es marginalmente mejor, pero no funcional. Esta org versión 8.3.3.
Andrew Swann
@ AndrewSwann Gracias por la información, la mía es 8.2.5. Esto parece prometedor, posiblemente requiera una forma especial de escribir el enlace en modo org, me pregunto cómo.
vicch
A mí me parece más un error. ¿Has intentado denunciarlo?
Andrew Swann
@ AndrewSwann No, no he aprendido cómo informar un error. En realidad no tengo ganas de invertir más tiempo en ello por el momento. Parece que no es un problema importante de todos modos.
vicch
@ AndrewSwann Es un error de documentación. Encontrará más detalles al respecto al final de mi respuesta a continuación. He presentado un informe de error.
Tobias

Respuestas:

7

La cadena detrás ::es en realidad una búsqueda . En este contexto, se entiende el comentario relevante en el código fuente de la función org-html-linken el archivo de la biblioteca ox-html.el(org 8.2.5). Dice:

  ;; Add search option, if any.  A search option can be
  ;; relative to a custom-id or a headline title.  Any other
  ;; option is ignored.

Por lo tanto, puede reemplazar my_anchorpor #my_anchorpara formar una identificación personalizada o usar un título de título que comience con el carácter *. En el segundo caso, ¡no incluya espacios después del carácter *!

Vincular encabezados de sección en otros archivos solo funciona cuando publica proyectos en modo org . Los proyectos en modo de organización se definen como miembros de la variable org-publish-project-alist. Consulte la documentación de esta variable y la Sección 13 Publicación del manual del modo org para obtener más detalles.

Ejemplo: archivo a.org:

* This is file a.org
  Some important notes.

* Second Section

* Section with a custom-id

  Some text before the custom-id

  <<#my-anchor>> Here we have the custom-id

  Some text behind the custom-id.

Texto en archivo b.org:

* This is file b.org
  Some text.

* b.org contains the link to my_anchor
  [[file:a.org::#my_anchor][My Link to the custom-id]]

  [[file:a.org::*Second Section][My Link to the headline of the second section]]

Observación: La razón por la que los enlaces a las cabeceras de otros archivos sólo trabajo con la publicación es que se obtienen de org-publish-cacheen org-publish-resolve-external-fuzzy-linkque se utiliza en org-html-link.

Los enlaces de encabezado de sección son en realidad enlaces numerados, como sec-1, sec-2y los encabezados de sección se traducen a los números 1,2, ... a través de una lista de asociación en la variable org-publish-cache.


Considero que esto es un error de documentación. La exportación html de enlaces de encabezados de sección en otros archivos no se menciona en la Sección 13.1.6 Enlaces entre archivos publicados del manual del modo org. Tampoco puedo encontrar ningún comentario sobre la exportación html de enlaces a ID personalizados en todos los archivos en el manual.

Acabo de descubrir estas cosas leyendo el código fuente.


Esto es lo que obtuve como respuesta a mi informe de error:

Thank you for the report.

Unfortunately, this feature is very experimental, and actually quite
buggy. It's not ready for prime time, and therefore not documented.
Tobias
fuente