Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wrong asciidoc backend path #47

Open
eloi29 opened this issue Jun 17, 2015 · 2 comments
Open

Wrong asciidoc backend path #47

eloi29 opened this issue Jun 17, 2015 · 2 comments

Comments

@eloi29
Copy link

eloi29 commented Jun 17, 2015

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:

  1. Generating my own tarball, I miss asciidoc.ott file. Did I miss a step to generate it ?

  2. 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, in 
    a2x.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

@tortoise74
Copy link

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.

@jesteria
Copy link

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[]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants