From: Christian Moe <mail@christianmoe.com>
To: Carsten Dominik <carsten.dominik@gmail.com>
Cc: Sebastien Vauban <wxhgmqzgwmuf@spammotel.com>, emacs-orgmode@gnu.org
Subject: Re: Org-special-blogs does not make well-formed xhtml
Date: Thu, 06 Oct 2011 12:17:16 +0200 [thread overview]
Message-ID: <4E8D802C.7030601@christianmoe.com> (raw)
In-Reply-To: <2704BF81-08C0-4616-AFF1-20797E42CAE3@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2203 bytes --]
Hi, Carsten,
I've submitted a patch separately. It seems to play nice with the
enclosed test file.
If org-special-blocks is supposed to become part of the core (it's
moved out of contrib, but we still have to require it), it might make
sense to just move the html and latex formatting code into org-html.el
and org-latex.el respectively, together with the handling of
blockquotes, verses, centering etc.
Yours,
Christian
On 10/4/11 11:33 PM, Carsten Dominik wrote:
> Hi Christian,
>
> for now I have reverted the patch. WOuld you like to work on a better one?
>
> - Carsten
>
> On 4.10.2011, at 21:01, Christian Moe wrote:
>
>> Hi,
>>
>> Carsten, thanks.
>>
>> Jambunathan's probably right, though, that this fix (while necessary) is incomplete. Sorry, I hadn't thought it through.
>>
>> Now, when the first paragraph of a special block comes right after the #+BEGIN_WHATEVER line, it will just come as the first text node of the<div> block, and will not be wrapped in a<p> element. So among other things, any special CSS styling for<p>s will not be applied to it.
>>
>> It's not a big deal -- if you need a<p> (and often you really don't) the workaround is as simple as leaving an empty line between #+BEGIN_WHATEVER and the first paragraph.
>>
>> But I guess it would be more consistent/expected/helpful behavior for special-blocks to start a new paragraph -- this time *after* the opening<div> tag and not around it!
>>
>> Yours,
>> Christian
>>
>>
>> On 10/4/11 4:36 PM, Jambunathan K wrote:
>>>
>>> Carsten Dominik<carsten.dominik@gmail.com> writes:
>>>> I see no reason to not uncomment this line. Shall we just do this?
>>>
>>> Shouldn't a paragraph be opened/closed while entering/leaving the div.
>>>
>>> ,---- See org-xhtml-format-environment
>>> | (center
>>> | (case beg-end
>>> | (BEGIN
>>> | (org-lparse-end-paragraph)
>>> | (insert "\n<div style=\"text-align: center\">")
>>> | (org-lparse-begin-paragraph))
>>> | (END
>>> | (org-lparse-end-paragraph)
>>> | (insert "\n</div>")
>>> | (org-lparse-begin-paragraph))))
>>> `----
>>>
>>> We can always open a paragraph gratis, because empty paragraphs are
>>> pruned at the end of export.
>
>
>
[-- Attachment #2: special-blocks-test.org --]
[-- Type: text/plain, Size: 1612 bytes --]
#+style: <style>.abstract:before { content: "Abstract: "; font-weight: bold; display: inline}
#+style: .abstract {font-size: 10pt; margin-left: 3em}
#+style: .sidebar {border: 1px solid black; padding: 1em; background: yellow; counter-increment: box}
#+style: .sidebar:before {content: "Box " counter(box); font-weight: bold; display: block}
#+style: p {font-family: arial}</style
Special blocks test
#+begin_src emacs-lisp
(require 'org-special-blocks)
#+end_src
#+results:
: org-special-blocks
#+begin_abstract
This is a special =abstract= block.
#+end_abstract
Some text.
#+begin_sidebar
This is a sidebar with additional detail. Check that the first
paragraph is styled the same as the others.
It extends over several paragraphs.
#+end_sidebar
Some more text.
#+begin_sidebar
This is another example with lines above/below.
#+end_sidebar
Text again.
#+begin_center
This is centered text. Like special blocks, it's wrapped in a =div=
element in HTML.
#+end_center
New code:
#+begin_src emacs-lisp
(defun org-special-blocks-convert-html-special-cookies ()
"Converts the special cookies into div blocks."
;; Uses the dynamically-bound variable `line'.
(when (string-match "^ORG-\\(.*\\)-\\(START\\|END\\)$" line)
(message "%s" (match-string 1))
(when (equal (match-string 2 line) "START")
(org-close-par-maybe)
(insert "\n<div class=\"" (match-string 1 line) "\">")
(org-open-par))
(when (equal (match-string 2 line) "END")
(org-close-par-maybe)
(insert "\n</div>")
(org-open-par))
(throw 'nextline nil)))
#+end_src
prev parent reply other threads:[~2011-10-06 10:14 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-03 12:44 Org-special-blogs does not make well-formed xhtml Christian Moe
2011-10-03 13:26 ` Sebastien Vauban
2011-10-04 11:23 ` Carsten Dominik
2011-10-04 12:45 ` Christian Moe
2011-10-04 14:22 ` Carsten Dominik
2011-10-04 14:36 ` Jambunathan K
2011-10-04 19:01 ` Christian Moe
2011-10-04 21:33 ` Carsten Dominik
2011-10-06 10:17 ` Christian Moe [this message]
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=4E8D802C.7030601@christianmoe.com \
--to=mail@christianmoe.com \
--cc=carsten.dominik@gmail.com \
--cc=emacs-orgmode@gnu.org \
--cc=wxhgmqzgwmuf@spammotel.com \
/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).