asciidoc-odf
asciidoc-odf copied to clipboard
Wrong asciidoc backend path
Hi,
I tried to use ascii doc ODT backend.
- downloading backend tarball from your github source : https://github.com/dagwieers/asciidoc-odf/downloads asciidoc --backend install odt-backend-0.1.zip
- or taking it from master zip -r ~/DEV/repo_official/asciidoc-odf/backends/odt/* odt-backend.zip asciidoc --backend install odt-backend.zip
Here are my issues:
-
Generating my own tarball, I miss asciidoc.ott file. Did I miss a step to generate it ?
-
When trying to generate odt file with your example input file, I see a backend path issue:
[14:04:41] eloi@eloi-W541:~/DEV/repo_official/asciidoc-odf/examples$ a2x -v -b odt asciidoc-odt-test.asciidoc a2x: args: ['-v', '-b', 'odt', 'asciidoc-odt-test.asciidoc'] a2x: executing: /usr/bin/asciidoc --backend list /home/eloi/.asciidoc/backends/odt a2x: found odt backend directory: /home/eloi/.asciidoc/backends/odt a2x: loading configuration file: /home/eloi/.asciidoc/backends/odt/a2x-backend.py a2x: resource files: [] a2x: resource directories: ['/etc/asciidoc/images', '/etc/asciidoc/stylesheets'] Traceback (most recent call last): File "/usr/bin/a2x", line 960, ina2x.execute()[14:04:41] eloi@eloi-W541:~/DEV/repo_official/asciidoc-odf/examples$ a2x -v -b odt asciidoc-odt-test.asciidoc a2x: args: ['-v', '-b', 'odt', 'asciidoc-odt-test.asciidoc'] a2x: executing: /usr/bin/asciidoc --backend list /home/eloi/.asciidoc/backends/odt a2x: found odt backend directory: /home/eloi/.asciidoc/backends/odt a2x: loading configuration file: /home/eloi/.asciidoc/backends/odt/a2x-backend.py a2x: resource files: [] a2x: resource directories: ['/etc/asciidoc/images', '/etc/asciidoc/stylesheets'] Traceback (most recent call last): File "/usr/bin/a2x", line 960, in a2x.execute() File "/usr/bin/a2x", line 376, in execute self.to_backend() File "/usr/bin/a2x", line 634, in to_backend eval('to_%s(self)' % self.backend) File " ", line 1, in File "/home/eloi/.asciidoc/backends/odt/a2x-backend.py", line 87, in to_odt a.make_archive(opts.base_doc, self.asciidoc_file, odf_file) File "/home/eloi/.asciidoc/backends/odt/a2x-backend.py", line 33, in make_archive bz = zipfile.ZipFile(base_doc) File "/usr/lib/python2.7/zipfile.py", line 756, in __init__ self.fp = open(file, modeDict[mode]) IOError: [Errno 2] No such file or directory: '/etc/asciidoc/backends/odt/asciidoc.ott' File "/usr/bin/a2x", line 376, in execute self.to_backend() File "/usr/bin/a2x", line 634, in to_backend eval('to_%s(self)' % self.backend) File " ", line 1, in File "/home/eloi/.asciidoc/backends/odt/a2x-backend.py", line 87, in to_odt a.make_archive(opts.base_doc, self.asciidoc_file, odf_file) File "/home/eloi/.asciidoc/backends/odt/a2x-backend.py", line 33, in make_archive bz = zipfile.ZipFile(base_doc) File "/usr/lib/python2.7/zipfile.py", line 756, in __init__ self.fp = open(file, modeDict[mode]) IOError: [Errno 2] No such file or directory: '/etc/asciidoc/backends/odt/asciidoc.ott'
Wrong path is set : '/etc/asciidoc/backends' instead of '~/.asciidoc/backends/odt/asciidoc.ott'
I have a workaround doing :
diff --git a/backends/odt/a2x-backend.py b/backends/odt/a2x-backend.py index ebf3e24..d4a7adf 100644 --- a/backends/odt/a2x-backend.py +++ b/backends/odt/a2x-backend.py @@ -84,6 +84,7 @@ class odt_archive: oz.close() def to_odt(self): + CONF_DIR=os.path.join(os.getenv("HOME"),".asciidoc")) opts = AttrDict(base_doc=os.path.join(CONF_DIR, 'backends', 'odt', 'asciidoc.ott'), temp_dir=None, schema=None) # TODO set schema default location u = [ o.strip().split('=') for o in self.backend_opts.strip().split('--') if o != '' ]
Did I miss again something ? Thanks,
Eloi
That workaround did not work for me. I instead had to copy the file to the location in /etc. Note the install instructions don't say if there is a way to install the backend for all users rather than to ~/.asciidoc. I copied the whole directory and got a message that there were two odt backends. removing the odt backend from ~/.asciidoc resolved this.
I believe mine was the same issue. I installed the asciidoc-odf backend as instructed by the README:
$ asciidoc --backend install odt-backend.zip
Subsequently, using the "odt" backend, I would received a "missing theme" warning:
$ asciidoc -b odt doc.adoc
asciidoc: WARNING: doc.adoc: line 1: include file not found:
/etc/asciidoc/backends/odt/asciidoc.odt.styles
And, most important, the resulting .fodt was largely unstyled.
I resolved this via the odt.conf
under ~/.asciidoc/backends/odt/
.
For whatever reason, the first "intrinsic attributes" listed here that I tried didn't evaluate. So, though the optimal change would seem to be to use the backend-confdir
attribute, instead I ended up building the correct path via the user-dir
attribute. The diff:
$ diff odt.conf odt.conf.bak
743c743
< include1::{theme%}{backend-confdir={user-dir}/backends/{backend}}/asciidoc.odt.styles[]
---
> include1::{theme%}{backenddir={asciidoc-confdir}/backends/{backend}}/asciidoc.odt.styles[]