emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

In an export transcoder, when should I use org-element-property to get v


From: Rohit Patnaik
Subject: In an export transcoder, when should I use org-element-property to get values vs. the contents parameter
Date: Fri, 02 Sep 2022 12:07:57 -0500
User-agent: Cyrus-JMAP/3.7.0-alpha0-841-g7899e99a45-fm-20220811.002-g7899e99a

I'm looking at function that handles transcoding inline code and verbatim text
in ox-md: 

(defun org-md-verbatim (verbatim _contents _info)
  "Transcode VERBATIM object into Markdown format.
CONTENTS is nil.  INFO is a plist used as a communication
channel."
  (let ((value (org-element-property :value verbatim)))
    (format (cond ((not (string-match "`" value)) "`%s`")
                  ((or (string-prefix-p "`" value)
                       (string-suffix-p "`" value))
                   "`` %s ``")
                  (t "``%s``"))
            value)))

My question is, why does org-md-verbatim use org-element-property to retrieve
the text to be transcoded, when org-md-bold and org-md-italic use the contents
parameter. In other words, couldn't the function be simplified to something like
this:

(defun org-md-verbatim (_verbatim contents _info)
  "Transcode VERBATIM object into Markdown format.
CONTENTS is nil.  INFO is a plist used as a communication
channel."
  (format (cond ((not (string-match "`" contents)) "`%s`")
                ((or (string-prefix-p "`" contents)
                     (string-suffix-p "`" contents))
                 "`` %s ``")
                (t "``%s``"))
          contents))

The broader context for my question is that I'm writing my own org exporter, and
I'd like some more clarity on what the distinction is between getting the value
of the element with org-element-property and relying on the export framework to
pass the value to the transcoder via the contents parameter.

Thanks,
Rohit



reply via email to

[Prev in Thread] Current Thread [Next in Thread]