[O] Exporting verbatim html that should not be part of an outline div

2011-09-08 Thread Philipp Möller
Hello,
I'm trying to get a sidebar when exporting an org file to HTML and I'm stuck
with getting my verbatim html into a separate div. The produced html should
look like this

div id=content
   ... outlines ...
/div

div id=sidebar

/div

It doesn't matter to me if the sidebar div is before or after the content
div but it shouldn't be a child of it.

Placing the verbatim HTML after any part of subtree won't work as the html
will become part of this outline div.
Placing the verbatim HTML before the first top level node won't work either,
the div will be part of the content div.

I currently work around this with the :html-postamble and add css for the
postamble div but this is rather ugly and put parts of my document into the
my org-mode configuration.

Another options seems to set the postamble on a per file level but I have no
idea how to do that.

Is that a missing feature or am I overseeing anything?

Cheers,
Philipp


Re: [O] %(SEXP) with %c in org-capture templates

2011-07-25 Thread Philipp Möller
On 24 July 2011 18:48, Bastien b...@altern.org wrote:
 Hi Philipp,

 Philipp Möller bootsare...@googlemail.com writes:

 nevermind. I figured out that the expansion order of %s and s
 expressions is the problem and also the reason for the with the
 correct URL.
 The solution is to use %(get-page-title (current-kill 0)).

 Thanks for letting us know!

 Can this be added to the documentation or is it supposed to be obvious
 from the order of available template expansions?

 IMHO this should go in the documentation -- could you provide a patch
 for this?

A patch for the doc string and the info manual is attached. Let me
know if anything is wrong with it.

Philipp

 Thanks,

 --
  Bastien

diff --git a/doc/org.texi b/doc/org.texi
index 87f73a8..8c6b137 100644
--- a/doc/org.texi
+++ b/doc/org.texi
@@ -6526,39 +6526,39 @@ buffer again after capture is completed.
 
 In the template itself, special @kbd{%}-escapes@footnote{If you need one of
 these sequences literally, escape the @kbd{%} with a backslash.}  allow
-dynamic insertion of content:
+dynamic insertion of content. The templates are expanded in the order given 
here:
 
 @smallexample
-%^@{@var{prompt}@}  @r{prompt the user for a string and replace this sequence 
with it.}
-@r{You may specify a default value and a completion table with}
-@r{%^@{prompt|default|completion2|completion3...@}.}
-@r{The arrow keys access a prompt-specific history.}
+%[@var{file}] @r{insert the contents of the file given by @var{file}.}
+%(@var{sexp}) @r{evaluate Elisp @var{sexp} and replace with the result.}
+%...  @r{the result of format-time-string on the ... format 
specification.}
+%t  @r{timestamp, date only.}
+%T  @r{timestamp with date and time.}
+%u, %U  @r{like the above, but inactive timestamps.}
 %a  @r{annotation, normally the link created with 
@code{org-store-link}.}
-%A  @r{like @code{%a}, but prompt for the description part.}
 %i  @r{initial content, the region when capture is called while the}
 @r{region is active.}
 @r{The entire text will be indented like @code{%i} itself.}
-%t  @r{timestamp, date only.}
-%T  @r{timestamp with date and time.}
-%u, %U  @r{like the above, but inactive timestamps.}
-%^t @r{like @code{%t}, but prompt for date.  Similarly @code{%^T}, 
@code{%^u}, @code{%^U}.}
-@r{You may define a prompt like @code{%^@{Birthday@}t}.}
-%...  @r{the result of format-time-string on the ... format 
specification.}
-%n  @r{user name (taken from @code{user-full-name}).}
+%A  @r{like @code{%a}, but prompt for the description part.}
 %c  @r{Current kill ring head.}
 %x  @r{Content of the X clipboard.}
-%^C @r{Interactive selection of which kill or clip to use.}
-%^L @r{Like @code{%^C}, but insert as link.}
 %k  @r{title of the currently clocked task.}
 %K  @r{link to the currently clocked task.}
+%n  @r{user name (taken from @code{user-full-name}).}
 %f  @r{file visited by current buffer when org-capture was called.}
 %F  @r{full path of the file or directory visited by current buffer.}
+%:keyword   @r{specific information for certain link types, see below.}
 %^g @r{prompt for tags, with completion on tags in target file.}
 %^G @r{prompt for tags, with completion all tags in all agenda files.}
+%^t @r{like @code{%t}, but prompt for date.  Similarly @code{%^T}, 
@code{%^u}, @code{%^U}.}
+@r{You may define a prompt like @code{%^@{Birthday@}t}.}
+%^C @r{Interactive selection of which kill or clip to use.}
+%^L @r{Like @code{%^C}, but insert as link.}
 %^@{@var{prop}@}p   @r{Prompt the user for a value for property @var{prop}.}
-%:keyword   @r{specific information for certain link types, see below.}
-%[@var{file}] @r{insert the contents of the file given by @var{file}.}
-%(@var{sexp}) @r{evaluate Elisp @var{sexp} and replace with the result.}
+%^@{@var{prompt}@}  @r{prompt the user for a string and replace this sequence 
with it.}
+@r{You may specify a default value and a completion table with}
+@r{%^@{prompt|default|completion2|completion3...@}.}
+@r{The arrow keys access a prompt-specific history.}
 @end smallexample
 
 @noindent
diff --git a/lisp/org-capture.el b/lisp/org-capture.el
index d80bddc..d18dd96 100644
--- a/lisp/org-capture.el
+++ b/lisp/org-capture.el
@@ -206,39 +206,40 @@ properties are:
  capture was invoked, kill the buffer again after capture
  is finalized.
 
-The template defines the text to be inserted.  Often this is an org-mode
-entry (so the first line should start with a star) that will be filed as a
-child of the target headline.  It can also be freely formatted text.
-Furthermore, the following %-escapes will be replaced with content:
+The template

Re: [O] %(SEXP) with %c in org-capture templates

2011-07-15 Thread Philipp Möller
On 13 July 2011 01:46, Philipp Möller bootsare...@googlemail.com wrote:
 Hello all,
 I want to define a capture template which pre-processes the head of the kill
 ring with a sexp that takes a string as an argument:

 (setq org-capture-templates
   (quote
    ((l Link entry (file+headline  Links)
  * \%c\ %(get-page-title \%c\)

 ;; throws Bad url
 (get-page-title foo-bar)
 ;; works as expected
 (get-page-title http://orgmode.org/manual/Template-expansion.html;)

 (defun get-page-title (url)
   Get title of web page, whose url can be found in the current line
   ;; Get title of web page, with the help of functions in url.el
   (with-current-buffer (url-retrieve-synchronously url)
     ;; find title by grep the html code
     (goto-char 0)
     (re-search-forward title\\([^]*\\)/title nil t 1)
     (setq web_title_str (match-string 1))
     ;; find charset by grep the html code
     (goto-char 0)

     ;; find the charset, assume utf-8 otherwise
     (if (re-search-forward charset=\\([-0-9a-zA-Z]*\\) nil t 1)
     (setq coding_charset (downcase (match-string 1)))
   (setq coding_charset utf-8)
     ;; decode the string of title.
     (setq web_title_str (decode-coding-string web_title_str (intern

 coding_charset)))
     )
   (concat [[ url ][ web_title_str ]])
   ))

 Please just ignore that I'm trying to parse XML with a regexp here.

 get-page-title works when called from code but always returns bad url when
 called from the capture template.
 Is the problem the way I escape the string or is this just not the way the
 sexp in capture are supposed to be used?

Hi,
nevermind. I figured out that the expansion order of %s and s
expressions is the problem and also the reason for the with the
correct URL.
The solution is to use %(get-page-title (current-kill 0)).

Can this be added to the documentation or is it supposed to be obvious
from the order of available template expansions?

Regards,
Philipp


 Regards,
 Philipp




[O] %(SEXP) with %c in org-capture templates

2011-07-12 Thread Philipp Möller
Hello all,
I want to define a capture template which pre-processes the head of the kill
ring with a sexp that takes a string as an argument:

(setq org-capture-templates
  (quote
   ((l Link entry (file+headline  Links)
 * \%c\ %(get-page-title \%c\)

;; throws Bad url
(get-page-title foo-bar)
;; works as expected
(get-page-title http://orgmode.org/manual/Template-expansion.html;)

(defun get-page-title (url)
  Get title of web page, whose url can be found in the current line
  ;; Get title of web page, with the help of functions in url.el
  (with-current-buffer (url-retrieve-synchronously url)
;; find title by grep the html code
(goto-char 0)
(re-search-forward title\\([^]*\\)/title nil t 1)
(setq web_title_str (match-string 1))
;; find charset by grep the html code
(goto-char 0)

;; find the charset, assume utf-8 otherwise
(if (re-search-forward charset=\\([-0-9a-zA-Z]*\\) nil t 1)
(setq coding_charset (downcase (match-string 1)))
  (setq coding_charset utf-8)
;; decode the string of title.
(setq web_title_str (decode-coding-string web_title_str (intern

coding_charset)))
)
  (concat [[ url ][ web_title_str ]])
  ))

Please just ignore that I'm trying to parse XML with a regexp here.

get-page-title works when called from code but always returns bad url when
called from the capture template.
Is the problem the way I escape the string or is this just not the way the
sexp in capture are supposed to be used?

Regards,
Philipp