* [Workaround] Escaping false list items
@ 2011-03-11 14:12 Christian Moe
2011-03-11 15:20 ` Nicolas
0 siblings, 1 reply; 6+ messages in thread
From: Christian Moe @ 2011-03-11 14:12 UTC (permalink / raw)
To: Org Mode
Hi,
Back to the problem with e.g. "2011. " being interpreted as a list
item when it happens to be at the beginning of a line:
After a bad experience with a document that had a lot of those, I came
up with this function to easily escape false list items. Maybe some of
you will find it helpful, or better yet, have suggestions for
improvements.
(defun my/org-list-escape-nonitems ()
(interactive)
(let ((nonitem "[0-9]\\{4\\}") ; Unlikely list numbers
; here: four-digit numbers (years)
(term (cond
((eq org-plain-list-ordered-item-terminator t) "[.)]")
((= org-plain-list-ordered-item-terminator ?\)) ")")
((= org-plain-list-ordered-item-terminator ?.) "\\.")
(t "[.)]"))))
(goto-char (point-min))
(query-replace-regexp
(concat "^\\(" nonitem "\\)\\(" term "\\) ")
(concat "\\1\\2" (string ?\240)))))
It calls query-replace-regexp, so the user can confirm each
replacement interactively, on apparent list items where the numbering
matches the NONITEM regexp. If confirmed, it replaces the space after
the item terminator with a non-breaking space.
In the code above, NONITEM is simply hard-coded as four digits,
matching years. It could be made a customizable variable.
The adventurous might want to call it automatically before export,
though currently this does not work well with subtree exports:
(add-hook 'org-export-first-hook 'my/org-list-escape-nonitems)
Feedback welcome.
Yours,
Christian
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Workaround] Escaping false list items
2011-03-11 14:12 [Workaround] Escaping false list items Christian Moe
@ 2011-03-11 15:20 ` Nicolas
2011-03-11 18:02 ` Samuel Wales
2011-03-11 18:15 ` Christian Moe
0 siblings, 2 replies; 6+ messages in thread
From: Nicolas @ 2011-03-11 15:20 UTC (permalink / raw)
To: mail; +Cc: Org Mode
Hello,
Christian Moe <mail@christianmoe.com> writes:
> Back to the problem with e.g. "2011. " being interpreted as a list
> item when it happens to be at the beginning of a line:
Did you read my suggestion to avoid filling at such positions? While it
won't help on existing documents, I think it is a more general approach
to the problem.
Regards,
--
Nicolas
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Re: [Workaround] Escaping false list items
2011-03-11 15:20 ` Nicolas
@ 2011-03-11 18:02 ` Samuel Wales
2011-03-11 18:15 ` Christian Moe
1 sibling, 0 replies; 6+ messages in thread
From: Samuel Wales @ 2011-03-11 18:02 UTC (permalink / raw)
To: mail, Org Mode
Here are 2 alternatives. The second, for me, is probably pretty
bulletproof (pun intended after it was made :)). I like solution 2.
Solution 1:
Is it the case that you have text at the same column on the
line before? Perhaps that could be considered invalid for
lists. Of course there will still be problems with
e.g. partial lists of references. And perhaps this will
break people's habits. Not sure I like this solution, but thought to
mention it.
Solution 2:
1) I always start my lists at column 2, without
exception.
2) I always have paragraphs at column 0, unless they are
in a list or are manual insets (such as quotes). I am
willing to put manual quotes some place other than
column 2.
All that's required is for the list code to (optionally):
1) start lists at column 2
2) never assume anything at column 0 is a list item
Perhaps a combination of solutions would work.
Samuel
--
AIDS 2.0 is here now:
http://thekafkapandemic.blogspot.com/2010/12/welcome-to-kafka-pandemic-two-forces_9182.html
I support the Whittemore-Peterson Institute (WPI)
===
I want to see the original (pre-hold) Lo et al. 2010 NIH/FDA/Harvard MRV paper.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Re: [Workaround] Escaping false list items
2011-03-11 15:20 ` Nicolas
2011-03-11 18:02 ` Samuel Wales
@ 2011-03-11 18:15 ` Christian Moe
2011-03-11 18:22 ` Nicolas
1 sibling, 1 reply; 6+ messages in thread
From: Christian Moe @ 2011-03-11 18:15 UTC (permalink / raw)
To: Org Mode, Nicolas Goaziou
On 3/11/11 4:20 PM, Nicolas wrote:
> Hello,
>
> Christian Moe <mail@...> writes:
>
>> Back to the problem with e.g. "2011. " being interpreted as a list
>> item when it happens to be at the beginning of a line:
>
> Did you read my suggestion to avoid filling at such positions? While it
> won't help on existing documents, I think it is a more general approach
> to the problem.
I must have missed that, sorry. I remember you suggesting either to
use right-paren as item terminator, or manually insert a non-breaking
space after the dot.
Did you have a particular trick in mind, or just to avoid filling
manually? I tend to have auto-fill on by default.
The little utility function I posted makes the non-breaking-space
solution more workable for me. It wasn't intended as a contribution to
Org-mode, just as something some people might want to put in their
.emacs and try out, so I didn't put much thought into generalizing it.
Yours,
Christian
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2011-03-11 21:15 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-11 14:12 [Workaround] Escaping false list items Christian Moe
2011-03-11 15:20 ` Nicolas
2011-03-11 18:02 ` Samuel Wales
2011-03-11 18:15 ` Christian Moe
2011-03-11 18:22 ` Nicolas
2011-03-11 21:18 ` Christian Moe
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).