emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] [PATCH] Add TITLE export to ox-md


From: Kaushal Modi
Subject: Re: [O] [PATCH] Add TITLE export to ox-md
Date: Thu, 24 Aug 2017 10:28:34 +0000

On Thu, Aug 24, 2017, 5:31 AM Nicolas Goaziou <address@hidden> wrote:

I'm not so sure about it. Vanilla Markdown does not support title.
Neither does "ox-md.el"

Correct, vanilla Markdown does not support title. The file name is the title. 

For example, the file names of the Wiki pages on GitHub are rendered as titles (that is again not using 100% vanilla Markdown, but that's a good example specific to this question about titles).

Is there any consensus about how title are handled in _vanilla_ syntax?

> -(defun org-md-template (contents _info)
> +(defun org-md-template (contents info)
>    "Return complete document string after Markdown conversion.
>  CONTENTS is the transcoded contents string.  INFO is a plist used
>  as a communication channel."
> -  contents)
> +  (concat
> +    ;; Generate title and subtitle, if possible
> +    (let ((title (and (plist-get info :with-title)
> +                (plist-get info :title)))
> +        (subtitle (plist-get info :subtitle))
> +        (style (plist-get info :md-headline-style)))
> +      (when title
> +     (concat
> +       (org-md--headline-title style
> +         1 (org-export-data title info))
> +       (when subtitle
> +         (org-md--headline-title style
> +           2 (org-export-data subtitle info))))))
> +    contents))

But then you would need to shift all headlines 1 or 2 levels down.
`setext' style becomes unusable because there is no room left for other
headlines.

I will soon submit ox-hugo for review for submission to Org. That is an enhanced Makrdown exporter backend, that also handles the post front matter generation for the Hugo static site generator.

In there, I have added an option for the user to set an offset for the headings in a post. By default an Org heading with 1 star becomes level-1 heading in Markdown. For ox-hugo, I have set the default to an offset of 1. So the 1-star Org headings will now become level-2 headings in Markdown. 

Here's a little snippet that implements that:

(let ((level-mark (make-string (+ loffset level) ?#)))
  (concat "\n" level-mark " " todo title " " anchor "\n\n"))

(Full code: https://github.com/kaushalmodi/ox-hugo/blob/master/ox-hugo.el)

While that doesn't translate title and subtitle to level 1 and level 2 Markdown headings, it at least helps keep the font sizes of title and level-1 Markdown headings different. 

I would suggest making the title/subtitle to Markdown headings optional at best. Because most HTML renderers will render the file name as title.

So will end up with duplicate titles: the one rendered from file name and another from the level-1 Markdown heading based on the above quoted org-md-template snippet.

@Jay Would this offset option help in ox-md? 

Maybe we eventually end up with 3 options (something like below):

- org-md-title-as-h1
- org-md-subtitle-as-h2
- org-md-heading-offset

WDYT?

(Side question: Would it be preferred to create a scratch branch on Org for reviewing ox-hugo? Or would the GitHub repo mentioned above be fine?)
--

Kaushal Modi


reply via email to

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