emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Experimental public branch for inline special blocks
@ 2024-03-01 20:34 Juan Manuel Macías
  2024-03-02  8:29 ` Stefan Nobis
                   ` (7 more replies)
  0 siblings, 8 replies; 83+ messages in thread
From: Juan Manuel Macías @ 2024-03-01 20:34 UTC (permalink / raw)
  To: orgmode

Hi,

Finally, I have made public on GitLab my experimental branch for the new
(possible) inline-special-block element:

<https://gitlab.com/maciaschain/org-mode.git>

The code incorporates fixes and modifications and I have also added some
ideas from Maxim Nikulin. The LaTeX and HTML backends are complete,
although of course it can still be perfected. Recapitulating the
necessary information:

The new element can be nested and supports other elements such as links,
macros, emphasis marks, etc.

The basic syntax:

┌────
│ &foo{lorem ipsum dolor}
└────

produces in LaTeX:

┌────
│ \foo{lorem ipsum dolor}
└────

and in HTML:

┌────
│ <span class="foo">lorem ipsum dolor</span>
└────

There is also an anonymous variant:

┌────
│ &_{lorem ipsum dolor}
└────

Optional attributes in square brackets are supported. There are a series
of 'universal' attributes, common to each backend. At the moment:
`:lang', `:color' and `:smallcaps'. Example:

┌────
│ &foo[:color red :smallcaps t :lang it]{lorem ipsum dolor}
└────

Specific to the LaTeX backend we have the `:prelatex' and `:postlatex'
attributes (which introduce arbitrary code before and after the content)
and `:latex-command', which overrides the exported command.
`:latex-command nocommand' does not export a command flag. Examples:

┌────
│ &foo[:prelatex [bar] :postlatex {baz} :lang it :latex-command blah]{lorem ipsum dolor}
└────

==>

┌────
│ \foreignlanguage{italian}{\blah[bar]{lorem ipsum dolor}{baz}}
└────

┌────
│ &_[:prelatex \foo{bar} :color red]{lorem ipsum dolor}
└────

==>

┌────
│ {\color{red}\foo{bar}lorem ipsum dolor}
└────

Likewise, for HTML we have the `:html-tag' and `:html-class' attributes
(which override the tags and the class name) and another one, more
generic, `:html', which introduces arbitrary code, such as
`style="..."'.

We can group lists of attributes as aliases. The syntax waould be:

┌────
│ &alias!{text}
└────

and we can also combine aliases with more single attributes:

┌────
│ &alias![more-attributes]{text}
└────

An example: let's imagine that we want a specific block for short quotes
in Latin and italics (it is normative in some typographical traditions
that quotes in classical Latin are put in italics instead of quotation
marks):

┌────
│ #+options: inline-special-block-aliases:(("latin" :lang "la" :latex-command "textit" :html-tag "em"))
│ 
│ Caesar's famous quote: &latin!{Alea iacta est}
│ 
│ Caesar's famous quote: &latin![:smallcaps t :color blue]{Alea iacta est}
└────

==> LaTeX:

┌────
│ Caesar's famous quote: \foreignlanguage{latin}{\textit{Alea iacta est}}
│ 
│ Caesar's famous quote: {\scshape{}\color{blue}\foreignlanguage{latin}{\textit{Alea iacta est}}}
└────

== HTML:

┌────
│ Caesar's famous quote: <em lang="la" class="latin">Alea iacta est</em>
│ 
│ Caesar's famous quote: <em style="color:blue;font-variant:small-caps;" lang="la" class="latin">Alea iacta est</em>
└────


Best regards,

Juan Manuel 

-- 
Juan Manuel Macías -- Composición tipográfica, tratamiento de datos, diseño editorial y ortotipografía



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

end of thread, other threads:[~2024-04-14 19:27 UTC | newest]

Thread overview: 83+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-01 20:34 Experimental public branch for inline special blocks Juan Manuel Macías
2024-03-02  8:29 ` Stefan Nobis
2024-03-02 10:57   ` Juan Manuel Macías
2024-03-03 20:29 ` Juan Manuel Macías
2024-03-10  2:08   ` `:export' attribute?: " Juan Manuel Macías
2024-03-10 13:54     ` Juan Manuel Macías
2024-03-11 10:27     ` Max Nikulin
2024-03-11 13:59       ` Juan Manuel Macías
2024-03-11 17:01         ` Max Nikulin
2024-03-11 20:19           ` Juan Manuel Macías
2024-03-12  8:32             ` Stefan Nobis
2024-03-12 13:45               ` Juan Manuel Macías
2024-03-12 16:20                 ` Max Nikulin
2024-03-12 17:41                   ` Juan Manuel Macías
2024-03-13 16:08                     ` Max Nikulin
2024-03-13 16:48                       ` Juan Manuel Macías
2024-03-13 17:16                         ` Juan Manuel Macías
2024-03-15  2:19                           ` Juan Manuel Macías
2024-03-15 10:52                             ` Max Nikulin
2024-03-15 13:10                               ` Juan Manuel Macías
2024-03-15 17:21                                 ` Max Nikulin
2024-03-15 14:00                               ` Ihor Radchenko
2024-03-15 11:11                                 ` Max Nikulin
2024-03-15 14:19                                   ` Ihor Radchenko
2024-03-15 16:26                               ` Juan Manuel Macías
2024-03-16 14:07                                 ` Max Nikulin
2024-03-18 19:42                                   ` Juan Manuel Macías
2024-03-19 14:54                                     ` Max Nikulin
2024-03-19 17:47                                       ` Juan Manuel Macías
2024-03-21 10:26                                       ` inline-special-block: export rules (was: `:export' attribute?: Re: Experimental public branch for inline special blocks) Juan Manuel Macías
2024-03-26 16:56                                         ` inline-special-block: export rules Max Nikulin
2024-03-04 17:13 ` naming: Re: Experimental public branch for inline special blocks Max Nikulin
2024-03-04 17:29   ` Ihor Radchenko
2024-03-04 17:49     ` Juan Manuel Macías
2024-03-05 10:53       ` Max Nikulin
2024-03-05 11:04         ` Ihor Radchenko
2024-03-05 15:16           ` Suhail Singh
2024-03-05 15:23             ` Suhail Singh
2024-03-05 15:16         ` Juan Manuel Macías
2024-03-06 10:42     ` Max Nikulin
2024-03-06 10:56       ` Ihor Radchenko
2024-03-07 10:34         ` Max Nikulin
2024-03-07 14:12           ` Ihor Radchenko
2024-03-08  5:26             ` Samuel Wales
2024-03-08 16:32               ` Max Nikulin
2024-03-08 16:41                 ` Ihor Radchenko
2024-03-04 18:07   ` Juan Manuel Macías
2024-03-04 22:17     ` Samuel Wales
2024-03-04 22:18       ` Samuel Wales
2024-03-05 16:47 ` smallcaps: " Max Nikulin
2024-03-05 17:28   ` Juan Manuel Macías
2024-03-06 10:55     ` Max Nikulin
2024-03-06 15:21       ` Juan Manuel Macías
2024-03-06 16:53 ` To avoid zero width space: " Max Nikulin
2024-03-06 18:27   ` Juan Manuel Macías
2024-03-06 21:13   ` Juan Manuel Macías
2024-03-07 10:57 ` false positives: " Max Nikulin
2024-03-07 11:06   ` Juan Manuel Macías
2024-03-07 11:18     ` Ihor Radchenko
2024-03-07 11:19       ` Juan Manuel Macías
2024-03-07 15:53       ` Juan Manuel Macías
2024-03-07 16:09         ` Ihor Radchenko
2024-03-07 16:57           ` Juan Manuel Macías
2024-03-07 18:21             ` Juan Manuel Macías
2024-03-08 13:58               ` Max Nikulin
2024-03-08 15:44                 ` Juan Manuel Macías
2024-03-08 16:04                   ` Max Nikulin
2024-03-08 16:15                   ` Ihor Radchenko
2024-03-08 18:44                     ` Juan Manuel Macías
2024-03-08 18:57                       ` Juan Manuel Macías
2024-03-09 11:10                         ` Max Nikulin
2024-03-09 11:48                           ` Juan Manuel Macías
2024-03-09 15:24                             ` Juan Manuel Macías
2024-03-10  7:11                               ` Max Nikulin
2024-04-09  8:52 ` Ihor Radchenko
2024-04-09 10:51   ` Max Nikulin
2024-04-09 14:05     ` Ihor Radchenko
2024-04-10 23:00       ` Juan Manuel Macías
2024-04-11 12:26         ` Ihor Radchenko
2024-04-11 13:47           ` Juan Manuel Macías
2024-04-14 15:59   ` Attributes on images (was:: Experimental public branch for inline special blocks) Rick Lupton
2024-04-14 19:26     ` Ihor Radchenko
2024-04-11 11:06 ` Experimental public branch for inline special blocks Max Nikulin

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