Plantuml seems to be in trouble when using with asciido and html5 backend with an output and :data-uri: directive

0 votes
asked Mar 10, 2014 in To be sorted by anonymous

Hi,

I'm using a simple example to reproduce :

// -*- adoc -*-
Titre de la documentation
=========================
// Permet l'intégration des images dans les fichier HTML générés
:data-uri:

== Description ==

["plantuml"]
----------
truc -> machin: POST /position
activate machin #FFBBBB

machin -> bidule: (file) => Position(lat, long, date, ...)

machin -> truc: Ok !
deactivate machin
----------
 

Output with html4 : (note the -o option)

asciidoc -v -b html4 -o  /tmp/test.html testPlantum.asciidoc
asciidoc: reading: /etc/asciidoc/asciidoc.conf
asciidoc: reading: /etc/asciidoc/asciidoc.conf
asciidoc: reading: /home/william/Projets/documents/projets/MPA/testPlantum.asciidoc
asciidoc: reading: /etc/asciidoc/html4.conf
asciidoc: reading: /etc/asciidoc/filters/source/source-highlight-filter.conf
asciidoc: reading: /etc/asciidoc/filters/music/music-filter.conf
asciidoc: reading: /etc/asciidoc/filters/code/code-filter.conf
asciidoc: reading: /etc/asciidoc/filters/latex/latex-filter.conf
asciidoc: reading: /etc/asciidoc/filters/graphviz/graphviz-filter.conf
asciidoc: reading: /home/william/.asciidoc/filters/plantuml/plantuml-filter.conf
asciidoc: reading: /etc/asciidoc/lang-en.conf
asciidoc: writing: /tmp/test.html
asciidoc: testPlantum.asciidoc: line 10: evaluating: {counter2:target-number}
asciidoc: testPlantum.asciidoc: line 10: evaluating: {set2:target:testPlantum__1.png}
asciidoc: testPlantum.asciidoc: line 17: filtering: "/usr/bin/python" "/home/william/.asciidoc/filters/plantuml/acplantuml.py" -v -o "/tmp/testPlantum__1.png" -F png -
Execute: java -jar /home/william/.asciidoc/filters/plantuml/plantuml.jar -Tpng -quiet "/tmp/testPlantum__1.txt" > "/tmp/testPlantum__1.png"

 

with html5 :

asciidoc -v -b html5 -o  /tmp/test.html testPlantum.asciidoc
asciidoc: reading: /etc/asciidoc/asciidoc.conf
asciidoc: reading: /etc/asciidoc/asciidoc.conf
asciidoc: reading: /home/william/Projets/documents/projets/MPA/testPlantum.asciidoc
asciidoc: reading: /etc/asciidoc/html5.conf
asciidoc: include1: /etc/asciidoc/stylesheets/asciidoc.css
asciidoc: include1: /etc/asciidoc/javascripts/asciidoc.js
asciidoc: reading: /etc/asciidoc/filters/source/source-highlight-filter.conf
asciidoc: reading: /etc/asciidoc/filters/music/music-filter.conf
asciidoc: reading: /etc/asciidoc/filters/code/code-filter.conf
asciidoc: reading: /etc/asciidoc/filters/latex/latex-filter.conf
asciidoc: reading: /etc/asciidoc/filters/graphviz/graphviz-filter.conf
asciidoc: reading: /home/william/.asciidoc/filters/plantuml/plantuml-filter.conf
asciidoc: reading: /etc/asciidoc/lang-en.conf
asciidoc: writing: /tmp/test.html
asciidoc: testPlantum.asciidoc: line 10: evaluating: {counter2:target-number}
asciidoc: testPlantum.asciidoc: line 10: evaluating: {set2:target:testPlantum__1.png}
asciidoc: testPlantum.asciidoc: line 17: filtering: "/usr/bin/python" "/home/william/.asciidoc/filters/plantuml/acplantuml.py" -v -o "/tmp/testPlantum__1.png" -F png -
Execute: java -jar /home/william/.asciidoc/filters/plantuml/plantuml.jar -Tpng -quiet "/tmp/testPlantum__1.txt" > "/tmp/testPlantum__1.png"
asciidoc: testPlantum.asciidoc: line 17: evaluating: {eval:os.path.splitext(r'testPlantum__1.png')[1][1:]}
asciidoc: testPlantum.asciidoc: line 17: evaluating: {eval:os.path.join(r"/home/william/Projets/documents/projets/MPA",r"",r"testPlantum__1.png")}
asciidoc: testPlantum.asciidoc: line 17: evaluating: {sys:"/usr/bin/python" -u -c "import base64,sys; base64.encode(sys.stdin,sys.stdout)" < "/home/william/Projets/documents/projets/MPA/testPlantum__1.png"}
asciidoc: testPlantum.asciidoc: line 17: shelling: "/usr/bin/python" -u -c "import base64,sys; base64.encode(sys.stdin,sys.stdout)" < "/home/william/Projets/documents/projets/MPA/testPlantum__1.png" > "/tmp/tmpFUQ1tA"
sh: 1: cannot open /home/william/Projets/documents/projets/MPA/testPlantum__1.png: No such file
asciidoc: WARNING: testPlantum.asciidoc: line 17: {sys:"/usr/bin/python" -u -c "import base64,sys; base64.encode(sys.stdin,sys.stdout)" < "/home/william/Projets/documents/projets/MPA/testPlantum__1.png"}: non-zero exit status
 

if I remove the :data-uri: all works fine

1 Answer

0 votes
answered Mar 10, 2014 by plantuml (295,000 points)

Hello,

Would it be possible for you to intercept the file "/tmp/testPlantum__1.txt" ?

Our guess is that this file has an issue with the "html5" option.
It would also be nice if you could change the -quiet flag to -verbose in the following command line:

Execute: java -jar /home/william/.asciidoc/filters/plantuml/plantuml.jar -Tpng -quiet "/tmp/testPlantum__1.txt" > "/tmp/testPlantum__1.png"
 

And then put here again the output log.
Thanks,
 

commented Mar 10, 2014 by anonymous
Yes but.. how to intercept the file ? it's too quickly for me :-/
Is there and option to keep intermediate files ?
commented Mar 10, 2014 by anonymous
asciidoc: testPlantum.asciidoc: line 10: evaluating: {counter2:target-number}
asciidoc: testPlantum.asciidoc: line 10: evaluating: {set2:target:testPlantum__1.png}
asciidoc: testPlantum.asciidoc: line 17: filtering: "/usr/bin/python" "/home/william/.asciidoc/filters/plantuml/acplantuml.py" -v -o "/tmp/testPlantum__1.png" -F png -
Execute: java -jar /home/william/.asciidoc/filters/plantuml/plantuml.jar -Tpng -verbose "/tmp/testPlantum__1.txt" > "/tmp/testPlantum__1.png"
asciidoc: testPlantum.asciidoc: line 17: evaluating: {eval:os.path.splitext(r'testPlantum__1.png')[1][1:]}
asciidoc: testPlantum.asciidoc: line 17: evaluating: {eval:os.path.join(r"/home/william/Projets/documents/projets/MPA",r"",r"testPlantum__1.png")}
asciidoc: testPlantum.asciidoc: line 17: evaluating: {sys:"/usr/bin/python" -u -c "import base64,sys; base64.encode(sys.stdin,sys.stdout)" < "/home/william/Projets/documents/projets/MPA/testPlantum__1.png"}
asciidoc: testPlantum.asciidoc: line 17: shelling: "/usr/bin/python" -u -c "import base64,sys; base64.encode(sys.stdin,sys.stdout)" < "/home/william/Projets/documents/projets/MPA/testPlantum__1.png" > "/tmp/tmpnKJ9rP"
sh: 1: cannot open /home/william/Projets/documents/projets/MPA/testPlantum__1.png: No such file
asciidoc: WARNING: testPlantum.asciidoc: line 17: {sys:"/usr/bin/python" -u -c "import base64,sys; base64.encode(sys.stdin,sys.stdout)" < "/home/william/Projets/documents/projets/MPA/testPlantum__1.png"}: non-zero exit status
commented Mar 10, 2014 by anonymous
cat /tmp/testPlantum__1.txt
@startuml
truc -> machin: POST /position
activate machin #FFBBBB

machin -> bidule: (file) => Position(lat, long, date, ...)

machin -> truc: Ok !
deactivate machin
@enduml%
commented Mar 10, 2014 by plantuml (295,000 points)
There is something weird, when you launch the following command:
asciidoc -v -b html5 -o  /tmp/test.html testPlantum.asciidoc

This trace:
Execute: java -jar /home/william/.asciidoc/filters/plantuml/plantuml.jar -Tpng -quiet "/tmp/testPlantum__1.txt" > "/tmp/testPlantum__1.png"

suggests that the file is created in /tmp (that is /tmp/testPlantum__1.png)

But the following traces:
base64.encode(sys.stdin,sys.stdout)" < "/home/william/Projets/documents/projets/MPA/testPlantum__1.png"}

means the file is expected in /home/william/Projets/doc
uments/projets/MPA

Could you double check if some file is actually created in /tmp ? (/tmp/testPlantum__1.png)
Thanks,
commented Mar 10, 2014 by anonymous
Yes,
ll /tmp/testPlantum__1.png
-rw-r--r-- 1 william william 6077 mars  10 14:39 /tmp/testPlantum__1.png

the html4 generate the file in my /home/william/Projets/documents... and all work fine.

the html5 generate the file in /tmp but failed after
commented Mar 10, 2014 by plantuml (295,000 points)
Could you give a try while creating a symbolic link:

ln -s /tmp/testPlantum__1.png /home/william/Projets/documents/projets/MPA/testPlantum__1.png

Then retest. We will see if the issue comes from this.
Thanks
...