emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* [RFC] Org version of the Org manual
@ 2013-02-25 20:21 Thomas S. Dye
  2013-02-25 21:21 ` Carsten Dominik
                   ` (3 more replies)
  0 siblings, 4 replies; 45+ messages in thread
From: Thomas S. Dye @ 2013-02-25 20:21 UTC (permalink / raw)
  To: Org-mode

Aloha all,

An experiment to see if it is possible to convert the Org manual to Org
is now (hopefully) at the "proof of concept" stage and I would like to
determine whether or not the approach is viable. The experiment is here:

https://github.com/tsdye/orgmanual.git

The file orgmanual.org has a heading, * Instructions for use, that
explains how to set up asynchronous export with the new exporter. The
repo also contains orgmanual.info in case you don't want to hassle with
exporting the org file and just want to see what it looks like in info.
I'm able to generate an info file without makeinfo raising any errors or
warnings. 

There is also a heading, * Improvements and fixes, that includes a list
of problems that either need to be fixed or are in the process of being
fixed. Obviously, the file is not perfect, but I do believe it is good
enough to judge whether success will be possible. At any rate, I need to
pull myself away from this project for a week or so to do other things
and can't get caught up making editorial changes or working on the (to
me) thorny issues that remain.

Sections with problems have been given FIXME keywords. In some cases,
problem text (especially in macros) has been replaced with `XXX'.
Proposed fixes for these nagging issues will be greatly appreciated.

By way of background, my initial goal was to replicate the Org manual
precisely. This goal was abandoned when I realized that the various
contributors to the manual (including me a few years ago) had different
ideas about what a .texi file should look like and had created a somewhat
eclectic product.  The goal now is to have a "functional equivalent" of
the manual.

The ultimate goal is to maintain the Org manual in Org, rather than
.texi, and to have the infrastructure in place in time to support the
major revisions required by the forthcoming release of version 8.0.

Many thanks to Nicolas Goaziou and to Jonathan Leech-Pepin for their
excellent work on the new exporter framework and the texinfo exporter,
and for their patience with my sometimes exasperated (and exasperating)
queries.  Jonathan showed me the way forward at an early stage and
devised most of the macros.

I look forward to picking this project up again in a week or so, or
learning from my Org colleagues that the project ought to be scuttled.

All the best,
Tom

-- 
T.S. Dye & Colleagues, Archaeologists
735 Bishop St, Suite 315, Honolulu, HI 96813
Tel: 808-529-0866, Fax: 808-529-0884
http://www.tsdye.com

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

* Re: [RFC] Org version of the Org manual
  2013-02-25 20:21 [RFC] Org version of the Org manual Thomas S. Dye
@ 2013-02-25 21:21 ` Carsten Dominik
  2013-03-04 21:28 ` Achim Gratz
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 45+ messages in thread
From: Carsten Dominik @ 2013-02-25 21:21 UTC (permalink / raw)
  To: Thomas S. Dye; +Cc: Org-mode

Hi Tom,

wow, a daring project.  This would indeed be a testimony to the quality of the exporter if this works and gives proper output!  I am curious and looking forward to seeing the results.

- Carsten

On 25.2.2013, at 21:21, Thomas S. Dye <tsd@tsdye.com> wrote:

> Aloha all,
> 
> An experiment to see if it is possible to convert the Org manual to Org
> is now (hopefully) at the "proof of concept" stage and I would like to
> determine whether or not the approach is viable. The experiment is here:
> 
> https://github.com/tsdye/orgmanual.git
> 
> The file orgmanual.org has a heading, * Instructions for use, that
> explains how to set up asynchronous export with the new exporter. The
> repo also contains orgmanual.info in case you don't want to hassle with
> exporting the org file and just want to see what it looks like in info.
> I'm able to generate an info file without makeinfo raising any errors or
> warnings. 
> 
> There is also a heading, * Improvements and fixes, that includes a list
> of problems that either need to be fixed or are in the process of being
> fixed. Obviously, the file is not perfect, but I do believe it is good
> enough to judge whether success will be possible. At any rate, I need to
> pull myself away from this project for a week or so to do other things
> and can't get caught up making editorial changes or working on the (to
> me) thorny issues that remain.
> 
> Sections with problems have been given FIXME keywords. In some cases,
> problem text (especially in macros) has been replaced with `XXX'.
> Proposed fixes for these nagging issues will be greatly appreciated.
> 
> By way of background, my initial goal was to replicate the Org manual
> precisely. This goal was abandoned when I realized that the various
> contributors to the manual (including me a few years ago) had different
> ideas about what a .texi file should look like and had created a somewhat
> eclectic product.  The goal now is to have a "functional equivalent" of
> the manual.
> 
> The ultimate goal is to maintain the Org manual in Org, rather than
> .texi, and to have the infrastructure in place in time to support the
> major revisions required by the forthcoming release of version 8.0.
> 
> Many thanks to Nicolas Goaziou and to Jonathan Leech-Pepin for their
> excellent work on the new exporter framework and the texinfo exporter,
> and for their patience with my sometimes exasperated (and exasperating)
> queries.  Jonathan showed me the way forward at an early stage and
> devised most of the macros.
> 
> I look forward to picking this project up again in a week or so, or
> learning from my Org colleagues that the project ought to be scuttled.
> 
> All the best,
> Tom
> 
> -- 
> T.S. Dye & Colleagues, Archaeologists
> 735 Bishop St, Suite 315, Honolulu, HI 96813
> Tel: 808-529-0866, Fax: 808-529-0884
> http://www.tsdye.com
> 

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

* Re: [RFC] Org version of the Org manual
  2013-02-25 20:21 [RFC] Org version of the Org manual Thomas S. Dye
  2013-02-25 21:21 ` Carsten Dominik
@ 2013-03-04 21:28 ` Achim Gratz
  2013-03-06  3:14   ` Thomas S. Dye
  2013-03-16 16:00 ` Achim Gratz
  2013-03-17 10:28 ` Achim Gratz
  3 siblings, 1 reply; 45+ messages in thread
From: Achim Gratz @ 2013-03-04 21:28 UTC (permalink / raw)
  To: emacs-orgmode

Thomas S. Dye writes:
[…]
> I look forward to picking this project up again in a week or so, or
> learning from my Org colleagues that the project ought to be scuttled.

Hi Tom,

this looks good.

I've implemented a rough draft of a Makefile that integrates with the
build system (a clean target is still missing, etc.pp.).  To use, clone
orgmanual.git in the Org worktree (don't add it, or add as a submodule),
then drop this Makefile into orgmanual/:

--8<---------------cut here---------------start------------->8---
BEXP=$(BATCH) \
	--eval '(add-to-list '"'"'load-path "../lisp")' \
	--eval '(setq org-footnote-auto-adjust nil)' \
	-l ox-texinfo \
	--eval '(add-to-list '"'"'org-export-snippet-translation-alist '"'"'("info" . "texinfo"))'
ORG2TEXI=-f org-texinfo-export-to-texinfo
ORG2INFO=--eval "(org-texinfo-compile \"./$<\")"

orgmanual.texi:	orgmanual.org
	$(BEXP) $< $(ORG2TEXI)
orgmanual.info:	orgmanual.texi
#	$(BEXP) $< $(ORG2INFO)
	$(MAKEINFO)  --no-split $< -o $@
orgmanual.pdf:	LC_ALL=C        # work around a bug in texi2dvi
orgmanual.pdf:	LANG=C          # work around a bug in texi2dvi
orgmanual.pdf:	orgmanual.texi
	$(TEXI2PDF) $<
--8<---------------cut here---------------end--------------->8---

Also make a link (for now) to ../doc/org-version.inc and add this to
local.mk:

--8<---------------cut here---------------start------------->8---
.PHONY:	orgmanual
orgmanual:
	$(MAKE) -C $@ $@.info $@.pdf
--8<---------------cut here---------------end--------------->8---


A "make orgmanual" then exports to orgmanual.texi (slowly) and an info
file is produced by makeinfo, but texi2dvi does not want to produce a
PDF yet and errors out.  The info file contains a few easily spotted
mistakes in the macro section like "~@{@{@{name(arg1,arg2)@~@}@}}" that
are quite probably the source of some of these errors.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Wavetables for the Terratec KOMPLEXER:
http://Synth.Stromeko.net/Downloads.html#KomplexerWaves

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

* Re: [RFC] Org version of the Org manual
  2013-03-04 21:28 ` Achim Gratz
@ 2013-03-06  3:14   ` Thomas S. Dye
  2013-03-06  7:44     ` Yagnesh Raghava Yakkala
  0 siblings, 1 reply; 45+ messages in thread
From: Thomas S. Dye @ 2013-03-06  3:14 UTC (permalink / raw)
  To: Achim Gratz; +Cc: emacs-orgmode

Hi Achim,

Achim Gratz <Stromeko@nexgo.de> writes:

> Thomas S. Dye writes:
> […]
>> I look forward to picking this project up again in a week or so, or
>> learning from my Org colleagues that the project ought to be scuttled.
>
> Hi Tom,
>
> this looks good.

Thanks for reviewing a work in progress.  I'm really pleased it looks
good to you.

>
> I've implemented a rough draft of a Makefile that integrates with the
> build system (a clean target is still missing, etc.pp.).  To use, clone
> orgmanual.git in the Org worktree (don't add it, or add as a submodule),
> then drop this Makefile into orgmanual/:

These instructions assume more knowledge than I have. Could you be more
specific about "in the Org worktree"? Should I create a branch where I
do this? Or, should I put this in one of the upstream branches and
arrange to push it into the Org repo?  In any case, can you suggest a
location?  /contrib?  /doc?

>
> BEXP=$(BATCH) \
> 	--eval '(add-to-list '"'"'load-path "../lisp")' \
> 	--eval '(setq org-footnote-auto-adjust nil)' \
> 	-l ox-texinfo \
> 	--eval '(add-to-list '"'"'org-export-snippet-translation-alist '"'"'("info" . "texinfo"))'
> ORG2TEXI=-f org-texinfo-export-to-texinfo
> ORG2INFO=--eval "(org-texinfo-compile \"./$<\")"
>
> orgmanual.texi:	orgmanual.org
> 	$(BEXP) $< $(ORG2TEXI)
> orgmanual.info:	orgmanual.texi
> #	$(BEXP) $< $(ORG2INFO)
> 	$(MAKEINFO)  --no-split $< -o $@
> orgmanual.pdf:	LC_ALL=C        # work around a bug in texi2dvi
> orgmanual.pdf:	LANG=C          # work around a bug in texi2dvi
> orgmanual.pdf:	orgmanual.texi
> 	$(TEXI2PDF) $<

This seems straightforward.

>
> Also make a link (for now) to ../doc/org-version.inc and add this to
> local.mk:
>
> .PHONY:	orgmanual
> orgmanual:
> 	$(MAKE) -C $@ $@.info $@.pdf
>

I can do this, but then the orgmanual.info generated from the source
will indicate the wrong version. Is that OK? I have instructions from
Bastien how to cull all the changes to org.texi that have taken place
since I started translating the manual to org several months ago. When
I'm done going through those, then the link will indicate the correct
version.

>
> A "make orgmanual" then exports to orgmanual.texi (slowly) and an info
> file is produced by makeinfo, but texi2dvi does not want to produce a
> PDF yet and errors out.  The info file contains a few easily spotted
> mistakes in the macro section like "~@{@{@{name(arg1,arg2)@~@}@}}" that
> are quite probably the source of some of these errors.

Thanks, I found these and have corrected them.  There are probably more ...

All the best,
Tom

-- 
Thomas S. Dye
http://www.tsdye.com

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

* Re: [RFC] Org version of the Org manual
  2013-03-06  3:14   ` Thomas S. Dye
@ 2013-03-06  7:44     ` Yagnesh Raghava Yakkala
  2013-03-06  8:18       ` Achim Gratz
  2013-03-07 17:35       ` Thomas S. Dye
  0 siblings, 2 replies; 45+ messages in thread
From: Yagnesh Raghava Yakkala @ 2013-03-06  7:44 UTC (permalink / raw)
  To: Thomas S. Dye; +Cc: Achim Gratz, emacs-orgmode


Hello Thomas,

> These instructions assume more knowledge than I have. Could you be more
> specific about "in the Org worktree"? Should I create a branch where I
> do this? Or, should I put this in one of the upstream branches and
> arrange to push it into the Org repo?  In any case, can you suggest a
> location?  /contrib?  /doc?

IIUC, Achim means,

--8<---------------cut here---------------start------------->8---
cd /source/directory/of/org-mode
git clone http:github.com/tsdye/orgmanual  # or your most updated repo of orgmanual

git submodule add orgmanual                # optional
git commit -m "Commit Message"             # optional

cd orgmanual
Create_Makefile                            # [1] 
ln -s ../doc/org-version.inc .

cd ..
update_local.mk_file                       # [2]
make orgmanual
--8<---------------cut here---------------end--------------->8---

For me also texi2dvi failed, but orgmanual.info is generated fine and looks
great.

Given texi generation is very slow, I wonder which format of manual will be
included in Emacs trunk.?

Anyway, very nice to see org manual in org Format. 

Thanks.,

[1],[2] are code bits from Achim's mail.

-- 
ఎందరో మహానుభావులు అందరికి వందనములు.
YYR

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

* Re: [RFC] Org version of the Org manual
  2013-03-06  7:44     ` Yagnesh Raghava Yakkala
@ 2013-03-06  8:18       ` Achim Gratz
  2013-03-06  8:29         ` Bastien
  2013-03-07 17:35       ` Thomas S. Dye
  1 sibling, 1 reply; 45+ messages in thread
From: Achim Gratz @ 2013-03-06  8:18 UTC (permalink / raw)
  To: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 508 bytes --]

Yagnesh Raghava Yakkala writes:
> IIUC, Achim means,

Thanks for spelling that out for me. :-)

> Given texi generation is very slow, I wonder which format of manual
> will be included in Emacs trunk.?

Well, there obviously needs to be improvement on that front.  I've
profiled the export already, but haven't had time yet to make sense of
the results.  Attached is the output from elp.  I also have profiler
results, but these are lisp data and I first need to figure out how to
load them in Emacs again.


[-- Attachment #2: elp.txt --]
[-- Type: text/plain, Size: 15700 bytes --]

org-entry-get                                       350676      469.21990999  0.0013380439
org-babel-exp-process-buffer                        1           317.362436    317.362436
org-babel-exp-src-block                             138         308.52577799  2.2356940434
org-babel-get-src-block-info                        3834        305.86685299  0.0797774786
org-babel-parse-src-block-match                     3834        301.70857400  0.0786928988
org-babel-exp-do-export                             138         299.98738899  2.1738216594
org-babel-exp-code                                  138         299.34870600  2.1691935217
org-babel-expand-noweb-references                   24          299.114988    12.4631245
org-babel-params-from-properties                    3834        297.16263699  0.0775072083
org-entry-get-with-inheritance                      95850       290.83956400  0.0030343199
org-macro-replace-all                               2           222.371024    111.185512
org-element-context                                 8587        210.50228799  0.0245140663
org-element-at-point                                8998        198.89139700  0.0221039561
org-element--current-element                        237338      185.80111699  0.0007828544
org-get-property-block                              314005      142.07183900  0.0004524508
org-up-heading-safe                                 254825      98.096140999  0.0003849549
org-element--parse-elements                         3119        78.158617     0.0250588704
org-element-headline-parser                         59179       62.237870000  0.0010516884
org-back-to-heading                                 1177194     54.685840999  4.645...e-05
org-list-struct                                     8118        50.615231000  0.0062349385
org-element-map                                     2159        41.052958000  0.0190148022
org-before-first-heading-p                          263824      36.090307000  0.0001367969
org-element--get-next-object-candidates             43922       26.156263000  0.0005955162
org-outline-level                                   472987      23.837515999  5.039...e-05
org-end-of-subtree                                  59187       22.566596999  0.0003812762
org-get-indentation                                 529429      17.841042000  3.369...e-05
org-entry-properties                                59179       15.035857000  0.0002540741
org-element-parse-buffer                            1           14.286519     14.286519
org-element--parse-objects                          6307        10.982457     0.0017413123
org-element-paragraph-parser                        71441       9.5795360000  0.0001340901
org-element-item-parser                             25674       7.3659629999  0.0002869035
org-heading-components                              59179       6.7734890000  0.0001144576
org-element-normalize-string                        10028       6.3973670000  0.0006379504
org-at-heading-p                                    359654      5.7468979999  1.597...e-05
org-element-plain-list-parser                       9210        5.5201879999  0.0005993689
org-element-latex-or-entity-successor               14616       5.0801999999  0.0003475779
org-list-context                                    8118        4.9218190000  0.0006062846
org-babel-exp-non-block-elements                    139         4.8030860000  0.0345545755
org-element-footnote-definition-parser              32897       4.1083099999  0.0001248840
org-babel-merge-params                              8709        3.5205869999  0.0004042469
org-element--collect-affiliated-keywords            144443      3.3394739999  2.311...e-05
org-element-property-drawer-parser                  21129       2.9038599999  0.0001374348
org-get-limited-outline-regexp                      241703      2.8068669999  1.161...e-05
org-element-link-successor                          33549       2.7400770000  8.167...e-05
org-list-get-list-end                               9210        2.2022560000  0.0002391157
org-invisible-p2                                    110997      1.8746269999  1.688...e-05
org-list-get-last-item                              9210        1.8070339999  0.0001962034
org-element-parse-secondary-string                  1548        1.7770869999  0.0011479890
org-at-table-p                                      80490       1.7516579999  2.176...e-05
org-element-keyword-parser                          5407        1.6982869999  0.0003140904
org-element-export-snippet-successor                38156       1.6902520000  4.429...e-05
org-element-sub/superscript-successor               14996       1.4842760000  9.897...e-05
org-element-line-break-successor                    10676       1.4662499999  0.0001373407
org-element-timestamp-successor                     14512       1.4495880000  9.988...e-05
org-element-src-block-parser                        2741        1.4298379999  0.0005216483
org-trim                                            99454       1.4216499999  1.429...e-05
org-babel-parse-header-arguments                    8709        1.4209139999  0.0001631546
org-element-inline-src-block-successor              13626       1.3379629999  9.819...e-05
org-macro-initialize-templates                      1           1.248365      1.248365
org-macro--collect-macros                           1           1.248089      1.248089
org-element-macro-parser                            8502        1.1616150000  0.0001366284
org-unescape-code-in-string                         9311        1.1497540000  0.0001234834
org-macro-expand                                    8474        1.0761649999  0.0001269961
org-element-inline-babel-call-successor             13626       0.9184050000  6.740...e-05
org-element-macro-successor                         14571       0.9024950000  6.193...e-05
org-list-struct-assoc-end                           8118        0.8850810000  0.0001090269
org-element-text-markup-successor                   17857       0.8849819999  4.955...e-05
org-element-export-snippet-parser                   23904       0.8848189999  3.701...e-05
org-list-get-list-type                              9210        0.8797819999  9.552...e-05
org-item-re                                         86556       0.8766279999  1.012...e-05
org-list-prevs-alist                                9210        0.8290719999  9.001...e-05
org-element-footnote-reference-successor            14838       0.7596100000  5.119...e-05
org-not-nil                                         95850       0.7501719999  7.826...e-06
org-element-normalize-contents                      3919        0.6525249999  0.0001665029
org-list-get-next-item                              67249       0.6363409999  9.462...e-06
org-babel-remove-result                             138         0.634481      0.0045976884
org-babel-where-is-src-block-result                 138         0.632719      0.0045849202
org-babel-ref-goto-headline-id                      22          0.61628       0.0280127272
org-element-set-contents                            29511       0.5933719999  2.010...e-05
org-element-statistics-cookie-successor             13740       0.5776040000  4.203...e-05
org-babel-balanced-split                            5712        0.5430289999  9.506...e-05
org-list-parents-alist                              9210        0.5095729999  5.532...e-05
org-list-get-list-begin                             9210        0.4939830000  5.363...e-05
org-element-example-block-parser                    2736        0.4815410000  0.0001760018
org-babel-find-named-result                         54          0.4734820000  0.0087681851
org-do-remove-indentation                           4156        0.4653900000  0.0001119802
org-get-category                                    59127       0.4292040000  7.259...e-06
org-element-table-parser                            1026        0.4162909999  0.0004057417
org-element-target-successor                        14529       0.4006059999  2.757...e-05
org-element-table-row-parser                        5052        0.3823159999  7.567...e-05
org-at-table.el-p                                   1026        0.3236109999  0.0003154103
org-reduced-level                                   59179       0.3232659999  5.462...e-06
org-element-radio-target-successor                  14503       0.2978549999  2.053...e-05
org-split-string                                    36231       0.2893910000  7.987...e-06
org-uniquify                                        40152       0.2739410000  6.822...e-06
org-list-get-prev-item                              9210        0.2735659999  2.970...e-05
org-element-table-cell-successor                    1291        0.2522169999  0.0001953656
org-babel-chomp                                     6306        0.2347340000  3.722...e-05
org-find-entry-with-id                              22          0.2240680000  0.0101849090
org-babel-read                                      5580        0.2164680000  3.879...e-05
org-babel-where-is-src-block-head                   3972        0.2142490000  5.393...e-05
org-babel-parse-multiple-vars                       9194        0.1842510000  2.004...e-05
org-element-property                                47128       0.1440620000  3.056...e-06
org-babel-get-inline-src-block-matches              138         0.1359030000  0.0009848043
org-fill-template                                   138         0.1243740000  0.0009012608
org-string-nw-p                                     5483        0.1167720000  2.129...e-05
org-list-get-item-end                               34884       0.1068650000  3.063...e-06
org-element-code-parser                             3608        0.0825499999  2.287...e-05
org-skip-whitespace                                 8999        0.0773929999  8.600...e-06
org-element-link-parser                             582         0.0719579999  0.0001236391
org-remove-indentation                              322         0.0622920000  0.0001934534
org-update-radio-target-regexp                      1           0.058251      0.058251
org-all-targets                                     1           0.058217      0.058217
org-element-section-parser                          377         0.0538779999  0.0001429124
org-add-props                                       14213       0.0532790000  3.748...e-06
org-refresh-category-properties                     2           0.038394      0.019197
org-element-table-cell-parser                       1291        0.0378999999  2.935...e-05
org-kill-new                                        1           0.036258      0.036258
org-babel-number-p                                  5580        0.0318689999  5.711...e-06
org-babel-combine-header-arg-lists                  3834        0.0273989999  7.146...e-06
org-element-type                                    8784        0.0224829999  2.559...e-06
org-list-get-top-point                              9210        0.0213349999  2.316...e-06
org-string-match-p                                  2742        0.0202060000  7.369...e-06
org-element-node-property-parser                    399         0.0194659999  4.878...e-05
org-babel-trim                                      352         0.0149620000  4.250...e-05
org-element-footnote-reference-parser               335         0.014787      4.414...e-05
org-link-unescape                                   578         0.0096020000  1.661...e-05
org-link-expand-abbrev                              578         0.0088600000  1.532...e-05
org-element-italic-parser                           332         0.0072709999  2.190...e-05
org-version                                         2           0.006288      0.003144
org-babel-join-splits-near-ch                       352         0.0057630000  1.637...e-05
org-escape-code-in-string                           138         0.004417      3.200...e-05
org-element-subscript-parser                        104         0.002996      2.880...e-05
org-reverse-string                                  704         0.0029590000  4.203...e-06
org-file-equal-p                                    2           0.002958      0.001479
org-element-comment-parser                          50          0.0023529999  4.705...e-05
org-reduce                                          352         0.0021599999  6.136...e-06
org-babel-noweb-p                                   138         0.0017369999  1.258...e-05
org-element-plain-link-successor                    45          0.0015850000  3.522...e-05
org-element-statistics-cookie-parser                115         0.0015400000  1.339...e-05
org-translate-link                                  578         0.0012740000  2.204...e-06
org-remove-if                                       355         0.0010609999  2.988...e-06
org-get-agenda-file-buffer                          22          0.00084       3.818...e-05
org-element-bold-parser                             36          0.0006630000  1.841...e-05
org-element-drawer-parser                           10          0.000658      6.58e-05
org-element-timestamp-parser                        5           0.0003999999  7.999...e-05
org-element-superscript-parser                      15          0.0003909999  2.606...e-05
org-find-base-buffer-visiting                       22          0.000366      1.663...e-05
org-element-latex-fragment-parser                   5           0.000319      6.38e-05
org-combine-plists                                  7           0.00029       4.142...e-05
org-element-target-parser                           19          0.0002800000  1.473...e-05
org-element-fixed-width-parser                      9           0.000277      3.077...e-05
org-defkey                                          20          0.000236      1.179...e-05
org-babel-noweb-wrap                                46          0.0001609999  3.499...e-06
org-add-link-type                                   1           0.000129      0.000129
org-parse-time-string                               5           0.000126      2.52e-05
org-element-underline-parser                        5           0.000115      2.3e-05
org-make-link-regexps                               1           9.6e-05       9.6e-05
org-babel-result-end                                1           9.2e-05       9.2e-05
org-element-verbatim-parser                         3           7.2e-05       2.4e-05
org-link-unescape-compound                          3           6.5e-05       2.166...e-05
org-timestamp-translate                             2           6e-05         3e-05
org-element-quote-block-parser                      1           5.9e-05       5.9e-05
org-element-interpret-data                          6           5.600...e-05  9.333...e-06
org-key                                             20          3.700...e-05  1.850...e-06
org-region-active-p                                 3           3.1e-05       1.033...e-05
org-at-item-p                                       1           2.7e-05       2.7e-05
org-release                                         2           9e-06         4.5e-06
org-translate-time                                  2           6e-06         3e-06
org-restart-font-lock                               1           6e-06         6e-06
org-babel-exp-get-export-buffer                     2           6e-06         3e-06
org-git-version                                     2           4.999...e-06  2.499...e-06
org-property-inherit-p                              1           3e-06         3e-06
org-make-target-link-regexp                         1           2e-06         2e-06

[-- Attachment #3: Type: text/plain, Size: 189 bytes --]




Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

SD adaptation for Waldorf microQ V2.22R2:
http://Synth.Stromeko.net/Downloads.html#WaldorfSDada

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

* Re: [RFC] Org version of the Org manual
  2013-03-06  8:18       ` Achim Gratz
@ 2013-03-06  8:29         ` Bastien
  2013-03-06  8:40           ` Nicolas Goaziou
  2013-03-06  8:44           ` Achim Gratz
  0 siblings, 2 replies; 45+ messages in thread
From: Bastien @ 2013-03-06  8:29 UTC (permalink / raw)
  To: Achim Gratz; +Cc: emacs-orgmode

Hi Achim,

thanks for doing the profiling.

Achim Gratz <Stromeko@nexgo.de> writes:

> org-macro-replace-all    2    222.371024    111.185512

This one looks suspicious: if the function does what it says,
why does it run twice?  If we can spare 111 secs here, that's
already an improvement.  I'll have a look at some point but
feel free to beat me on this!

-- 
 Bastien

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

* Re: [RFC] Org version of the Org manual
  2013-03-06  8:29         ` Bastien
@ 2013-03-06  8:40           ` Nicolas Goaziou
  2013-03-06  8:44           ` Achim Gratz
  1 sibling, 0 replies; 45+ messages in thread
From: Nicolas Goaziou @ 2013-03-06  8:40 UTC (permalink / raw)
  To: Bastien; +Cc: Achim Gratz, emacs-orgmode

Hello,

Bastien <bzg@altern.org> writes:

> Hi Achim,
>
> thanks for doing the profiling.
>
> Achim Gratz <Stromeko@nexgo.de> writes:
>
>> org-macro-replace-all    2    222.371024    111.185512
>
> This one looks suspicious: if the function does what it says,
> why does it run twice?  If we can spare 111 secs here, that's
> already an improvement.  I'll have a look at some point but
> feel free to beat me on this!

It has to be run twice. See comments in `org-export-as':

  Expand export-specific set of macros: {{{author}}},
  {{{date}}}, {{{email}}} and {{{title}}}.  It must be done
  once regular macros have been expanded, since document
  keywords may contain one of them.

IOW it handles macros in #+TITLE and other document keywords. I don't
think the second run is as long as the first one, though.


Regards,

-- 
Nicolas Goaziou

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

* Re: [RFC] Org version of the Org manual
  2013-03-06  8:29         ` Bastien
  2013-03-06  8:40           ` Nicolas Goaziou
@ 2013-03-06  8:44           ` Achim Gratz
  2013-03-06 10:18             ` Jambunathan K
  1 sibling, 1 reply; 45+ messages in thread
From: Achim Gratz @ 2013-03-06  8:44 UTC (permalink / raw)
  To: emacs-orgmode

Bastien writes:
>> org-macro-replace-all    2    222.371024    111.185512
>
> This one looks suspicious: if the function does what it says,
> why does it run twice?  If we can spare 111 secs here, that's
> already an improvement.  I'll have a look at some point but
> feel free to beat me on this!

That interpretation makes assumptions that may not be valid.  I'm not
even sure that you can rely on the number of calls (elp may miss some at
least), but especially not that each call takes the same time.  So it is
perfectly possible that the first call took 222 seconds and the second
one just 0.371024…

The top entry for profiler btw is "called-interactively".  How helpful.

Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Factory and User Sound Singles for Waldorf rackAttack:
http://Synth.Stromeko.net/Downloads.html#WaldorfSounds

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

* Re: [RFC] Org version of the Org manual
  2013-03-06  8:44           ` Achim Gratz
@ 2013-03-06 10:18             ` Jambunathan K
  0 siblings, 0 replies; 45+ messages in thread
From: Jambunathan K @ 2013-03-06 10:18 UTC (permalink / raw)
  To: Achim Gratz; +Cc: emacs-orgmode

Achim Gratz <Stromeko@nexgo.de> writes:

> Bastien writes:
>>> org-macro-replace-all    2    222.371024    111.185512
>>
>> This one looks suspicious: if the function does what it says,
>> why does it run twice?  If we can spare 111 secs here, that's
>> already an improvement.  I'll have a look at some point but
>> feel free to beat me on this!
>
> That interpretation makes assumptions that may not be valid.  I'm not
> even sure that you can rely on the number of calls (elp may miss some at
> least), but especially not that each call takes the same time.  So it is
> perfectly possible that the first call took 222 seconds and the second
> one just 0.371024…

See (info "(elisp) Profiling") on a fairly recent Emacs.

,---- C-h n => Lisp Changes in Emacs 24.3
| ** New sampling-based Elisp profiler.
| Try M-x profiler-start, do some work, and then call M-x profiler-report.
| When finished, use M-x profiler-stop.  The sampling rate can be based on
| CPU time or memory allocations.
`----


>
> The top entry for profiler btw is "called-interactively".  How helpful.
>
> Regards,
> Achim.

-- 

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

* Re: [RFC] Org version of the Org manual
  2013-03-06  7:44     ` Yagnesh Raghava Yakkala
  2013-03-06  8:18       ` Achim Gratz
@ 2013-03-07 17:35       ` Thomas S. Dye
  2013-03-07 18:22         ` Achim Gratz
  1 sibling, 1 reply; 45+ messages in thread
From: Thomas S. Dye @ 2013-03-07 17:35 UTC (permalink / raw)
  To: Yagnesh Raghava Yakkala; +Cc: Achim Gratz, emacs-orgmode

Aloha Yagnesh Raghava Yakkala,

Yagnesh Raghava Yakkala <hi@yagnesh.org> writes:

> Hello Thomas,
>
>> These instructions assume more knowledge than I have. Could you be more
>> specific about "in the Org worktree"? Should I create a branch where I
>> do this? Or, should I put this in one of the upstream branches and
>> arrange to push it into the Org repo?  In any case, can you suggest a
>> location?  /contrib?  /doc?
>
> IIUC, Achim means,
>
> cd /source/directory/of/org-mode
> git clone http:github.com/tsdye/orgmanual  # or your most updated repo of orgmanual
>
> git submodule add orgmanual                # optional
> git commit -m "Commit Message"             # optional
>
> cd orgmanual
> Create_Makefile                            # [1] 
> ln -s ../doc/org-version.inc .
>
> cd ..
> update_local.mk_file                       # [2]
> make orgmanual
>
> For me also texi2dvi failed, but orgmanual.info is generated fine and looks
> great.

Thanks for the detailed instructions, which helped me greatly.

The orgmanual now creates a pdf file, too, but one lacking the indexes
and with links that look like they need another run through TeX.

When I'm done running `make orgmanual', my directory is very neat and
tidy, which is nice, but I'll need to look at the auxiliary files used
to build the indexes, so I can debug.  Should I run texi2dvi outside
`make orgmanual', or would some other workflow better fit my needs?
Suggestions warmly welcomed.

Thanks again for your help.

All the best,
Tom
-- 
Thomas S. Dye
http://www.tsdye.com

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

* Re: [RFC] Org version of the Org manual
  2013-03-07 17:35       ` Thomas S. Dye
@ 2013-03-07 18:22         ` Achim Gratz
  2013-03-07 18:49           ` Thomas S. Dye
  2013-03-09 23:53           ` Thomas S. Dye
  0 siblings, 2 replies; 45+ messages in thread
From: Achim Gratz @ 2013-03-07 18:22 UTC (permalink / raw)
  To: emacs-orgmode

Thomas S. Dye writes:
> The orgmanual now creates a pdf file, too, but one lacking the indexes
> and with links that look like they need another run through TeX.

In that case, texi2dvi and hence make should have signaled an error
(I've just pulled from your repo and it does).

> When I'm done running `make orgmanual', my directory is very neat and
> tidy, which is nice, but I'll need to look at the auxiliary files used
> to build the indexes, so I can debug.

Add

TEXI2PDF+=--tidy

at the beginning of orgmanual/Makefile, then look in the orgmanual.t2d
directory.  Or if you'd rather have all the files in the same directory
like before:

TEXI2PDF+=--build=local


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

SD adaptation for Waldorf Blofeld V1.15B11:
http://Synth.Stromeko.net/Downloads.html#WaldorfSDada

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

* Re: [RFC] Org version of the Org manual
  2013-03-07 18:22         ` Achim Gratz
@ 2013-03-07 18:49           ` Thomas S. Dye
  2013-03-09 23:53           ` Thomas S. Dye
  1 sibling, 0 replies; 45+ messages in thread
From: Thomas S. Dye @ 2013-03-07 18:49 UTC (permalink / raw)
  To: Achim Gratz; +Cc: emacs-orgmode

Achim Gratz <Stromeko@nexgo.de> writes:

> Thomas S. Dye writes:
>> The orgmanual now creates a pdf file, too, but one lacking the indexes
>> and with links that look like they need another run through TeX.
>
> In that case, texi2dvi and hence make should have signaled an error
> (I've just pulled from your repo and it does).

Yes, it signals two errors here:

Output written on orgmanual.pdf (269 pages, 1122108 bytes).
Transcript written on orgmanual.log.
/opt/local/bin/texi2dvi: pdftex exited with bad status, quitting.
make[1]: *** [orgmanual.pdf] Error 1
make: *** [orgmanual] Error 2

>
>> When I'm done running `make orgmanual', my directory is very neat and
>> tidy, which is nice, but I'll need to look at the auxiliary files used
>> to build the indexes, so I can debug.
>
> Add
>
> TEXI2PDF+=--tidy
>
> at the beginning of orgmanual/Makefile, then look in the orgmanual.t2d
> directory.

There they are, in orgmanual.t2d/pdf/build.  Thanks!

All the best,
Tom

-- 
Thomas S. Dye
http://www.tsdye.com

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

* Re: [RFC] Org version of the Org manual
  2013-03-07 18:22         ` Achim Gratz
  2013-03-07 18:49           ` Thomas S. Dye
@ 2013-03-09 23:53           ` Thomas S. Dye
  2013-03-10 12:24             ` Achim Gratz
  1 sibling, 1 reply; 45+ messages in thread
From: Thomas S. Dye @ 2013-03-09 23:53 UTC (permalink / raw)
  To: Achim Gratz; +Cc: emacs-orgmode

Achim Gratz <Stromeko@nexgo.de> writes:

> Thomas S. Dye writes:
>> The orgmanual now creates a pdf file, too, but one lacking the indexes
>> and with links that look like they need another run through TeX.
>
> In that case, texi2dvi and hence make should have signaled an error
> (I've just pulled from your repo and it does).
>
>> When I'm done running `make orgmanual', my directory is very neat and
>> tidy, which is nice, but I'll need to look at the auxiliary files used
>> to build the indexes, so I can debug.
>
> Add
>
> TEXI2PDF+=--tidy

That works nicely.  I found the error and orgmanual.pdf is now produced
without errors.

I found that the common combination of `keybinding org-command', which I
simplified in the translation to org, looks good in the info file but
not in the pdf file, where the elements weren't easy to distinguish
visually. I've changed all these to `keybinding, org-command' which
still looks simple but works (for me) in both info and pdf formats.

Is the html version of the Org manual generated from the .texi source?
If so, could you show me how to augment Makefile so the html
document is generated by `make orgmanual'?  I want to check if the html
document looks reasonable.

My next step will be to bring orgmanual up-to-date with the changes
that have been made to org.texi since I started the translation several
months ago.

There are still about a half dozen places where I've substituted a `XXX'
placeholder for a problem I haven't been able to solve. Sections with
problems have been marked FIXME. Most of the problems have to do with
exporting a "special" character, such as `\' or `,'. I'm afraid these
nagging problems will need to be solved by someone clever in the Org
community.

All the best,
Tom

-- 
Thomas S. Dye
http://www.tsdye.com

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

* Re: [RFC] Org version of the Org manual
  2013-03-09 23:53           ` Thomas S. Dye
@ 2013-03-10 12:24             ` Achim Gratz
  2013-03-10 19:01               ` Jonathan Leech-Pepin
  2013-03-11  0:32               ` Thomas S. Dye
  0 siblings, 2 replies; 45+ messages in thread
From: Achim Gratz @ 2013-03-10 12:24 UTC (permalink / raw)
  To: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1876 bytes --]

Thomas S. Dye writes:
> That works nicely.  I found the error and orgmanual.pdf is now produced
> without errors.

Progress! :-)

With the current version from git I cannot export to texinfo
successfully, though, I get this error near the end of the export:

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  string-match("\\`[ \n.]+" nil) (if (string-match "\\`[ \n.]+" s)
  (setq s (replace-match "" t t s))) org-trim(nil) (concat "\n@item "
  (if tag desc) "\n" (org-trim contents) "\n") (let* ((tag
  (org-element-property :tag item)) (desc (org-export-data tag info)))
  (concat "\n@item " (if tag desc) "\n" (org-trim contents) "\n"))
  org-texinfo-item((item (:bullet "- " :begin 41929 :end 42016
  :contents-begin 42016 :contents-end 42016 :checkbox nil :counter nil
  :hiddenp outline :structure ((40825 2 "- " nil nil "@@info:@kbd{@@C-c
  /@@info:}@@, ~org-sparse-tree~" 41031) (41031 2 "- " nil nil
  "@@info:@kbd{@@C-c / r@@info:}@@, ~org-occur~" 41929) (41929 2 "- "
  nil nil "@@info:@kbd{@@M-g n@@info:}@@ or @@info:@kbd{@@M-g
  M-n@@info:}@@, ~next-error~" 42016))…

This may actually a bug in the texinfo exporter.

> Is the html version of the Org manual generated from the .texi source?
> If so, could you show me how to augment Makefile so the html
> document is generated by `make orgmanual'?  I want to check if the html
> document looks reasonable.

I've extended the Makefile to approximate the one in doc/, HTML is
produced both via makeinfo and as an export via ox-html.  To proceed in
an orderly manner and prepare for an eventual integration into Org, can
you please do the following in your Org clone:

git checkout master
git checkout -b orgmanual master
git submodule add https://github.com/tsdye/orgmanual.git
git commit -am 'make orgmanual/ a submodule'

cd orgmanual
git checkout -b orgmanual master
git am orgmanual.patch


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: orgmanual.patch --]
[-- Type: text/x-patch, Size: 2647 bytes --]

From 5511736802ced4e08bd432ebdb12dfeebe282a22 Mon Sep 17 00:00:00 2001
From: Achim Gratz <Stromeko@Stromeko.DE>
Date: Sun, 10 Mar 2013 12:07:19 +0100
Subject: [PATCH] add Makefile, org-version.inc (symbolic link), modify
 .gitignore

ignore make products
---
 .gitignore      |  7 ++++---
 Makefile        | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
 org-version.inc |  1 +
 3 files changed, 54 insertions(+), 3 deletions(-)
 create mode 100644 Makefile
 create mode 120000 org-version.inc

diff --git a/.gitignore b/.gitignore
index 1f940d9..fde636e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,10 +1,8 @@
 *.*~
 *.texi
 *.info
-Makefile
 init.el
 export-test.org
-org-version.inc
 *.aux
 *.cp
 *.fn
@@ -17,4 +15,7 @@ org-version.inc
 *.vr
 *.cps
 *.pgs
-.DS_Store
\ No newline at end of file
+.DS_Store
+/orgmanual.html
+/orgmanual.t2d/
+/orgmanual/
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..7c45664
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,49 @@
+TEXI2PDF+=--tidy
+BEXP=$(BATCH) \
+	--eval '(add-to-list '"'"'load-path "../lisp")' \
+	--eval '(setq org-footnote-auto-adjust nil)'
+EXTEXI=	-l ox-texinfo \
+	--eval '(add-to-list '"'"'org-export-snippet-translation-alist '"'"'("info" . "texinfo"))'
+EXHTML=	-l ox-html \
+	$(BTEST_POST) \
+	--eval '(add-to-list '"'"'org-export-snippet-translation-alist '"'"'("info" . "texinfo"))'
+ORG2TEXI=-f org-texinfo-export-to-texinfo
+ORG2HTML=-f org-html-export-to-html
+ORG2INFO=--eval "(org-texinfo-compile \"./$<\")"
+
+.SUFFIXES:	# we don't need default suffix rules
+ifeq ($(MAKELEVEL), 0)
+  $(error This make needs to be started as a sub-make from the toplevel directory.)
+endif
+.PHONY:		all info html pdf
+
+all:		$(ORG_MAKE_DOC)
+
+info:		orgmanual.info
+
+html:		orgmanual orgmanual.html
+
+pdf:		orgmanual.pdf
+
+orgmanual.texi:	orgmanual.org
+	$(BEXP) $(EXTEXI) $< $(ORG2TEXI)
+orgmanual.info:	orgmanual.texi
+	$(MAKEINFO)  --no-split $< -o $@
+orgmanual.pdf:	LC_ALL=C        # work around a bug in texi2dvi
+orgmanual.pdf:	LANG=C          # work around a bug in texi2dvi
+orgmanual.pdf:	orgmanual.texi
+	$(TEXI2PDF) $<
+orgmanual:	orgmanual.texi
+	$(TEXI2HTML) $<
+orgmanual.html: orgmanual.org
+	$(BEXP) $(EXHTML) $< $(ORG2HTML)
+
+clean:
+	$(RM) org *.pdf *.html \
+	      *.aux *.cp *.cps *.dvi *.fn *.fns *.ky *.kys *.pg *.pgs \
+	      *.toc *.tp *.tps *.vr *.vrs *.log *.html *.ps
+cleanall:	clean
+	$(RMR) orgmanual.t2d orgmanual
+
+
+
diff --git a/org-version.inc b/org-version.inc
new file mode 120000
index 0000000..fd0c05b
--- /dev/null
+++ b/org-version.inc
@@ -0,0 +1 @@
+../doc/org-version.inc
\ No newline at end of file
-- 
1.8.1.4


[-- Attachment #3: Type: text/plain, Size: 69 bytes --]


cd ..
git commit -am 'update submodule orgmanual'
git am org.patch


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: org.patch --]
[-- Type: text/x-patch, Size: 777 bytes --]

From 488e1aa75d9420a238851217c39f52ecf317e8a0 Mon Sep 17 00:00:00 2001
From: Achim Gratz <Stromeko@Stromeko.DE>
Date: Sun, 10 Mar 2013 12:11:29 +0100
Subject: [PATCH] add $(EXTRADIRS) to targets.mk for build system integration
 of orgmanual/

---
 mk/targets.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mk/targets.mk b/mk/targets.mk
index aef11eb..b7fe9cc 100644
--- a/mk/targets.mk
+++ b/mk/targets.mk
@@ -6,7 +6,7 @@ DISTFILES_extra=  Makefile request-assign-future.txt contrib etc
 LISPDIRS      = lisp
 OTHERDIRS     = doc etc
 CLEANDIRS     = contrib testing mk
-SUBDIRS       = $(OTHERDIRS) $(LISPDIRS)
+SUBDIRS       = $(OTHERDIRS) $(LISPDIRS) $(EXTRADIRS)
 INSTSUB       = $(SUBDIRS:%=install-%)
 ORG_MAKE_DOC ?= info html pdf
 
-- 
1.8.1.4


[-- Attachment #5: Type: text/plain, Size: 1075 bytes --]


If you are unsure about any of this, please ask.  You can now edit/add
these lines

--8<---------------cut here---------------start------------->8---
.PHONY: orgmanual
EXTRADIRS=orgmanual
orgmanual:
        $(MAKE) -C $@
--8<---------------cut here---------------end--------------->8---

to the top of your local.mk and should now be able to do a "make
orgmanual".  Which types of documentation are produced can be controlled
with ORG_MAKE_DOC (default is "info pdf html"), just like for the
official manuals.  Also, "make cleanall" will now clean up in orgmanual
also.  BTEST_POST should be configured to have a load-path pointing to a
sufficiently advanced htmlize version for the HTML export.

> My next step will be to bring orgmanual up-to-date with the changes
> that have been made to org.texi since I started the translation several
> months ago.

I'm not envious…


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

SD adaptations for Waldorf Q V3.00R3 and Q+ V3.54R2:
http://Synth.Stromeko.net/Downloads.html#WaldorfSDada

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

* Re: [RFC] Org version of the Org manual
  2013-03-10 12:24             ` Achim Gratz
@ 2013-03-10 19:01               ` Jonathan Leech-Pepin
  2013-03-10 19:25                 ` Achim Gratz
  2013-03-11  0:32               ` Thomas S. Dye
  1 sibling, 1 reply; 45+ messages in thread
From: Jonathan Leech-Pepin @ 2013-03-10 19:01 UTC (permalink / raw)
  To: Achim Gratz; +Cc: Nicolas Goaziou, emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 3753 bytes --]

Hello Achim,

On 10 March 2013 08:24, Achim Gratz <Stromeko@nexgo.de> wrote:

> Thomas S. Dye writes:
> > That works nicely.  I found the error and orgmanual.pdf is now produced
> > without errors.
>
> Progress! :-)
>
> With the current version from git I cannot export to texinfo
> successfully, though, I get this error near the end of the export:
>
> Debugger entered--Lisp error: (wrong-type-argument stringp nil)
>   string-match("\\`[ \n.]+" nil) (if (string-match "\\`[ \n.]+" s)
>   (setq s (replace-match "" t t s))) org-trim(nil) (concat "\n@item "
>   (if tag desc) "\n" (org-trim contents) "\n") (let* ((tag
>   (org-element-property :tag item)) (desc (org-export-data tag info)))
>   (concat "\n@item " (if tag desc) "\n" (org-trim contents) "\n"))
>   org-texinfo-item((item (:bullet "- " :begin 41929 :end 42016
>   :contents-begin 42016 :contents-end 42016 :checkbox nil :counter nil
>   :hiddenp outline :structure ((40825 2 "- " nil nil "@@info:@kbd{@@C-c
>   /@@info:}@@, ~org-sparse-tree~" 41031) (41031 2 "- " nil nil
>   "@@info:@kbd{@@C-c / r@@info:}@@, ~org-occur~" 41929) (41929 2 "- "
>   nil nil "@@info:@kbd{@@M-g n@@info:}@@ or @@info:@kbd{@@M-g
>   M-n@@info:}@@, ~next-error~" 42016))…
>
> This may actually a bug in the texinfo exporter.
>
>
The error is actually on line 6069 of the manual.  The {{{vindex[...]}}}
line and
subsequent paragraph.  As far as the list is concerned there is no
associated
content for that list entry.  Indenting them appropriately to be recognized
as part
of the list allows for successful export.

This may also be partly a bug, should the exporter allow for a list item
without any contents?

Regards,

Jon

> > Is the html version of the Org manual generated from the .texi source?
> > If so, could you show me how to augment Makefile so the html
> > document is generated by `make orgmanual'?  I want to check if the html
> > document looks reasonable.
>
> I've extended the Makefile to approximate the one in doc/, HTML is
> produced both via makeinfo and as an export via ox-html.  To proceed in
> an orderly manner and prepare for an eventual integration into Org, can
> you please do the following in your Org clone:
>
> git checkout master
> git checkout -b orgmanual master
> git submodule add https://github.com/tsdye/orgmanual.git
> git commit -am 'make orgmanual/ a submodule'
>
> cd orgmanual
> git checkout -b orgmanual master
> git am orgmanual.patch
>
>
>
> cd ..
> git commit -am 'update submodule orgmanual'
> git am org.patch
>
>
>
> If you are unsure about any of this, please ask.  You can now edit/add
> these lines
>
> --8<---------------cut here---------------start------------->8---
> .PHONY: orgmanual
> EXTRADIRS=orgmanual
> orgmanual:
>         $(MAKE) -C $@
> --8<---------------cut here---------------end--------------->8---
>
> to the top of your local.mk and should now be able to do a "make
> orgmanual".  Which types of documentation are produced can be controlled
> with ORG_MAKE_DOC (default is "info pdf html"), just like for the
> official manuals.  Also, "make cleanall" will now clean up in orgmanual
> also.  BTEST_POST should be configured to have a load-path pointing to a
> sufficiently advanced htmlize version for the HTML export.
>
> > My next step will be to bring orgmanual up-to-date with the changes
> > that have been made to org.texi since I started the translation several
> > months ago.
>
> I'm not envious…
>
>
> Regards,
> Achim.
> --
> +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+
>
> SD adaptations for Waldorf Q V3.00R3 and Q+ V3.54R2:
> http://Synth.Stromeko.net/Downloads.html#WaldorfSDada
>
>

[-- Attachment #2: Type: text/html, Size: 4878 bytes --]

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

* Re: [RFC] Org version of the Org manual
  2013-03-10 19:01               ` Jonathan Leech-Pepin
@ 2013-03-10 19:25                 ` Achim Gratz
  2013-03-10 19:39                   ` Jonathan Leech-Pepin
  0 siblings, 1 reply; 45+ messages in thread
From: Achim Gratz @ 2013-03-10 19:25 UTC (permalink / raw)
  To: emacs-orgmode

Jonathan Leech-Pepin writes:
> The error is actually on line 6069 of the manual. The {{{vindex
> [...]}}} line and subsequent paragraph. As far as the list is
> concerned there is no associated content for that list
> entry. Indenting them appropriately to be recognized as part of the
> list allows for successful export.

Thanks for tracking that down.

> This may also be partly a bug, should the exporter allow for a list
> item without any contents?

Well it should maybe not allow for it, but I think it should either
expect to get a nil in that situation or otherwsie not let the error
propagate.  Anyway, it's great to have such a large and complex document
available to train the exporter on.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Waldorf MIDI Implementation & additional documentation:
http://Synth.Stromeko.net/Downloads.html#WaldorfDocs

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

* Re: [RFC] Org version of the Org manual
  2013-03-10 19:25                 ` Achim Gratz
@ 2013-03-10 19:39                   ` Jonathan Leech-Pepin
  2013-03-10 20:23                     ` Nicolas Goaziou
  0 siblings, 1 reply; 45+ messages in thread
From: Jonathan Leech-Pepin @ 2013-03-10 19:39 UTC (permalink / raw)
  To: Achim Gratz; +Cc: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1416 bytes --]

On 10 March 2013 15:25, Achim Gratz <Stromeko@nexgo.de> wrote:

> Jonathan Leech-Pepin writes:
> > The error is actually on line 6069 of the manual. The {{{vindex
> > [...]}}} line and subsequent paragraph. As far as the list is
> > concerned there is no associated content for that list
> > entry. Indenting them appropriately to be recognized as part of the
> > list allows for successful export.
>
> Thanks for tracking that down.
>
> > This may also be partly a bug, should the exporter allow for a list
> > item without any contents?
>
> Well it should maybe not allow for it, but I think it should either
> expect to get a nil in that situation or otherwsie not let the error
> propagate.  Anyway, it's great to have such a large and complex document
> available to train the exporter on.
>

The error is not actually within ox-texinfo in this case however I suspect.
The exact same code (at the location of the error in ox-texinfo) appears
within
ox-latex and ox-ascii.

`(org-trim contents)', which removes whitespace at start and end of string,
in this case with the string being the contents of the list item.  When
there is
no contents there is no string to clean up.

Regards,

Jon

>
>
> Regards,
> Achim.
> --
> +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+
>
> Waldorf MIDI Implementation & additional documentation:
> http://Synth.Stromeko.net/Downloads.html#WaldorfDocs
>
>
>

[-- Attachment #2: Type: text/html, Size: 2104 bytes --]

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

* Re: [RFC] Org version of the Org manual
  2013-03-10 19:39                   ` Jonathan Leech-Pepin
@ 2013-03-10 20:23                     ` Nicolas Goaziou
  2013-03-10 20:40                       ` Jonathan Leech-Pepin
  0 siblings, 1 reply; 45+ messages in thread
From: Nicolas Goaziou @ 2013-03-10 20:23 UTC (permalink / raw)
  To: Jonathan Leech-Pepin; +Cc: Achim Gratz, emacs-orgmode

Hello,

Jonathan Leech-Pepin <jonathan.leechpepin@gmail.com> writes:

> The error is not actually within ox-texinfo in this case however I suspect.
> The exact same code (at the location of the error in ox-texinfo) appears
> within
> ox-latex and ox-ascii.
>
> `(org-trim contents)', which removes whitespace at start and end of string,
> in this case with the string being the contents of the list item.  When
> there is
> no contents there is no string to clean up.

I'm unsure about the part of the code you're referring to: in
ox-latex.el, there is (and contents (org-trim contents)), which
shouldn't generate an error.

Would you mind providing an ECM for the problem you're describing?

Thank you.


Regards,

-- 
Nicolas Goaziou

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

* Re: [RFC] Org version of the Org manual
  2013-03-10 20:23                     ` Nicolas Goaziou
@ 2013-03-10 20:40                       ` Jonathan Leech-Pepin
  0 siblings, 0 replies; 45+ messages in thread
From: Jonathan Leech-Pepin @ 2013-03-10 20:40 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: Achim Gratz, emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 990 bytes --]

Hello,

On 10 March 2013 16:23, Nicolas Goaziou <n.goaziou@gmail.com> wrote:

> Hello,
>
> Jonathan Leech-Pepin <jonathan.leechpepin@gmail.com> writes:
>
> > The error is not actually within ox-texinfo in this case however I
> suspect.
> > The exact same code (at the location of the error in ox-texinfo) appears
> > within
> > ox-latex and ox-ascii.
> >
> > `(org-trim contents)', which removes whitespace at start and end of
> string,
> > in this case with the string being the contents of the list item.  When
> > there is
> > no contents there is no string to clean up.
>
> I'm unsure about the part of the code you're referring to: in
> ox-latex.el, there is (and contents (org-trim contents)), which
> shouldn't generate an error.


Oops.  I'd forgotten to include the (and contents ...) around the (org-trim
contents).

Sorry for the noise.

Regards,

Jon

> Would you mind providing an ECM for the problem you're describing?
>
> Thank you.
>
>
> Regards,
>
> --
> Nicolas Goaziou
>

[-- Attachment #2: Type: text/html, Size: 1653 bytes --]

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

* Re: [RFC] Org version of the Org manual
  2013-03-10 12:24             ` Achim Gratz
  2013-03-10 19:01               ` Jonathan Leech-Pepin
@ 2013-03-11  0:32               ` Thomas S. Dye
  2013-03-11  6:43                 ` Achim Gratz
  1 sibling, 1 reply; 45+ messages in thread
From: Thomas S. Dye @ 2013-03-11  0:32 UTC (permalink / raw)
  To: Achim Gratz; +Cc: emacs-orgmode

Achim Gratz <Stromeko@nexgo.de> writes:

> Thomas S. Dye writes:
>> That works nicely.  I found the error and orgmanual.pdf is now produced
>> without errors.
>
> Progress! :-)
>
> With the current version from git I cannot export to texinfo

This is fixed now.

>
> I've extended the Makefile to approximate the one in doc/, HTML is
> produced both via makeinfo and as an export via ox-html.  To proceed in
> an orderly manner and prepare for an eventual integration into Org, can
> you please do the following in your Org clone:
>
> git checkout master
> git checkout -b orgmanual master
> git submodule add https://github.com/tsdye/orgmanual.git
> git commit -am 'make orgmanual/ a submodule'
>
> cd orgmanual
> git checkout -b orgmanual master
> git am orgmanual.patch
>
>
>
> cd ..
> git commit -am 'update submodule orgmanual'
> git am org.patch
>
>

This all worked fine.  Thanks for the detailed instructions.

>
> If you are unsure about any of this, please ask.  You can now edit/add
> these lines
>
> .PHONY: orgmanual
> EXTRADIRS=orgmanual
> orgmanual:
>         $(MAKE) -C $@
>
> to the top of your local.mk and should now be able to do a "make
> orgmanual".  Which types of documentation are produced can be controlled
> with ORG_MAKE_DOC (default is "info pdf html"), just like for the
> official manuals.  Also, "make cleanall" will now clean up in orgmanual
> also.  BTEST_POST should be configured to have a load-path pointing to a
> sufficiently advanced htmlize version for the HTML export.
>

I do have a problem here.  I think I have mis-configured BTEST_POST.

I have this:

BTEST_POST  =
              # -L <path-to>/ert      # needed for Emacs23, Emacs24 has ert built in
              # -L <path-to>/ess      # needed for running R tests
		-L contrib/lisp/htmlize.el  # need at least version 1.34 for source code formatting

Now 'make orgmanual' returns this:

local.mk:55: *** commands commence before first target.  Stop.

All the best,
Tom

-- 
Thomas S. Dye
http://www.tsdye.com

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

* Re: [RFC] Org version of the Org manual
  2013-03-11  0:32               ` Thomas S. Dye
@ 2013-03-11  6:43                 ` Achim Gratz
  2013-03-11 16:18                   ` Thomas S. Dye
  0 siblings, 1 reply; 45+ messages in thread
From: Achim Gratz @ 2013-03-11  6:43 UTC (permalink / raw)
  To: emacs-orgmode

Thomas S. Dye writes:
> I do have a problem here.  I think I have mis-configured BTEST_POST.
>
> I have this:
>
> BTEST_POST  =
>               # -L <path-to>/ert      # needed for Emacs23, Emacs24 has ert built in
>               # -L <path-to>/ess      # needed for running R tests
> 		-L contrib/lisp/htmlize.el  # need at least version 1.34 for source code formatting

This should work (put it all on one line and drop the comments):

BTEST_POST  = -L ../contrib/lisp/htmlize.el

In general, any load-path given on the command line should be an
absolute path or you need to know which directory the invocation of
emacs happens in and make the path relative to that (./orgmanual in this
case).


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Samples for the Waldorf Blofeld:
http://Synth.Stromeko.net/Downloads.html#BlofeldSamplesExtra

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

* Re: [RFC] Org version of the Org manual
  2013-03-11  6:43                 ` Achim Gratz
@ 2013-03-11 16:18                   ` Thomas S. Dye
  0 siblings, 0 replies; 45+ messages in thread
From: Thomas S. Dye @ 2013-03-11 16:18 UTC (permalink / raw)
  To: Achim Gratz; +Cc: emacs-orgmode

Aloha Achim,

Achim Gratz <Stromeko@nexgo.de> writes:

> Thomas S. Dye writes:
>> I do have a problem here.  I think I have mis-configured BTEST_POST.
>>
>> I have this:
>>
>> BTEST_POST  =
>>               # -L <path-to>/ert # needed for Emacs23, Emacs24 has
>> ert built in
>>               # -L <path-to>/ess      # needed for running R tests
>> 		-L contrib/lisp/htmlize.el # need at least version
>> 1.34 for source code formatting
>
> This should work (put it all on one line and drop the comments):
>
> BTEST_POST  = -L ../contrib/lisp/htmlize.el
>
> In general, any load-path given on the command line should be an
> absolute path or you need to know which directory the invocation of
> emacs happens in and make the path relative to that (./orgmanual in this
> case).

Thanks.  An absolute path works on one line with comments removed works.

All the best,
Tom

-- 
Thomas S. Dye
http://www.tsdye.com

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

* Re: [RFC] Org version of the Org manual
  2013-02-25 20:21 [RFC] Org version of the Org manual Thomas S. Dye
  2013-02-25 21:21 ` Carsten Dominik
  2013-03-04 21:28 ` Achim Gratz
@ 2013-03-16 16:00 ` Achim Gratz
  2013-03-17  1:19   ` Thomas S. Dye
  2013-03-17 10:28 ` Achim Gratz
  3 siblings, 1 reply; 45+ messages in thread
From: Achim Gratz @ 2013-03-16 16:00 UTC (permalink / raw)
  To: emacs-orgmode

Hi Tom,

I'm playing around with the current version, here is what I have so far:


The arguments to #+attr_texinfo need to lose the double quotes

Index entries in description lists must be separated from their entry by
at least one blank line like in the example below, otherwise the second
such entry gets indented in the exported .texi file and that somehow
confuses texinfo for some of them.

--8<---------------cut here---------------start------------->8---
- {{{kbd(v d)}}} or short {{{kbd(d)}}}, ~org-agenda-day-view~ ::

  {{{kindex(v d)}}}
  {{{kindex(d)}}}
  {{{vindex(org-agenda-span)}}}
--8<---------------cut here---------------end--------------->8---


With these hanges I get the manual exported correctly to all formats.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

SD adaptation for Waldorf microQ V2.22R2:
http://Synth.Stromeko.net/Downloads.html#WaldorfSDada

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

* Re: [RFC] Org version of the Org manual
  2013-03-16 16:00 ` Achim Gratz
@ 2013-03-17  1:19   ` Thomas S. Dye
  2013-03-17  5:50     ` Carsten Dominik
  0 siblings, 1 reply; 45+ messages in thread
From: Thomas S. Dye @ 2013-03-17  1:19 UTC (permalink / raw)
  To: Achim Gratz; +Cc: emacs-orgmode

Hi Achim,

Achim Gratz <Stromeko@nexgo.de> writes:

> Hi Tom,
>
> I'm playing around with the current version, here is what I have so far:
>
>
> The arguments to #+attr_texinfo need to lose the double quotes
>
> Index entries in description lists must be separated from their entry by
> at least one blank line like in the example below, otherwise the second
> such entry gets indented in the exported .texi file and that somehow
> confuses texinfo for some of them.
>
> - {{{kbd(v d)}}} or short {{{kbd(d)}}}, ~org-agenda-day-view~ ::
>
>   {{{kindex(v d)}}}
>   {{{kindex(d)}}}
>   {{{vindex(org-agenda-span)}}}
>
>
> With these hanges I get the manual exported correctly to all formats.

Done.  Thanks.

I brought the manual up-to-date and used @@info:@@ for the problem macro
characters, so it should be completely converted to Org now.

I want to finish editing the Installation instructions, then tag the
commit to indicate that it is "current" with org.texi.

Then, unless you think there is more to fix with the conversion, I'll
get down to documenting Nicolas' work according to the instructions he
gave me months ago. 

All the best,
Tom

-- 
Thomas S. Dye
http://www.tsdye.com

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

* Re: [RFC] Org version of the Org manual
  2013-03-17  1:19   ` Thomas S. Dye
@ 2013-03-17  5:50     ` Carsten Dominik
  2013-03-17  6:54       ` Achim Gratz
  2013-03-17  7:01       ` Sebastien Vauban
  0 siblings, 2 replies; 45+ messages in thread
From: Carsten Dominik @ 2013-03-17  5:50 UTC (permalink / raw)
  To: Thomas S. Dye; +Cc: Achim Gratz, emacs-orgmode


On 17.3.2013, at 02:19, Thomas S. Dye <tsd@tsdye.com> wrote:

> Hi Achim,
> 
> Achim Gratz <Stromeko@nexgo.de> writes:
> 
>> Hi Tom,
>> 
>> I'm playing around with the current version, here is what I have so far:
>> 
>> 
>> The arguments to #+attr_texinfo need to lose the double quotes
>> 
>> Index entries in description lists must be separated from their entry by
>> at least one blank line like in the example below, otherwise the second
>> such entry gets indented in the exported .texi file and that somehow
>> confuses texinfo for some of them.
>> 
>> - {{{kbd(v d)}}} or short {{{kbd(d)}}}, ~org-agenda-day-view~ ::
>> 
>>  {{{kindex(v d)}}}
>>  {{{kindex(d)}}}
>>  {{{vindex(org-agenda-span)}}}
>> 
>> 
>> With these hanges I get the manual exported correctly to all formats.
> 
> Done.  Thanks.
> 
> I brought the manual up-to-date and used @@info:@@ for the problem macro
> characters, so it should be completely converted to Org now.


I tried the file on github, and export to texinfo fails with the attached backtrace (exports to other backends as well).

I love this idea, so I really want to try.  Any ideas what might be wrong on my side?

- Carsten

Debugger entered--Lisp error: (error "Unknown marker at 281861")
  signal(error ("Unknown marker at 281861"))
  error("Unknown marker at %d" 281861)
  org-element-text-markup-successor(281883)
  #[(res) "\302\303\304\b\"!	!\207" [res limit intern format "org-element-%s-successor"] 4](text-markup)
  mapcar(#[(res) "\302\303\304\b\"!	!\207" [res limit intern format "org-element-%s-successor"] 4] (export-snippet footnote-reference inline-babel-call inline-src-block latex-or-entity line-break link macro radio-target statistics-cookie sub/superscript target text-markup timestamp))
  org-element--get-next-object-candidates(281883 (export-snippet footnote-reference inline-babel-call inline-src-block latex-or-entity line-break link macro radio-target statistics-cookie sub/superscript target text-markup timestamp) initial)
  byte-code("\306\b	\n#\211\x12\203\230\x01\307\310\311\312\313\n\"\"\n\"\211^[A\fV\203$\0\314\315
\"\210\202\224\x01\vAb\210\316\317\320\v@\"! \x1e\x1d\321\x0e\x1d\x1e\x1e\x1e\x1f\x0e\x1e;\203I\0\322\323\x0e\x1f\x0e\x1e#\202Q\0\324\x0e\x1eA@\x0e\x1f\"*\x1e \325\x0e\x1d\x1e\x1e\x1e\x1f\x0e\x1e;\203k\0\322\323\x0e\x1f\x0e\x1e#\202s\0\324\x0e\x1eA@\x0e\x1f\"*\x1e!\326\x0e\x1d\x1e\x1e\x1e\x1f\x0e\x1e;\203\215\0\322\323\x0e\x1f\x0e\x1e#\202\225\0\324\x0e\x1eA@\x0e\x1f\"*\211\x1e\"\fX\203\340\0\x0e\"\bU\204\254\0\x0e\"b\210\202\223\x01\314\315\x0e\x1d\327
\x1e#\x1e\x1f\211\x1e\x1e;\203\311\0\330\x0e\x1e\331\x0e\x1f\x0e#$\202\332\0\x0e\x1eA\332\x0e\x1eA@\x0e\x1f\x0e##\240\210\x0e\x1e+\"\210\202\223\x01\x0e \203\363\0\x0e \fV\204\363\0\x0e!\fW\203'\x01\314\315\x0e\x1d\327
\x1e#\x1e\x1f\211\x1e\x1e;\203\x10\x01\330\x0e\x1e\331\x0e\x1f\x0e#$\202!\x01\x0e\x1eA\332\x0e\x1eA@\x0e\x1f\x0e##\240\210\x0e\x1e+\"\210\202\223\x01\x0e b\210\x0e\x1d\327
\x1e#\x1e\x1f\211\x1e\x1e;\203F\x01\330\x0e\x1e\331\x0e\x1f\x0e#$\202W\x01\x0e\x1eA\332\x0e\x1eA@\x0e\x1f\x0e##\240\210\x0e\x1e+\210\x0e\x1d\x15\x0e\x1d\211\x1e\x1e9\203j\x01\x0e\x1e\202\210\x01\x0e\x1e\211\x1e\x1e:\204}\x01\x0e\x1e;\205\207\x01\333\202\207\x01\x0e\x1e@9\205\207\x01\x0e\x1e@)\x0e$\236A)\x11\334\x12\x0e!\x10,)\202\0\0
\207" [end restriction candidates closest-cand origin parent org-element--get-next-object-candidates rassq apply min mapcar cdr throw exit intern format "org-element-%s-parser" :contents-begin get-text-property 0 plist-get :contents-end :end :parent org-add-props nil plist-put plain-text initial object element property cbeg cend obj-end value org-element-object-restrictions] 8)
  org-element-context()
  org-macro-replace-all((("modification-time" . "(eval (format-time-string \"$1\" '(20805 22656)))") ("input-file" . "om.org") ("time" . "(eval (format-time-string \"$1\"))") ("property" . "(eval (org-entry-get nil \"$1\" 'selective))") ("page" . "@@info:@page@@") ("result" . "@@info:@result{}@@") ("enddefopt" . "@@info:@end defopt@@") ("defopt" . "@@info:@defopt@@") ("enddefun" . "@@info:@end defun@@") ("defun" . "@@info:@defun@@") ("noindent" . "@@info:@noindent@@") ("kbdkeys" . "{{{kbd($1{{{key($2)}}}{{{key($3)}}})}}}") ("ksksksksk" . "{{{kbd($1 {{{key($2)}}} $3 {{{key($4)}}} {{{key($5)}}})}}}") ("ksksksk" . "{{{kbd($1 {{{key($2)}}} $3 {{{key($4)}}})}}}") ("kbdspckey" . "{{{kbd($1 {{{key($2)}}})}}}") ("kbdkey" . "{{{kbd($1{{{key($2)}}})}}}") ("printindex" . "@@info:@printindex $1@@") ("value" . "{{{markup(value,$1)}}}") ("cite" . "{{{markup(cite,$1)}}}") ("var" . "{{{markup(var,$1)}}}") ("file" . "{{{markup(file,$1)}}}") ("command" . "{{{markup(command,$1)}}}") ("samp" . "{{{markup(samp,$1)}}}") ("key" . "{{{markup(key,$1)}}}") ("kbd" . "{{{markup(kbd,$1)}}}") ("markup" . "@@info:@$1{@@$2@@info:}@@") ("kindex" . "{{{index(k,$1)}}}") ("vindex" . "{{{index(v,$1)}}}") ("findex" . "{{{index(f,$1)}}}") ("pindex" . "{{{index(p,$1)}}}") ("cindex" . "{{{index(c,$1)}}}") ("index" . "@@info:@$1index $2@@")))
  org-export-as(texinfo nil nil nil nil)
  org-export-to-file(texinfo "./om.texi" nil nil nil nil)
  org-texinfo-export-to-texinfo(nil nil nil nil)
  org-export-dispatch(nil)
  call-interactively(org-export-dispatch nil nil)


> 
> I want to finish editing the Installation instructions, then tag the
> commit to indicate that it is "current" with org.texi.
> 
> Then, unless you think there is more to fix with the conversion, I'll
> get down to documenting Nicolas' work according to the instructions he
> gave me months ago. 
> 
> All the best,
> Tom
> 
> -- 
> Thomas S. Dye
> http://www.tsdye.com
> 

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

* Re: [RFC] Org version of the Org manual
  2013-03-17  5:50     ` Carsten Dominik
@ 2013-03-17  6:54       ` Achim Gratz
  2013-03-17 12:33         ` Carsten Dominik
  2013-03-17  7:01       ` Sebastien Vauban
  1 sibling, 1 reply; 45+ messages in thread
From: Achim Gratz @ 2013-03-17  6:54 UTC (permalink / raw)
  To: emacs-orgmode

Carsten Dominik writes:
> I tried the file on github, and export to texinfo fails with the
> attached backtrace (exports to other backends as well).

Works for me.

> I love this idea, so I really want to try.  Any ideas what might be
> wrong on my side?
[…]
>   org-export-to-file(texinfo "./om.texi" nil nil nil nil)

It seems you are not using the build system?
You need to set at least 

(add-to-list 'org-export-snippet-translation-alist
             '("info" . "texinfo"))


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

SD adaptations for Waldorf Q V3.00R3 and Q+ V3.54R2:
http://Synth.Stromeko.net/Downloads.html#WaldorfSDada

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

* Re: [RFC] Org version of the Org manual
  2013-03-17  5:50     ` Carsten Dominik
  2013-03-17  6:54       ` Achim Gratz
@ 2013-03-17  7:01       ` Sebastien Vauban
  2013-03-17 12:36         ` Carsten Dominik
  1 sibling, 1 reply; 45+ messages in thread
From: Sebastien Vauban @ 2013-03-17  7:01 UTC (permalink / raw)
  To: emacs-orgmode-mXXj517/zsQ

Hi Carsten,

Carsten Dominik wrote:
> On 17.3.2013, at 02:19, Thomas S. Dye <tsd-P0awH739Ni4AvxtiuMwx3w@public.gmane.org> wrote:
>
>> Hi Achim,
>> 
>> Achim Gratz <Stromeko-i47jiTeKxPI@public.gmane.org> writes:
>> 
>>> Hi Tom,
>>> 
>>> I'm playing around with the current version, here is what I have so far:
>>> 
>>> 
>>> The arguments to #+attr_texinfo need to lose the double quotes
>>> 
>>> Index entries in description lists must be separated from their entry by
>>> at least one blank line like in the example below, otherwise the second
>>> such entry gets indented in the exported .texi file and that somehow
>>> confuses texinfo for some of them.
>>> 
>>> - {{{kbd(v d)}}} or short {{{kbd(d)}}}, ~org-agenda-day-view~ ::
>>> 
>>>  {{{kindex(v d)}}}
>>>  {{{kindex(d)}}}
>>>  {{{vindex(org-agenda-span)}}}
>>> 
>>> 
>>> With these hanges I get the manual exported correctly to all formats.
>> 
>> Done.  Thanks.
>> 
>> I brought the manual up-to-date and used @@info:@@ for the problem macro
>> characters, so it should be completely converted to Org now.
>
>
> I tried the file on github, and export to texinfo fails with the attached backtrace (exports to other backends as well).
>
> I love this idea, so I really want to try.  Any ideas what might be wrong on my side?
>
> - Carsten
>
> Debugger entered--Lisp error: (error "Unknown marker at 281861")

Could you try M-x goto-char 281861?

I have such a msg in old files where I had my own @ markes.

Best regards,
  Seb

-- 
Sebastien Vauban

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

* Re: [RFC] Org version of the Org manual
  2013-02-25 20:21 [RFC] Org version of the Org manual Thomas S. Dye
                   ` (2 preceding siblings ...)
  2013-03-16 16:00 ` Achim Gratz
@ 2013-03-17 10:28 ` Achim Gratz
  2013-03-21 21:02   ` Nicolas Goaziou
  2013-04-27 18:16   ` Achim Gratz
  3 siblings, 2 replies; 45+ messages in thread
From: Achim Gratz @ 2013-03-17 10:28 UTC (permalink / raw)
  To: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 97 bytes --]

Hi Tom,

I have a patch that should fix your problems with some characters in
macro expansions:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-fix-macro-expansion-with-separators-and-backslashes.patch --]
[-- Type: text/x-patch, Size: 2589 bytes --]

From 27b22d17f629a50bd485a0320dac45616d7ceb7f Mon Sep 17 00:00:00 2001
From: Achim Gratz <Stromeko@Stromeko.DE>
Date: Sun, 17 Mar 2013 10:20:10 +0100
Subject: [PATCH] fix macro expansion with separators and backslashes

* lisp/org-element.el (org-element-macro-parser): Do not try to
  "repair bad splits", only split at the correct places.
* lisp/org-macro.el (org-macro-expand): Do not try to interpret the
  macro replacement text as a regex.

Allow to write macros like {{{kbd(\\)}}} and {{{kbd(\\,)}}} and expand
them correctly.  A backslash at the end of an argument was incorrectly
trying to cons the next argument (which may not exist).
---
 lisp/org-element.el | 16 +++++-----------
 lisp/org-macro.el   |  2 +-
 2 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/lisp/org-element.el b/lisp/org-element.el
index ba2461a..337cad0 100644
--- a/lisp/org-element.el
+++ b/lisp/org-element.el
@@ -3117,20 +3117,14 @@ (defun org-element-macro-parser ()
 	  (post-blank (progn (goto-char (match-end 0))
 			     (skip-chars-forward " \t")))
 	  (end (point))
-	  (args (let ((args (org-match-string-no-properties 3)) args2)
+	  (args (let ((args (org-match-string-no-properties 3)))
 		  (when args
 		    ;; Do not use `org-split-string' since empty
 		    ;; strings are meaningful here.
-		    (setq args (split-string args ","))
-		    (while args
-		      (while (string-match "\\\\\\'" (car args))
-			;; Repair bad splits, when comma is protected,
-                        ;; and thus not a real separator.
-			(setcar (cdr args) (concat (substring (car args) 0 -1)
-						   "," (nth 1 args)))
-			(pop args))
-		      (push (pop args) args2))
-		    (mapcar 'org-trim (nreverse args2))))))
+		    (setq args (replace-regexp-in-string "," "\000" args))
+		    (setq args (replace-regexp-in-string "\\\\\000" "," args))
+		    (setq args (split-string args "\000"))
+		    (mapcar 'org-trim args)))))
       (list 'macro
 	    (list :key key
 		  :value value
diff --git a/lisp/org-macro.el b/lisp/org-macro.el
index 88cbdf7..3e07295 100644
--- a/lisp/org-macro.el
+++ b/lisp/org-macro.el
@@ -137,7 +137,7 @@ (defun org-macro-expand (macro templates)
                                (org-element-property :args macro))
                           ;; No argument: remove place-holder.
                           ""))
-                    template)))
+                    template nil 'literal)))
         ;; VALUE starts with "(eval": it is a s-exp, `eval' it.
         (when (string-match "\\`(eval\\>" value)
           (setq value (eval (read value))))
-- 
1.8.1.4


[-- Attachment #3: Type: text/plain, Size: 226 bytes --]


I hope Nicolas will apply it or make a better patch.  The quoting used
unfortunately is not idempotent, so you need to know how many times your
macro will get expanded, but it is a start.  You should now be able to
do this:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: 0001-put-back-macros-with-problematic-characters.patch --]
[-- Type: text/x-patch, Size: 2827 bytes --]

From 042ad50bd06cbc5ab97c753cb5cfce8908121242 Mon Sep 17 00:00:00 2001
From: Achim Gratz <Stromeko@Stromeko.DE>
Date: Sun, 17 Mar 2013 11:27:21 +0100
Subject: [PATCH] put back macros with "problematic characters"

---
 orgmanual.org | 30 +++++++++---------------------
 1 file changed, 9 insertions(+), 21 deletions(-)

diff --git a/orgmanual.org b/orgmanual.org
index 6aa6b81..d50b20b 100644
--- a/orgmanual.org
+++ b/orgmanual.org
@@ -4254,13 +4254,10 @@ Priorities can be attached to any outline node; they do not need to be TODO
 items.
 
 #+attr_texinfo: :table-type table :indic @asis
-  - {{{kbd(C-c XXX)}}} ::
+  - {{{kbd(C-c \\,)}}} ::
 
-    {{{kindex(C-c ,)}}}
-    #+comment:    {{{kindex(@kbd{C-c ,})}}}
-    #+comment: Preceding line won't export to pdf
-    {{{findex(org-priority)}}}
-    #+comment: Should be C-c ,
+       {{{kindex(C-c \\,)}}}
+       {{{findex(org-priority)}}}
 
     Set the priority of the current headline (~org-priority~). The
     command prompts for a priority character {{{samp(A)}}}, {{{samp(B)}}}
@@ -9226,9 +9223,7 @@ the other commands, the cursor needs to be in the desired line.
 
 - ~\~ ~org-agenda-filter-by-tag-refine~ ::
 
-  #+comment: {{{kindex(XXX)}}}
-  #+comment: Should be \
-  @@info:kindex \\@@
+  {{{kindex(\)}}}
 
   Narrow the current agenda filter by an additional condition. When
   called with prefix arg, remove the entries that /do/ have the tag, or
@@ -9350,11 +9345,9 @@ the other commands, the cursor needs to be in the desired line.
   Set tags for the current headline. If there is an active region in the
   agenda, change a tag for all headings in the region.
 
-- {{{kbd(,)}}} ::
+- {{{kbd(\\,)}}} ::
 
-  #+comment: {{{kindex(XXX)}}}
-  #+comment: Should be a comma
-  @@info:kindex ,@@
+  {{{kindex(\\,)}}}
 
   Set the priority for the current item (~org-agenda-priority~). Org
   mode prompts for the priority character. If you reply with
@@ -10691,12 +10684,9 @@ If you would like to see entities displayed as UTF8 characters, use the
 following command:[fn:108]
 
 #+attr_texinfo: :table-type table :indic @asis
-- @@info:@kbd{C-c C-x XXX}@@ ::
-
-  #+comment: {{{kindex(C-c C-x XXX)}}}
-  #+comment: Should be \
+- {{{kbd(C-c C-x \)}}} ::
   
-  @@info:kindex C-c C-x \\
+  {{{kindex(C-c C-x \)}}}
 
   Toggle display of entities as UTF-8 characters. This does not change
   the buffer content which remains plain ASCII, but it overlays the
@@ -10740,9 +10730,7 @@ subscript, but ~a_{b}~ will.
 #+attr_texinfo: :table-type table :indic @asis
 - @@info:@kbd{C-c C-x \\}@@ ::
 
-  #+comment: {{{kindex(C-c C-x XXX)}}}
-  #+comment: Should be \
-  @@info:@kindex C-c C-x \@@
+  {{{kindex(C-c C-x \)}}}
 
   In addition to showing entities as UTF-8 characters, this command will
   also format sub- and superscripts in a WYSIWYM way.
-- 
1.8.1.4


[-- Attachment #5: Type: text/plain, Size: 200 bytes --]




Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

SD adaptations for Waldorf Q V3.00R3 and Q+ V3.54R2:
http://Synth.Stromeko.net/Downloads.html#WaldorfSDada

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

* Re: [RFC] Org version of the Org manual
  2013-03-17  6:54       ` Achim Gratz
@ 2013-03-17 12:33         ` Carsten Dominik
  2013-03-17 13:34           ` Achim Gratz
  0 siblings, 1 reply; 45+ messages in thread
From: Carsten Dominik @ 2013-03-17 12:33 UTC (permalink / raw)
  To: Achim Gratz; +Cc: emacs-orgmode


On 17.3.2013, at 07:54, Achim Gratz <Stromeko@nexgo.de> wrote:

> Carsten Dominik writes:
>> I tried the file on github, and export to texinfo fails with the
>> attached backtrace (exports to other backends as well).
> 
> Works for me.
> 
>> I love this idea, so I really want to try.  Any ideas what might be
>> wrong on my side?
> […]
>>  org-export-to-file(texinfo "./om.texi" nil nil nil nil)
> 
> It seems you are not using the build system?

Hi Achim, not sure what exactly you mean.  I do compile using make which I think is what you mean?

> You need to set at least 
> 
> (add-to-list 'org-export-snippet-translation-alist
>             '("info" . "texinfo"))

Have that now, does not fix the issue.

- Carsten

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

* Re: [RFC] Org version of the Org manual
  2013-03-17  7:01       ` Sebastien Vauban
@ 2013-03-17 12:36         ` Carsten Dominik
  0 siblings, 0 replies; 45+ messages in thread
From: Carsten Dominik @ 2013-03-17 12:36 UTC (permalink / raw)
  To: Sebastien Vauban; +Cc: emacs-orgmode


On 17.3.2013, at 08:01, "Sebastien Vauban" <wxhgmqzgwmuf@spammotel.com> wrote:

> Hi Carsten,
> 
> Carsten Dominik wrote:
>> On 17.3.2013, at 02:19, Thomas S. Dye <tsd@tsdye.com> wrote:
>> 
>>> Hi Achim,
>>> 
>>> Achim Gratz <Stromeko@nexgo.de> writes:
>>> 
>>>> Hi Tom,
>>>> 
>>>> I'm playing around with the current version, here is what I have so far:
>>>> 
>>>> 
>>>> The arguments to #+attr_texinfo need to lose the double quotes
>>>> 
>>>> Index entries in description lists must be separated from their entry by
>>>> at least one blank line like in the example below, otherwise the second
>>>> such entry gets indented in the exported .texi file and that somehow
>>>> confuses texinfo for some of them.
>>>> 
>>>> - {{{kbd(v d)}}} or short {{{kbd(d)}}}, ~org-agenda-day-view~ ::
>>>> 
>>>> {{{kindex(v d)}}}
>>>> {{{kindex(d)}}}
>>>> {{{vindex(org-agenda-span)}}}
>>>> 
>>>> 
>>>> With these hanges I get the manual exported correctly to all formats.
>>> 
>>> Done.  Thanks.
>>> 
>>> I brought the manual up-to-date and used @@info:@@ for the problem macro
>>> characters, so it should be completely converted to Org now.
>> 
>> 
>> I tried the file on github, and export to texinfo fails with the attached backtrace (exports to other backends as well).
>> 
>> I love this idea, so I really want to try.  Any ideas what might be wrong on my side?
>> 
>> - Carsten
>> 
>> Debugger entered--Lisp error: (error "Unknown marker at 281861")
> 
> Could you try M-x goto-char 281861?

You mean in orgmanual.org?


It jumos to "see" in
---------------------------------------------------------
- %:keyword ::   

  Specific information for certain link types, see below.
----------------------------------------------------------

> 
> I have such a msg in old files where I had my own @ markes.
> 
> Best regards,
>  Seb
> 
> -- 
> Sebastien Vauban
> 
> 

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

* Re: [RFC] Org version of the Org manual
  2013-03-17 12:33         ` Carsten Dominik
@ 2013-03-17 13:34           ` Achim Gratz
  2013-03-17 15:37             ` Carsten Dominik
  0 siblings, 1 reply; 45+ messages in thread
From: Achim Gratz @ 2013-03-17 13:34 UTC (permalink / raw)
  To: emacs-orgmode

Carsten Dominik writes:
>> It seems you are not using the build system?

> Hi Achim, not sure what exactly you mean.  I do compile using make
> which I think is what you mean?

It seems you're not producing orgmanual.texi with make, since I can't
see how it would use "om.texi" as the target filename.  Anyway, the
latest changes from Tom are only in the orgmanual branch of the github
repo.  You'll need to complement that with the changes to Org that I
posted earlier for him to try.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Factory and User Sound Singles for Waldorf Q+, Q and microQ:
http://Synth.Stromeko.net/Downloads.html#WaldorfSounds

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

* Re: [RFC] Org version of the Org manual
  2013-03-17 13:34           ` Achim Gratz
@ 2013-03-17 15:37             ` Carsten Dominik
  2013-03-17 17:36               ` Achim Gratz
  0 siblings, 1 reply; 45+ messages in thread
From: Carsten Dominik @ 2013-03-17 15:37 UTC (permalink / raw)
  To: Achim Gratz; +Cc: emacs-orgmode


On 17.3.2013, at 14:34, Achim Gratz <Stromeko@nexgo.de> wrote:

> Carsten Dominik writes:
>>> It seems you are not using the build system?
> 
>> Hi Achim, not sure what exactly you mean.  I do compile using make
>> which I think is what you mean?
> 
> It seems you're not producing orgmanual.texi with make,

You are right, I am not, did not know that the Makefile already supports making the manual in this way.  Don't see how either.

> since I can't
> see how it would use "om.texi" as the target filename.  Anyway, the
> latest changes from Tom are only in the orgmanual branch of the github
> repo.  You'll need to complement that with the changes to Org that I
> posted earlier for him to try.

So these are not yet in his github repository?

I am a bit confused, so I give up for now, maybe you or Tom can send around some instructions once there is a version accessible that will work out of the box.

Thanks

- Carsten

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

* Re: [RFC] Org version of the Org manual
  2013-03-17 15:37             ` Carsten Dominik
@ 2013-03-17 17:36               ` Achim Gratz
  2013-03-17 19:58                 ` Carsten Dominik
  0 siblings, 1 reply; 45+ messages in thread
From: Achim Gratz @ 2013-03-17 17:36 UTC (permalink / raw)
  To: emacs-orgmode

Carsten Dominik writes:
> So these are not yet in his github repository?

Yes they are, but not in the master branch.  You'll want to switch to
the orgmanual branch for now.

> I am a bit confused, so I give up for now, maybe you or Tom can send
> around some instructions once there is a version accessible that will
> work out of the box.

This has been described elsewhere in this thread, it seems you missed
that part:

http://permalink.gmane.org/gmane.emacs.orgmode/68117

Now that there is an orgmanual branch already in Tom's repo on github,
simply clone that one and the patch that instantiates the Makefile is
already applied:

cd orgmanual
git checkout -b orgmanual orgmanual

You still need to branch the Org repo and add the patch there, plus
modify your local.mk, but then you'll be able to let the build system
produce the manual for you.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Factory and User Sound Singles for Waldorf rackAttack:
http://Synth.Stromeko.net/Downloads.html#WaldorfSounds

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

* Re: [RFC] Org version of the Org manual
  2013-03-17 17:36               ` Achim Gratz
@ 2013-03-17 19:58                 ` Carsten Dominik
  0 siblings, 0 replies; 45+ messages in thread
From: Carsten Dominik @ 2013-03-17 19:58 UTC (permalink / raw)
  To: Achim Gratz; +Cc: emacs-orgmode

Hi Achim,

thank you for the additional information.
On 17.3.2013, at 18:36, Achim Gratz <Stromeko@nexgo.de> wrote:

> Carsten Dominik writes:
>> So these are not yet in his github repository?
> 
> Yes they are, but not in the master branch.  You'll want to switch to
> the orgmanual branch for now.
> 
>> I am a bit confused, so I give up for now, maybe you or Tom can send
>> around some instructions once there is a version accessible that will
>> work out of the box.
> 
> This has been described elsewhere in this thread, it seems you missed
> that part:

Quite likely, I only spontaneously tried to compile the new manual and wanted to go the route with C-c C-e i t or something like this.  Inclusion in the built system is great, if this project succeeds.

I think I am doing everything right, but I still get the marker error.  So I fear something in my config might be acting up - there are several people who have reported now that they have produced the manual successfully.  Will try to isolate my issue.

Thanks!

- Carsten

> 
> http://permalink.gmane.org/gmane.emacs.orgmode/68117
> 
> Now that there is an orgmanual branch already in Tom's repo on github,
> simply clone that one and the patch that instantiates the Makefile is
> already applied:
> 
> cd orgmanual
> git checkout -b orgmanual orgmanual
> 
> You still need to branch the Org repo and add the patch there, plus
> modify your local.mk, but then you'll be able to let the build system
> produce the manual for you.
> 
> 
> Regards,
> Achim.
> -- 
> +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+
> 
> Factory and User Sound Singles for Waldorf rackAttack:
> http://Synth.Stromeko.net/Downloads.html#WaldorfSounds
> 
> 

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

* Re: [RFC] Org version of the Org manual
  2013-03-17 10:28 ` Achim Gratz
@ 2013-03-21 21:02   ` Nicolas Goaziou
  2013-03-22  7:50     ` Achim Gratz
  2013-04-27 18:16   ` Achim Gratz
  1 sibling, 1 reply; 45+ messages in thread
From: Nicolas Goaziou @ 2013-03-21 21:02 UTC (permalink / raw)
  To: Achim Gratz; +Cc: emacs-orgmode

Hello,

Achim Gratz <Stromeko@nexgo.de> writes:

> Hi Tom,
>
> I have a patch that should fix your problems with some characters in
> macro expansions:
>
>
> From 27b22d17f629a50bd485a0320dac45616d7ceb7f Mon Sep 17 00:00:00 2001
> From: Achim Gratz <Stromeko@Stromeko.DE>
> Date: Sun, 17 Mar 2013 10:20:10 +0100
> Subject: [PATCH] fix macro expansion with separators and backslashes
>
> * lisp/org-element.el (org-element-macro-parser): Do not try to
>   "repair bad splits", only split at the correct places.
> * lisp/org-macro.el (org-macro-expand): Do not try to interpret the
>   macro replacement text as a regex.
>
> Allow to write macros like {{{kbd(\\)}}} and {{{kbd(\\,)}}} and expand
> them correctly.  A backslash at the end of an argument was incorrectly
> trying to cons the next argument (which may not exist).
> ---
>  lisp/org-element.el | 16 +++++-----------
>  lisp/org-macro.el   |  2 +-
>  2 files changed, 6 insertions(+), 12 deletions(-)
>
> diff --git a/lisp/org-element.el b/lisp/org-element.el
> index ba2461a..337cad0 100644
> --- a/lisp/org-element.el
> +++ b/lisp/org-element.el
> @@ -3117,20 +3117,14 @@ (defun org-element-macro-parser ()
>  	  (post-blank (progn (goto-char (match-end 0))
>  			     (skip-chars-forward " \t")))
>  	  (end (point))
> -	  (args (let ((args (org-match-string-no-properties 3)) args2)
> +	  (args (let ((args (org-match-string-no-properties 3)))
>  		  (when args
>  		    ;; Do not use `org-split-string' since empty
>  		    ;; strings are meaningful here.
> -		    (setq args (split-string args ","))
> -		    (while args
> -		      (while (string-match "\\\\\\'" (car args))
> -			;; Repair bad splits, when comma is protected,
> -                        ;; and thus not a real separator.
> -			(setcar (cdr args) (concat (substring (car args) 0 -1)
> -						   "," (nth 1 args)))
> -			(pop args))
> -		      (push (pop args) args2))
> -		    (mapcar 'org-trim (nreverse args2))))))
> +		    (setq args (replace-regexp-in-string "," "\000" args))
> +		    (setq args (replace-regexp-in-string "\\\\\000" "," args))
> +		    (setq args (split-string args "\000"))
> +		    (mapcar 'org-trim args)))))

I suggest the following code instead, which allows to escape the
escaping backslash so the comma is not escaped:

  (args (mapcar 'org-trim
                (split-string
                 (replace-regexp-in-string
                  "\\(\\\\+\\)?\\(,\\)"
                  (lambda (str)
                    (let ((slashes (match-string 1 str)))
                      (if (or (not slashes) (evenp (length slashes))) "\\1\000"
                        (concat (make-string (1- (length slashes)) ?\\) ","))))
                  (org-match-string-no-properties 3))
                 "\000")))

What do you think about it?

> @@ -137,7 +137,7 @@ (defun org-macro-expand (macro templates)
>                                 (org-element-property :args macro))
>                            ;; No argument: remove place-holder.
>                            ""))
> -                    template)))
> +                    template nil 'literal)))

I agree on that part.

Also, a test or two should be added to "test-org-element/macro-parser"
in test-org-element.el.


Regards,

-- 
Nicolas Goaziou

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

* Re: [RFC] Org version of the Org manual
  2013-03-21 21:02   ` Nicolas Goaziou
@ 2013-03-22  7:50     ` Achim Gratz
  2013-03-22 14:22       ` Nicolas Goaziou
  0 siblings, 1 reply; 45+ messages in thread
From: Achim Gratz @ 2013-03-22  7:50 UTC (permalink / raw)
  To: emacs-orgmode

Am 21.03.2013 22:02, schrieb Nicolas Goaziou:
> I suggest the following code instead, which allows to escape the
> escaping backslash so the comma is not escaped:
>
>    (args (mapcar 'org-trim
>                  (split-string
>                   (replace-regexp-in-string
>                    "\\(\\\\+\\)?\\(,\\)"
>                    (lambda (str)
>                      (let ((slashes (match-string 1 str)))
>                        (if (or (not slashes) (evenp (length slashes))) "\\1\000"
>                          (concat (make-string (1- (length slashes)) ?\\) ","))))
>                    (org-match-string-no-properties 3))
>                   "\000")))
>
> What do you think about it?

I think this is a lot harder to understand and I would guess it is also 
quite a bit slower.  Also I'm not sure why you are trying to match 
multiple backslashes.  The original implementation and the description 
of the syntax says that the only character that can be escaped is a 
comma, so the new implementation changes behaviour in that regard (maybe 
intentionally, I can't tell).


Regards,
-- 
Achim.

(on the road :-)

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

* Re: [RFC] Org version of the Org manual
  2013-03-22  7:50     ` Achim Gratz
@ 2013-03-22 14:22       ` Nicolas Goaziou
  2013-03-22 16:46         ` Achim Gratz
  0 siblings, 1 reply; 45+ messages in thread
From: Nicolas Goaziou @ 2013-03-22 14:22 UTC (permalink / raw)
  To: Achim Gratz; +Cc: emacs-orgmode

Hello,

Achim Gratz <Stromeko@Nexgo.DE> writes:

> Am 21.03.2013 22:02, schrieb Nicolas Goaziou:
>> I suggest the following code instead, which allows to escape the
>> escaping backslash so the comma is not escaped:
>>
>>    (args (mapcar 'org-trim
>>                  (split-string
>>                   (replace-regexp-in-string
>>                    "\\(\\\\+\\)?\\(,\\)"
>>                    (lambda (str)
>>                      (let ((slashes (match-string 1 str)))
>>                        (if (or (not slashes) (evenp (length slashes))) "\\1\000"
>>                          (concat (make-string (1- (length slashes)) ?\\) ","))))
>>                    (org-match-string-no-properties 3))
>>                   "\000")))
>>
>> What do you think about it?
>
> I think this is a lot harder to understand

Actually it is harder to understand because it doesn't make any sense:
the code is wrong. More on this below.

> and I would guess it is also quite a bit slower.

Speed difference is not significant here.

> Also I'm not sure why you are trying to match multiple backslashes.
> The original implementation and the description of the syntax says
> that the only character that can be escaped is a comma, so the new
> implementation changes behaviour in that regard (maybe intentionally,
> I can't tell).

Actually the code I pasted is wrong, I meant:

  (split-string
   (replace-regexp-in-string
    "\\(\\\\+\\)?\\(,\\)"
    (lambda (str)
      (let ((len (length (match-string 1 str))))
        (if (evenp len) (concat (make-string (/ len 2) ?\\) "\000")
          (concat (make-string (/ (1- len) 2) ?\\) ","))))
    (org-matcĥ-string-no-properties 3) nil t)
   "\000")

With the current implementation (and in your refactoring), it is
impossible to have '("a\,b").

If you allow to escape a character, you should also be able to escape
the escaping character. With this patch:

  "a,b"     -> '("a" "b")
  "a\,b"    -> '("a,b")
  "a\\,b"   -> '("a\" "b")
  "a\\\,b"  -> '("a\,b")
  "a\\\\,b" -> '(a"\\" "b")

Note that with the patch, you only need to escape backslashes before
a comma:

  "a\\b\,c" -> '("a\\b,c")

If consistency is a matter, a slightly different patch can require to
escape every backslash character. Though, I don't think it is necessary.


Regards,

-- 
Nicolas Goaziou

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

* Re: [RFC] Org version of the Org manual
  2013-03-22 14:22       ` Nicolas Goaziou
@ 2013-03-22 16:46         ` Achim Gratz
  2013-03-22 18:17           ` Nicolas Goaziou
  0 siblings, 1 reply; 45+ messages in thread
From: Achim Gratz @ 2013-03-22 16:46 UTC (permalink / raw)
  To: emacs-orgmode

Am 22.03.2013 15:22, schrieb Nicolas Goaziou:
> Actually the code I pasted is wrong, I meant:
>
>    (split-string
>     (replace-regexp-in-string
>      "\\(\\\\+\\)?\\(,\\)"
>      (lambda (str)
>        (let ((len (length (match-string 1 str))))
>          (if (evenp len) (concat (make-string (/ len 2) ?\\) "\000")
>            (concat (make-string (/ (1- len) 2) ?\\) ","))))
>      (org-matcĥ-string-no-properties 3) nil t)
>     "\000")

That is starting to make sense... :-)
You might want to use the (function (lambda ...)) form.

> With the current implementation (and in your refactoring), it is
> impossible to have '("a\,b").

Yes, you'd need a second form of quoting to properly support that.  It's 
also impossible to have leading or trailing whitespace, so I don't know 
how important it is to support this edge case of "\,".

> If consistency is a matter, a slightly different patch can require to
> escape every backslash character. Though, I don't think it is necessary.

I'm not sure it is worth the trouble.


Regards,
-- 
Achim.

(on the road :-)

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

* Re: [RFC] Org version of the Org manual
  2013-03-22 16:46         ` Achim Gratz
@ 2013-03-22 18:17           ` Nicolas Goaziou
  2013-03-23  7:32             ` Achim Gratz
  0 siblings, 1 reply; 45+ messages in thread
From: Nicolas Goaziou @ 2013-03-22 18:17 UTC (permalink / raw)
  To: Achim Gratz; +Cc: emacs-orgmode

Achim Gratz <Stromeko@Nexgo.DE> writes:

> Am 22.03.2013 15:22, schrieb Nicolas Goaziou:
>> Actually the code I pasted is wrong, I meant:
>>
>>    (split-string
>>     (replace-regexp-in-string
>>      "\\(\\\\+\\)?\\(,\\)"
>>      (lambda (str)
>>        (let ((len (length (match-string 1 str))))
>>          (if (evenp len) (concat (make-string (/ len 2) ?\\) "\000")
>>            (concat (make-string (/ (1- len) 2) ?\\) ","))))
>>      (org-matcĥ-string-no-properties 3) nil t)
>>     "\000")
>
> That is starting to make sense... :-)
> You might want to use the (function (lambda ...)) form.

Why? (function (lambda ...)) is equivalent to (lambda ...). In fact,
`lambda' uses `function' as a subroutine.

>> With the current implementation (and in your refactoring), it is
>> impossible to have '("a\,b").
>
> Yes, you'd need a second form of quoting to properly support that.
> It's also impossible to have leading or trailing whitespace, 

That's why I also suggest to drop the (mapcar 'org-trim ...) wrapper.
There's no reason to remove blanks if the user inserted them in the
first place.

> so I don't know how important it is to support this edge case of "\,".

Since that's not costly to achieve, there no real reason not to support
it.

So, any objection (or further comment) for that change?


Regards,

-- 
Nicolas Goaziou

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

* Re: [RFC] Org version of the Org manual
  2013-03-22 18:17           ` Nicolas Goaziou
@ 2013-03-23  7:32             ` Achim Gratz
  2013-03-23 20:17               ` Nicolas Goaziou
  0 siblings, 1 reply; 45+ messages in thread
From: Achim Gratz @ 2013-03-23  7:32 UTC (permalink / raw)
  To: emacs-orgmode

Am 22.03.2013 19:17, schrieb Nicolas Goaziou:
>> You might want to use the (function (lambda ...)) form.
>
> Why? (function (lambda ...)) is equivalent to (lambda ...). In fact,
> `lambda' uses `function' as a subroutine.

http://www.gnu.org/software/emacs/manual/html_node/elisp/Anonymous-Functions.html

http://stackoverflow.com/questions/1852844/emacs-lisp-difference-between-function-lambda-and-lambda

With Emacs 24.3 and eager macro expoansion the need to do this has 
diminished, but for the benefit of older Emacsen we should probably 
continue the practise.

> That's why I also suggest to drop the (mapcar 'org-trim ...) wrapper.
> There's no reason to remove blanks if the user inserted them in the
> first place.

Oh, OK - I did not realise that.

> Since that's not costly to achieve, there no real reason not to support
> it.

I'll trust you on the "not costly" part, I can't do any experiment right 
now.

> So, any objection (or further comment) for that change?

Please go ahead.


Regards,
-- 
Achim.

(on the road :-)

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

* Re: [RFC] Org version of the Org manual
  2013-03-23  7:32             ` Achim Gratz
@ 2013-03-23 20:17               ` Nicolas Goaziou
  0 siblings, 0 replies; 45+ messages in thread
From: Nicolas Goaziou @ 2013-03-23 20:17 UTC (permalink / raw)
  To: Achim Gratz; +Cc: emacs-orgmode

Hello,

Achim Gratz <Stromeko@Nexgo.DE> writes:

> Am 22.03.2013 19:17, schrieb Nicolas Goaziou:
>>> You might want to use the (function (lambda ...)) form.
>>
>> Why? (function (lambda ...)) is equivalent to (lambda ...). In fact,
>> `lambda' uses `function' as a subroutine.
>
> http://www.gnu.org/software/emacs/manual/html_node/elisp/Anonymous-Functions.html
>
> http://stackoverflow.com/questions/1852844/emacs-lisp-difference-between-function-lambda-and-lambda
>
> With Emacs 24.3 and eager macro expoansion the need to do this has
> diminished, but for the benefit of older Emacsen we should probably
> continue the practise.

According to the link you pasted:

  The lambda form has one other effect: it tells the Emacs evaluator and
  byte-compiler that its argument is a function, by using function as
  a subroutine (see below).

I don't think this is a recent addition (recent as in "since Emacs
24.1").

>> So, any objection (or further comment) for that change?
>
> Please go ahead.

Done. Could you commit the other part of your patch?


Regards,

-- 
Nicolas Goaziou

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

* Re: [RFC] Org version of the Org manual
  2013-03-17 10:28 ` Achim Gratz
  2013-03-21 21:02   ` Nicolas Goaziou
@ 2013-04-27 18:16   ` Achim Gratz
  2013-04-28  7:29     ` Nicolas Goaziou
  1 sibling, 1 reply; 45+ messages in thread
From: Achim Gratz @ 2013-04-27 18:16 UTC (permalink / raw)
  To: emacs-orgmode

Hi Nicolas,

the change in org-macro.el to use a literal replacement string is still
missing in mainline Org.  Is there something wrong with that patch or
should I apply it?


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

SD adaptations for KORG EX-800 and Poly-800MkII V0.9:
http://Synth.Stromeko.net/Downloads.html#KorgSDada

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

* Re: [RFC] Org version of the Org manual
  2013-04-27 18:16   ` Achim Gratz
@ 2013-04-28  7:29     ` Nicolas Goaziou
  2013-04-28  8:28       ` Achim Gratz
  0 siblings, 1 reply; 45+ messages in thread
From: Nicolas Goaziou @ 2013-04-28  7:29 UTC (permalink / raw)
  To: Achim Gratz; +Cc: emacs-orgmode

Hello,

Achim Gratz <Stromeko@nexgo.de> writes:

> the change in org-macro.el to use a literal replacement string is still
> missing in mainline Org.  Is there something wrong with that patch or
> should I apply it?

IIRC I had told you that you could apply it. If that's not the case, you
can apply it anyway ;)

Thanks.


Regards,

-- 
Nicolas Goaziou

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

* Re: [RFC] Org version of the Org manual
  2013-04-28  7:29     ` Nicolas Goaziou
@ 2013-04-28  8:28       ` Achim Gratz
  0 siblings, 0 replies; 45+ messages in thread
From: Achim Gratz @ 2013-04-28  8:28 UTC (permalink / raw)
  To: emacs-orgmode

Nicolas Goaziou writes:
> IIRC I had told you that you could apply it. If that's not the case,
> you can apply it anyway ;)

Done in maint and master.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Wavetables for the Waldorf Blofeld:
http://Synth.Stromeko.net/Downloads.html#BlofeldUserWavetables

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

end of thread, other threads:[~2013-04-28  8:28 UTC | newest]

Thread overview: 45+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-02-25 20:21 [RFC] Org version of the Org manual Thomas S. Dye
2013-02-25 21:21 ` Carsten Dominik
2013-03-04 21:28 ` Achim Gratz
2013-03-06  3:14   ` Thomas S. Dye
2013-03-06  7:44     ` Yagnesh Raghava Yakkala
2013-03-06  8:18       ` Achim Gratz
2013-03-06  8:29         ` Bastien
2013-03-06  8:40           ` Nicolas Goaziou
2013-03-06  8:44           ` Achim Gratz
2013-03-06 10:18             ` Jambunathan K
2013-03-07 17:35       ` Thomas S. Dye
2013-03-07 18:22         ` Achim Gratz
2013-03-07 18:49           ` Thomas S. Dye
2013-03-09 23:53           ` Thomas S. Dye
2013-03-10 12:24             ` Achim Gratz
2013-03-10 19:01               ` Jonathan Leech-Pepin
2013-03-10 19:25                 ` Achim Gratz
2013-03-10 19:39                   ` Jonathan Leech-Pepin
2013-03-10 20:23                     ` Nicolas Goaziou
2013-03-10 20:40                       ` Jonathan Leech-Pepin
2013-03-11  0:32               ` Thomas S. Dye
2013-03-11  6:43                 ` Achim Gratz
2013-03-11 16:18                   ` Thomas S. Dye
2013-03-16 16:00 ` Achim Gratz
2013-03-17  1:19   ` Thomas S. Dye
2013-03-17  5:50     ` Carsten Dominik
2013-03-17  6:54       ` Achim Gratz
2013-03-17 12:33         ` Carsten Dominik
2013-03-17 13:34           ` Achim Gratz
2013-03-17 15:37             ` Carsten Dominik
2013-03-17 17:36               ` Achim Gratz
2013-03-17 19:58                 ` Carsten Dominik
2013-03-17  7:01       ` Sebastien Vauban
2013-03-17 12:36         ` Carsten Dominik
2013-03-17 10:28 ` Achim Gratz
2013-03-21 21:02   ` Nicolas Goaziou
2013-03-22  7:50     ` Achim Gratz
2013-03-22 14:22       ` Nicolas Goaziou
2013-03-22 16:46         ` Achim Gratz
2013-03-22 18:17           ` Nicolas Goaziou
2013-03-23  7:32             ` Achim Gratz
2013-03-23 20:17               ` Nicolas Goaziou
2013-04-27 18:16   ` Achim Gratz
2013-04-28  7:29     ` Nicolas Goaziou
2013-04-28  8:28       ` Achim Gratz

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