emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Léo Ackermann" <leo.komba@gmail.com>
To: Org Mode List <emacs-orgmode@gnu.org>
Subject: Ox unindents lines but I can't see when
Date: Fri, 30 Sep 2022 12:40:16 +0200	[thread overview]
Message-ID: <CAFhsWEiSLKD9GQWkRnEJGSuJXO++M9vkSNZcyOa7SWkDF4dG4w@mail.gmail.com> (raw)

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

Dear all,

I'm currently working on a tiny project org-inline-blocks that aims to
provide a simple syntax for latex-blocks in org-mode based on indent.
Namely, instead of #+begin_theorem ... #+end_theorem, it will be possible
to write "Theorem." and the export will be based on indent to decide
whether some text belongs to the block or not.
Unfortunately, ox modifies the indentation of the org-text before running
the filter functions. Here is an illustration.

Consider the following file `hamlet.org`:

---


*Prince Hamlet of Denmark is the son of the recently deceased King Hamlet,
and nephew of King Claudius, his father’s brother and successor.
Claudius hastily married King Hamlet’s widow, Gertrude, Hamlet’s mother,
and took the throne for himself. Denmark has a long-standing feud with
neighbouring Norway, in which King Hamlet slew King Fortinbras of Norway in
a battle some years ago.        Although Denmark defeated Norway and the
Norwegian throne fell to King Fortinbras’s infirm brother, Denmark fears
that an invasion led by the dead Norwegian king’s son, Prince Fortinbras,
is imminent.*

*        On a cold night on the ramparts of Elsinore, the Danish royal
castle, the sentries Bernardo and Marcellus discuss a ghost resembling the
late King Hamlet which they have recently seen, and bring Prince Hamlet’s
friend Horatio as a witness.*

*---*
and this tiny `org-export-filter-body`'s function:

---







*    (with-eval-after-load 'ox      (defun org-strange-behavior (text
backend info)        "Print text, as read by the export-filter-body
functions."        (when (org-export-derived-backend-p backend 'latex)
    (message text)))       (add-to-list 'org-export-filter-body-functions
                  'org-strange-behavior))*

*---*
When exporting `hamlet.org` in whatever format, the Message buffer shows
this:

---




*Prince Hamlet of Denmark is the son of the recently deceased King Hamlet,
and nephew of King Claudius, his father’s brother and successor.
Claudius hastily married King Hamlet’s widow, Gertrude, Hamlet’s mother,
and took the throne for himself. Denmark has a long-standing feud with
neighbouring Norway, in which King Hamlet slew King Fortinbras of Norway in
a battle some years ago.        Although Denmark defeated Norway and the
Norwegian throne fell to King Fortinbras’s infirm brother, Denmark fears
that an invasion led by the dead Norwegian king’s son, Prince Fortinbras,
is imminent.On a cold night on the ramparts of Elsinore, the Danish royal
castle, the sentries Bernardo and Marcellus discuss a ghost resembling the
late King Hamlet which they have recently seen, and bring Prince Hamlet’s
friend Horatio as a witness.*
*---*

*My question is thus: how can I prevent ox from unindenting the last line
? *

I explored ox as much as I could, and did not find anything promising :/.
I'm aware of an `org-export-preserve-breaks` variable but it preserves too
much things (and causes export to be odd, in my opinion).
If I run org-unindent-buffer in the buffer, the last line is unindented.
But this function is not called in ox as far as I saw.
Moreover, given that I'm writing a package, using an org-verse environment
all around is not suitable.

Best,
Leo

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

             reply	other threads:[~2022-09-30 10:41 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-30 10:40 Léo Ackermann [this message]
2022-10-01  5:32 ` Ox unindents lines but I can't see when Ihor Radchenko
2022-10-01  7:48   ` Léo Ackermann
2022-10-01  8:01     ` 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=CAFhsWEiSLKD9GQWkRnEJGSuJXO++M9vkSNZcyOa7SWkDF4dG4w@mail.gmail.com \
    --to=leo.komba@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /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).