emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Markdown export is non-deterministic?
@ 2022-10-07 22:31 Matias Eyzaguirre
  2022-10-08 14:57 ` Max Nikulin
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Matias Eyzaguirre @ 2022-10-07 22:31 UTC (permalink / raw)
  To: emacs-orgmode

I’m using org-mode to generate a markdown README for a project that is
under version control. I’ve noticed that the anchor tags used for the
table of contents seem to be annoyingly random and change from export
to export. Is it possible to make the generated ids deterministic?

For example one invocation of ~org-md-export-to-markdown~ will give me
this:

#+begin_example
1.  [Introduction](#org8f0a2e0)
2.  [Roadmap](#orga3f4ca7)
#+end_example

While exporting a second time, even if there are no changes to the
file, will produce something different such as:

#+begin_example
1.  [Introduction](#org775f005)
2.  [Roadmap](#orgccee397)
#+end_example

While these identifiers are generally not visible to a reader, they
add noise to the version control diffs. I'm wondering if it's possible
to force the relevantrandom number generator to use a fixed seed or,
more ideally, have the ids be based on the section title (or its
hash)?

Thanks,
  Matias

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Markdown export is non-deterministic?
  2022-10-07 22:31 Markdown export is non-deterministic? Matias Eyzaguirre
@ 2022-10-08 14:57 ` Max Nikulin
  2022-10-09  3:50 ` Ihor Radchenko
  2022-10-16  9:24 ` Dominique Dumont
  2 siblings, 0 replies; 5+ messages in thread
From: Max Nikulin @ 2022-10-08 14:57 UTC (permalink / raw)
  To: Matias Eyzaguirre, emacs-orgmode

On 08/10/2022 05:31, Matias Eyzaguirre wrote:
> 
> #+begin_example
> 1.  [Introduction](#org775f005)
> 2.  [Roadmap](#orgccee397)
> #+end_example
> 
> While these identifiers are generally not visible to a reader, they
> add noise to the version control diffs. I'm wondering if it's possible
> to force the relevantrandom number generator to use a fixed seed or,
> more ideally, have the ids be based on the section title (or its
> hash)?

You may try to add CUSTOM_ID property to section. Current behavior is 
intentional, see e.g.

Nicolas Goaziou… Re: HTML export uses anchor ids which change on every 
export. Sat, 29 May 2021 21:50:24 +0200. 
https://list.orgmode.org/87bl8tz5dr.fsf@nicolasgoaziou.fr

A long discussion:

Samuel Wales. stability of toc links. Tue, 8 Dec 2020 16:28:46 -0700. 
https://list.orgmode.org/CAJcAo8tXVW39h18FUXLtwoDYNKQsFHqCp+YDiyWfLee29B1PRw@mail.gmail.com

Some people managed to implement anchors based on heading titles

TEC. [Interest] Determanistic Org IDs. Sun, 19 Jul 2020 22:27:31 +0800. 
https://list.orgmode.org/E1jxAjg-0004Dk-U6@lists.gnu.org


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Markdown export is non-deterministic?
  2022-10-07 22:31 Markdown export is non-deterministic? Matias Eyzaguirre
  2022-10-08 14:57 ` Max Nikulin
@ 2022-10-09  3:50 ` Ihor Radchenko
  2022-10-16  9:24 ` Dominique Dumont
  2 siblings, 0 replies; 5+ messages in thread
From: Ihor Radchenko @ 2022-10-09  3:50 UTC (permalink / raw)
  To: Matias Eyzaguirre; +Cc: emacs-orgmode

Matias Eyzaguirre <matias@fortlogic.net> writes:

> I’m using org-mode to generate a markdown README for a project that is
> under version control. I’ve noticed that the anchor tags used for the
> table of contents seem to be annoyingly random and change from export
> to export. Is it possible to make the generated ids deterministic?

In addition to the detailed explanation by Max, you can use ox-publish.
Publishing will preserve the ids as much as possible.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Markdown export is non-deterministic?
  2022-10-07 22:31 Markdown export is non-deterministic? Matias Eyzaguirre
  2022-10-08 14:57 ` Max Nikulin
  2022-10-09  3:50 ` Ihor Radchenko
@ 2022-10-16  9:24 ` Dominique Dumont
  2022-10-16  9:44   ` Ihor Radchenko
  2 siblings, 1 reply; 5+ messages in thread
From: Dominique Dumont @ 2022-10-16  9:24 UTC (permalink / raw)
  To: emacs-orgmode

On Saturday, 8 October 2022 00:31:00 CEST Matias Eyzaguirre wrote:
> I’m using org-mode to generate a markdown README for a project that is
> under version control. I’ve noticed that the anchor tags used for the
> table of contents seem to be annoyingly random and change from export
> to export. Is it possible to make the generated ids deterministic?

The function shown in this blog helps a lot:

https://amitp.blogspot.com/2021/04/automatically-generate-ids-for-emacs.html

This works quite well for my org files.

HTH

Dod






^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Markdown export is non-deterministic?
  2022-10-16  9:24 ` Dominique Dumont
@ 2022-10-16  9:44   ` Ihor Radchenko
  0 siblings, 0 replies; 5+ messages in thread
From: Ihor Radchenko @ 2022-10-16  9:44 UTC (permalink / raw)
  To: Dominique Dumont; +Cc: emacs-orgmode

Dominique Dumont <dominique.dumont@netc.fr> writes:

> The function shown in this blog helps a lot:
>
> https://amitp.blogspot.com/2021/04/automatically-generate-ids-for-emacs.html
>
> This works quite well for my org files.

Feel free to help with https://orgmode.org/list/87fsfutwin.fsf@localhost

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-10-16 10:12 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-07 22:31 Markdown export is non-deterministic? Matias Eyzaguirre
2022-10-08 14:57 ` Max Nikulin
2022-10-09  3:50 ` Ihor Radchenko
2022-10-16  9:24 ` Dominique Dumont
2022-10-16  9:44   ` Ihor Radchenko

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