Hi,
I am facing the same issue using asciidoc 8.6.9

Some of the images are encoded wrongly with the latest version.
After some investigation I found that some of the lines in the data that 
should contain +++ have been reduced to a single plus +, the line is also 
shorter than all the other lines.
It is not a python issue, when I encode the same image in python using 
base64.b64encode I get the correct data on Windows, Cygwin and Ubuntu Linux.

I use this with a slidy backend.
And this is the exact slide that is giving me 
problems: 
https://gerrit.googlesource.com/training/gerrit/+/master/presentations/git-gerrit-workshop/distributed-versioning-systems-2.txt

Thanks,
Peter Bruin



On Tuesday, March 11, 2014 9:39:55 PM UTC+8, Will wrote:
>
> Hi,
>
> I have an issue with the latest release of AsciiDoc (8.6.9) when using the 
> XHTML backend in conjunction with the data-uri attribute to encode images 
> as base64.  Basically, processing just hangs.  Was just wondering if anyone 
> else has experienced the same issue, or if it is an issue with my 
> setup/environment.
>
>
> *Environment*
>
> My environment is as follows:
>
>    OS: Windows 7 Enterprise SP1 64-bit
>    AsciiDoc: 8.6.9
>    Python: 2.7.6 64-bit
>
>
> I found the issue is caused by a change (since 8.6.8) in the xhtml11 conf 
> file:
>
>
> *xhtml11 conf file (8.6.8):*
>
> [image-blockmacro]
> <div class="imageblock{style? {style}}{role? {role}}{unbreakable-option? 
> unbreakable}"{id? id="{id}"}{align? style="text-align:{align};"}{float? 
> style="float:{float};"}>
> <div class="content">
> <a class="image" href="{link}">
> {data-uri%}<img src="{imagesdir=}{imagesdir?/}{target}" 
> alt="{alt={target}}"{width? width="{width}"}{height? height="{height}"} />
> {data-uri#}<img alt="{alt={target}}"{width? width="{width}"}{height? 
> height="{height}"} 
> src="data:image/{eval:os.path.splitext(r'{target}')[1][1:]};base64,
> {data-uri#}{sys:"{python}" -u -c "import base64,sys; 
> base64.encode(sys.stdin,sys.stdout)" < 
> "{eval:os.path.join(r"{indir={outdir}}",r"{imagesdir=}",r"{target}")}"}" />
>
>
> *xhtml11 conf file (8.6.9):*
>
> [image-blockmacro]
> <div class="imageblock{style? {style}}{role? {role}}{unbreakable-option? 
> unbreakable}"{id? id="{id}"}{align? style="text-align:{align};"}{float? 
> style="float:{float};"}>
> <div class="content">
> <a class="image" href="{link}">
> {data-uri%}<img src="{imagesdir=}{imagesdir?/}{target}" 
> alt="{alt={target}}"{width? width="{width}"}{height? height="{height}"} />
> {data-uri#}<img alt="{alt={target}}"{width? width="{width}"}{height? 
> height="{height}"}
> {data-uri#}{sys:"{python}" -u -c "import mimetypes,base64,sys; print 
> 'src=\"data:'+mimetypes.guess_type(r'{target}')[0]+';base64,'; 
> base64.encode(sys.stdin,sys.stdout)" < 
> "{eval:os.path.join(r"{indir={outdir}}",r"{imagesdir=}",r"{target}")}"}" />
>
>
> The difference is 8.6.8 version uses the conf file to output the "src=..." 
> part, but the 8.6.9 uses the system call to have Python print it.  The 
> issue appears to be the escaped quote contained in the print statement in 
> the latter.
>
>
> *Steps to reproduce*
>
> To reproduce, I create a basic document like this:
>
> = Image test
>
> == Foo
>
> .Bar
> image::tst.png[Foo bar]
>
>
> Then render with the following command:
>
> C:\>python C:/bin/asciidoc-8.6.9/asciidoc.py --verbose --attribute 
> data-uri --backend=xhtml11 --out-file="C:\tst\image_test.xhtml" 
> "C:\tst\image_test.txt"
>
>
> Process hangs, with output as:
>
> asciidoc: reading: C:\bin\asciidoc-8.6.9\asciidoc.conf
> asciidoc: reading: C:\tst\image_test.txt
> asciidoc: reading: C:\bin\asciidoc-8.6.9\xhtml11.conf
> asciidoc: include1: C:\bin\asciidoc-8.6.9\stylesheets\asciidoc.css
> asciidoc: image_test.txt: line 1: ifeval: "source-highlight"=="pygments": 
> False
> asciidoc: include1: C:\bin\asciidoc-8.6.9\javascripts\asciidoc.js
> asciidoc: reading: C:\bin\asciidoc-8.6.9\filters\code\code-filter.conf
> asciidoc: reading: 
> C:\bin\asciidoc-8.6.9\filters\graphviz\graphviz-filter.conf
> asciidoc: reading: C:\bin\asciidoc-8.6.9\filters\latex\latex-filter.conf
> asciidoc: reading: C:\bin\asciidoc-8.6.9\filters\music\music-filter.conf
> asciidoc: reading: 
> C:\bin\asciidoc-8.6.9\filters\source\source-highlight-filter.conf
> asciidoc: image_test.txt: line 1: ifeval: 
> "source-highlight"=="source-highlight": True
> asciidoc: image_test.txt: line 1: ifeval: "source-highlight"=="highlight": 
> False
> asciidoc: image_test.txt: line 1: ifeval: "source-highlight"=="pygments": 
> False
> asciidoc: reading: C:\bin\asciidoc-8.6.9\lang-en.conf
> asciidoc: writing: C:\tst\image_test.xhtml
> asciidoc: image_test.txt: line 7: evaluating: 
> {eval:os.path.join(r"C:\tst",r"",r"tst.png")}
> asciidoc: image_test.txt: line 7: evaluating: 
> {sys:"C:\bin\python-2.7.6-64\python.exe" -u -c "import 
> mimetypes,base64,sys; print '
> src=\"data:'+mimetypes.guess_type(r'tst.png')[0]+';base64,'; 
> base64.encode(sys.stdin,sys.stdout)" < "C:\tst\tst.png"}
> asciidoc: image_test.txt: line 7: shelling: 
> C:\bin\python-2.7.6-64\python.exe -u -c "import mimetypes,base64,sys; print 
> 'src=\"dat
> a:'+mimetypes.guess_type(r'tst.png')[0]+';base64,'; 
> base64.encode(sys.stdin,sys.stdout)" < C:\tst\tst.png > c:\users\will\appd
> ata\local\temp\tmpzlzbjt
> src="data:image/png;base64,
>
>
> *Second way to reproduce*
>
> I also found the same issue outside of AsciiDoc, so I guess it is actually 
> a Python problem.  I use a basic text file with a few lines in it.
>
> At the command line I run the following command successfully:
>
> C:\tst>python -u -c "import sys; print 'foobar:'; print 
> sys.stdin.readlines()" < "test.txt"
> foobar:
> ['foo\r\n', 'bar\r\n', 'baz']
>
> However, including an escaped quote hangs:
>
> C:\tst>python -u -c "import sys; print 'foobar:\"'; print 
> sys.stdin.readlines()" < "test.txt"
> foobar:"
>
> It only happens when trying to read from stdin though, as the following 
> command works:
>
> C:\tst>python -u -c "import sys; print 'foobar:\"'; print sys.stdin.mode" 
> < "test.txt"
> foobar:"
> r
>
>
> Cheers,
> Will
>

-- 
You received this message because you are subscribed to the Google Groups 
"asciidoc" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/asciidoc.
For more options, visit https://groups.google.com/d/optout.

Reply via email to