From: Philipp Gesang <philipp.gesang@alumni.uni-heidelberg.de>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Subject: Re: reStructuredText module
Date: Tue, 12 Mar 2013 21:23:55 +0100 [thread overview]
Message-ID: <20130312202355.GA8066@phlegethon> (raw)
In-Reply-To: <513F1F60.4020003@meahan.net>
[-- Attachment #1.1: Type: text/plain, Size: 5578 bytes --]
···<date: 2013-03-12, Tuesday>···<from: Bill Meahan>···
> Philipp Gesang wrote:
> >···<date: 2013-03-11, Monday>···<from: Bill Meahan>···
> >>Am I correct in thinking the rst module does not process the "class"
> >>and "container" directives?
> >When I wrote the module I was working with the reST spec [0] and
> >the syntax reference [1]. It’s been a while, but afair I
> >implemented the spec completely (with the limitations described
> >in the manual). It does not, to my knowledge, define the
> >directives you mention and I don’t know what they’re supposed to
> >do.
> >
> >(Btw. like much of the spec, “container” and “class” sound
> >suspiciously HTML-specific. If that is true, they address one
> >output markup which happens to be -- not Context! I might find
> >the time to add a simple wrapper for the container thingy (to
> >boxes or framed?). However, I doubt that it’s possible to
> >replicate the behavior of HTML divs + CSS without a larger effort
> >[2]. In this case it might be preferable to have docutils
> >generate some XML and directly typeset the result with Context.)
> >
> >Best regards
> >Philipp
>
> The .class and .container direectives are certainly there with *ML in mind but I think there might be analog situatins in ConTeXt.
>
> .. class:: classname
>
> blah, blah, blah
>
> exists to stick a class name on the following element for styling with an external stylesheet of some sort. CSS/CSS3 are probably the primary examles but other XML-bases markus apply just as well
>
> .. class::classname
>
> blab, blab, blab
>
> could yield
>
> <p class=classname>blab, blab, blab</p>
> <h2 class=classname>blab. blab, blab</h2>
>
> or anything else that can take a class name attribute.
From its description [0], the “class” directive appears to be
next to meaningless outside an HTML context. It’s supposed to set
“classes”. The doctree spec [1] explicitly states that “The
classes attribute's contents should be ignorable.”
To my knowledge, the closest thing in Context to CSS classes is
the “setups=” parameter. All macros don’t accept it, though, so
I can’t think of a general way of handling it. The list of macros
where it applies would have to be hardcoded ...
Docutils’ latex2 writer -- the reference implementation, mind
you -- btw. doesn’t take the “class” directive seriously at all:
it handles paragraphs but ignores it e.g. for section heads.
> .. container:: containername
>
> Foo, bar, baz
>
> bunch of stuff
>
> yields
>
> <div class=containername>
>
> foo, bar, baz
>
> bunch of stuff
>
> </div>
>
> .. container:: probably maps to something like
> \frame[containername]
> although frames as such cannot cross page boundaries. Perhaps
> there is (or could be) a more suitable construct. I'm trying to
> be exemplary not directive. :)
Fyi [2]: “container” is docutils for “div”. How’s a “div”
supposed to look? That depends on your browser (not the spec!),
and the HTML version being used (XHTML 1.1 for python2-docutils).
What does that mean for non-HTML targets? Apparently nothing:
again, docutils ignore the directive when writing LaTeX (and man
pages, for that matter).
Nevertheless, I added some code to handle container directives:
at the moment they simply map to macros of the same name.
Existence of the macro is tested for at runtime, so you can place
the definitions in your preamble. Example:
·································································
This is a paragraph.
.. container:: xyzzy
whatever
foo **bar** baz
This is another paragraph.
·································································
This will generate the output:
·································································
\startparagraph
This is a paragraph.
\stopparagraph
\ifcsname xyzzy\endcsname%
\csname xyzzy\endcsname%
{whatever foo {\sc bar} baz}%
\else
{whatever foo {\sc bar} baz}%
\fi
\startparagraph
This is another paragraph.
\stopparagraph
·································································
So if there’s no \xyzzy, the contents are treated as a simple
group. Unnamed containers default to \framed. Let me know what
you think. The code is at:
https://bitbucket.org/phg/context-rst/get/0df50df9c8fb.zip
> ConTeXt environment files are certainly analogus to CSS files and are used with the same end goals in mind.
>
> "styling" markup elements through "class=" or equivalent is
> rapidly becoming the order of the day for a wide variety of
> documents. Certainly (X)HTML, epub2, epub3, ODT, DOCX and an
> increasing horde of others are either there or heading there very
> soon.
Sure. I have no problem with that as long as it stays
implementation-agnostic.
Thanks for the feedback.
Philipp
[0] http://docutils.sourceforge.net/docs/ref/rst/directives.html#class
[1] http://docutils.sourceforge.net/docs/ref/doctree.html#classes
[2] http://docutils.sourceforge.net/docs/ref/rst/directives.html#container
>
--
() ascii ribbon campaign - against html e-mail
/\ www.asciiribbon.org - against proprietary attachments
[-- Attachment #1.2: Type: application/pgp-signature, Size: 198 bytes --]
[-- Attachment #2: Type: text/plain, Size: 485 bytes --]
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________
next prev parent reply other threads:[~2013-03-12 20:23 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-11 23:28 Bill Meahan
2013-03-12 0:31 ` Philipp Gesang
2013-03-12 12:28 ` Bill Meahan
2013-03-12 20:23 ` Philipp Gesang [this message]
2013-03-12 20:57 ` Aditya Mahajan
2013-03-12 21:42 ` Philipp Gesang
2013-03-12 23:21 ` Aditya Mahajan
2013-03-14 7:32 ` Keith J. Schultz
2013-03-14 16:02 ` Bug in \start (Re: reStructuredText module) Aditya Mahajan
2013-03-14 16:54 ` Hans Hagen
2013-03-14 17:17 ` reStructuredText module Philipp Gesang
2013-03-14 17:40 ` Marco Patzer
2013-03-14 17:57 ` Hans Hagen
2013-03-14 20:02 ` Aditya Mahajan
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130312202355.GA8066@phlegethon \
--to=philipp.gesang@alumni.uni-heidelberg.de \
--cc=ntg-context@ntg.nl \
/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.
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 NNTP newsgroup(s).