emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Robert Weiner <rsw@gnu.org>
To: emacs-orgmode@gnu.org
Subject: Re: How to fully control parsing of Org mode links during export
Date: Sun, 21 Jul 2024 21:16:10 -0400	[thread overview]
Message-ID: <CA+OMD9hTSVZEn=fFQsjSr1Pz1EBR65nJciiguMQvVSEzYVDE-w@mail.gmail.com> (raw)
In-Reply-To: <Zp1RJo5SGiFsmmiu@orm-t14s>

[-- Attachment #1: Type: text/plain, Size: 3813 bytes --]

Thanks, so much, Orm.  I’ll give this a try. It does indicate that the
expirt code and parser could use a simpler setup for debugging.  — rsw

On Sun, Jul 21, 2024 at 2:20 PM Orm Finnendahl <
orm.finnendahl@selma.hfmdk-frankfurt.de> wrote:

> Hi,
>
>  this is how I currently do the debugging of html-export (there may be
> more elegant ways, but it works well for me):
>
> - Copy (defun org-export-as ...) from ox.el into a local elisp buffer
>   of your liking (any buffer with the name .el should do).
>
> - In that function add the line (setq info-debug info) just after the
>   comment lines (Lines 2997/2998):
>
>   ;; Eventually transcode TREE.  Wrap the resulting string into
>   ;; a template.
>   (setq info-debug info)
>
> - Evaluate the new definition of org-export-as and run the export from
>   your org file once.
>
> Now you can access the complete parse tree with
>
> (plist-get info-debug :parse-tree)
>
> (make sure just to use a small document, otherwise the output might be
> pretty nasty as the parents of all elements are recursively fully
> contained in the parse tree).
>
> You can extract all links of your document with:
>
> (setq all-links
>   (org-element-map (plist-get info-debug :parse-tree) 'link 'identity))
>
> And you can check the output string of html with this:
>
> (org-html-link (nth 0 all-links) "" info-debug)
>
> You can then check what you have to do to make org-html-link output
> the desired string, or redefine org-html-link to do what you need and
> later make a derived backend from the html backend replacing the
> org-html-link function or simply load the new definition of
> org-html-link using a mechanism like #+SETUPFILE: in your header.
>
> HTH,
> Orm
>
> Am Sonntag, den 21. Juli 2024 um 13:19:29 Uhr (-0400) schrieb Robert
> Weiner:
> > Hi Org developers:
> >
> > I could really use some help from Org export experts.  I have
> > been trying to tweak export link parsing to do what I want
> > without any success.  Here is a summary of the issues and related
> > questions I have.
> >
> > Usinf Org version "9.8-pre":
> >
> > 1. When exporting from an Org file to html, I want this
> >      [[Emacs#Section-One]] or [[file:Emacs::Section-One]]
> >    to be converted into this:
> >      <a href="Emacs.html">Emacs</a>#Section-One
> >    but instead Org export produces:
> >      <a href="Emacs.html">Emacs</a>#Section-One
> >
> > 2. When exporting from an Org file to html, I want this
> >      "[[One Testing]] Three"
> >    to be converted into this:
> >      "<a href="One Testing.html">One Testing</a> Three"
> >    but instead Org export produces:
> >      "<a href="One.html">One</a> <a href="Testing.html">Testing</a>
> Three"
> >
> > 3. When exporting from an Org file and I have defined the html export
> >    syntax for mytype: to html, I want this:
> >      [[mytype:MyLink]]
> >      [[Testing]]
> >    to be converted into this:
> >      <a href="MyLink.html">MyLink</a>
> >      <a href="Testing.html">Testing</a>
> >    but instead Org export produces:
> >      <a href="<a href="MyLink.html">MyLink</a>.html">mytype:<a
> > href="Testing.html">Testing</a></a>
> >
> > My questions are:
> >
> > 1. How can I change `org-element-link-parser' in tandem with
> >    ox-html.el to output simple HTML links without any of the text
> >    within double brackets bleeding outside of the HTML link?
> >
> > 2. How can I get the exporter to run in my current Emacs process and
> >    spawn a new Emacs so that I can easily debug in-process?  I think I
> have
> >    turned off the async export option but it still runs async and I can't
> >    step through the exporter functions.
> >
> > Thanks very much for any help.
> >
> > -- rsw
>
>

[-- Attachment #2: Type: text/html, Size: 4902 bytes --]

  reply	other threads:[~2024-07-22  1:17 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-21 17:19 How to fully control parsing of Org mode links during export Robert Weiner
2024-07-21 18:19 ` Orm Finnendahl
2024-07-22  1:16   ` Robert Weiner [this message]
2024-07-22  4:01     ` Robert Weiner
2024-07-22 13:54 ` Ihor Radchenko
2024-08-16  5:26   ` Robert Weiner
2024-08-18 13:13     ` Ihor Radchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CA+OMD9hTSVZEn=fFQsjSr1Pz1EBR65nJciiguMQvVSEzYVDE-w@mail.gmail.com' \
    --to=rsw@gnu.org \
    --cc=emacs-orgmode@gnu.org \
    --cc=rswgnu@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).