emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Newline woes when exporting to mediawiki markup
@ 2021-06-01  7:59 Dov Grobgeld
  2021-06-01  9:08 ` Nicolas Goaziou
  0 siblings, 1 reply; 3+ messages in thread
From: Dov Grobgeld @ 2021-06-01  7:59 UTC (permalink / raw)
  To: emacs-orgmode

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

Hello,

I've been trying to use the ox-mediawiki.el export option to export from
org mode to mediawiki mode.

Unfortunately the exporting does a poor job of exporting lists. E.g. the
following org mode source:

```
* A section
  - An item
  - Another item
    - A subitem
    - Another subitem
  - Back to first
```

is exported as:
```

= A section =
* An item

* Another item

  * A subitem

  * Another subitem

* Back to first

```
The expected is:
```
= A section =

* An item
* Another item
** A subitem
** Another subitem
* Back to first
```
I tried to modify ox-mediawiki.el to solve the following two issues:

- Get rid of redundant newlines between exported list items
- Replicate the leading asterisk to reflect the indentation level of the
list.

To get of the newline I tried to rewrite the org-export "item" translation
function `org-mw-item` but I would either get no newlines at all between my
items, or an extra newline between two subsequent items.

I just noted that ox-mediawiki is derived from the html backend, so perhaps
the limitations are there.

I would appreciate any guidance of how to fix this.

Thanks!

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

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

* Re: Newline woes when exporting to mediawiki markup
  2021-06-01  7:59 Newline woes when exporting to mediawiki markup Dov Grobgeld
@ 2021-06-01  9:08 ` Nicolas Goaziou
  2021-06-01 20:41   ` Dov Grobgeld
  0 siblings, 1 reply; 3+ messages in thread
From: Nicolas Goaziou @ 2021-06-01  9:08 UTC (permalink / raw)
  To: Dov Grobgeld; +Cc: emacs-orgmode

Hello,

Dov Grobgeld <dov.grobgeld@gmail.com> writes:

> I tried to modify ox-mediawiki.el to solve the following two issues:
>
> - Get rid of redundant newlines between exported list items
> - Replicate the leading asterisk to reflect the indentation level of the
> list.
>
> To get of the newline I tried to rewrite the org-export "item" translation
> function `org-mw-item` but I would either get no newlines at all between my
> items, or an extra newline between two subsequent items.
>
> I just noted that ox-mediawiki is derived from the html backend, so perhaps
> the limitations are there.
>
> I would appreciate any guidance of how to fix this.

It's difficult to answer since I know neither what you tried nor what is
correct syntax, but I think asterisks could be obtained with

  (let ((level
         ;; Level can be seen as the number of parent plain lists.
         (length (org-element-map (org-element-lineage item) 'plain-list
                   #'identity info))))
    (make-string level ?*))

To remove any newline, you may try

  (org-element-put-property item :post-blank 0)

prior to returning.

Regards,
-- 
Nicolas Goaziou


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

* Re: Newline woes when exporting to mediawiki markup
  2021-06-01  9:08 ` Nicolas Goaziou
@ 2021-06-01 20:41   ` Dov Grobgeld
  0 siblings, 0 replies; 3+ messages in thread
From: Dov Grobgeld @ 2021-06-01 20:41 UTC (permalink / raw)
  To: emacs-orgmode, Nicolas Goaziou

Thanks for the help. I now updated the function `org-mw-item` to:

    (defun org-mw-item (item contents info)
      "Transcode ITEM element into Mediawiki format.
    CONTENTS is the item contents.  INFO is a plist used as
    a communication channel."
      (let* ((type (org-element-property :type (org-export-get-parent item)))
             (bullet (if (eq type 'ordered) ?# ?*))
             (the-item (org-trim contents))
             (level (- (/
                     (length (org-element-map (org-element-lineage
item) 'plain-list
                              #'identity info)) 2) 3)))
        (progn
          (org-element-put-property item :post-blank 0)
          (format "%s %s" (make-string level bullet) the-item))))

With this change the following org input:
```
* A section
Here is a list of things

- An item
- Another item
    - A subitem
    - Another subitem
- Back to first
```

Is output as:
```
= A section =
Here is a list of things

* An item
* Another item

** A subitem
** Another subitem
* Back to first

```

This is close to the required result though there is still a redundant
empty line before "A subitem". How can  I get rid of it?

I also have no idea why I had to do the expression $level/2-3$ to get
the correct number of asterisks.

Another complication that I am currently ignoring is how to nest <UL>
and <OL> lists. But that's ok for now.

Thanks again!


On Tue, Jun 1, 2021 at 12:08 PM Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote:
>
> Hello,
>
> Dov Grobgeld <dov.grobgeld@gmail.com> writes:
>
> > I tried to modify ox-mediawiki.el to solve the following two issues:
> >
> > - Get rid of redundant newlines between exported list items
> > - Replicate the leading asterisk to reflect the indentation level of the
> > list.
> >
> > To get of the newline I tried to rewrite the org-export "item" translation
> > function `org-mw-item` but I would either get no newlines at all between my
> > items, or an extra newline between two subsequent items.
> >
> > I just noted that ox-mediawiki is derived from the html backend, so perhaps
> > the limitations are there.
> >
> > I would appreciate any guidance of how to fix this.
>
> It's difficult to answer since I know neither what you tried nor what is
> correct syntax, but I think asterisks could be obtained with
>
>   (let ((level
>          ;; Level can be seen as the number of parent plain lists.
>          (length (org-element-map (org-element-lineage item) 'plain-list
>                    #'identity info))))
>     (make-string level ?*))
>
> To remove any newline, you may try
>
>   (org-element-put-property item :post-blank 0)
>
> prior to returning.
>
> Regards,
> --
> Nicolas Goaziou


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

end of thread, other threads:[~2021-06-01 20:42 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-01  7:59 Newline woes when exporting to mediawiki markup Dov Grobgeld
2021-06-01  9:08 ` Nicolas Goaziou
2021-06-01 20:41   ` Dov Grobgeld

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