Where is the Image?
Published: 2022-10-05
This is an annoying situation: You have written a new article with the help of AsciiDoc3 - say article.txt -, and compile it
test@testpc:~$ asciidoc3 article.txt test@testpc:~$
Everything seems to be ok, no error. But when you check the output article.html with your browser, an image is missing. The place is emtpy or only the caption shows up. In deed - till now - AsciiDoc3 gives you no hint what went wrong. Perhaps you can find a solution in the source code of article.html but this may be a little tricky.
To find a better and quicker solution we added a little function to asciidoc3.py which may help. Start asciidoc3 with option verbose:
test@testpc:~$ asciidoc3 -v article.txt test@testpc:~$ asciidoc3: <more lines of messages> test@testpc:~$ asciidoc3: test.txt: line 15: WARNING! It seems there is no image at /home/user/asciidoc3/images/redsuare.jpg! test@testpc:~$
So you see a warning and can check the path and the spelling of your image file. Hope that helps.
Keywords: Image Path Not Found AsciiDoc3 Asciidoc
AsciiDoc3 and Python3 on Mac
Published: 2022-05-09
"Apple will no longer bundle Python 2.7 with macOS 12.3 . . ." says https://www.macrumors.com/2022/01/28/apple-removing-python-2-in-macos-12-3/
That implies there is no Python at all on a brand new Mac any more, since Apple’s OS ships no Python 3 too. The missing Python2 is ok, but we need Python3 to run AsciiDoc3. Let’s see how we can fix this.
I show to you a walkthrough on my iMac-Pro (BigSur), my user name is abc. We have to go these steps:
-
Install Python3 (if not present, of course),
-
Create a python3-virtual environment where AsciiDoc3 will live in (the recommended way to install AsciiDoc3),
-
Install Asciidoc3 via pip in this virtual environment (producing html is ok),
-
Install FOP to produce PDFs
These steps are very similar described here: 2.1. Recommended: AsciiDoc3 and venv
abc@abcs-iMac-Pro ~ % python WARNING: Python 2.7 is not recommended. This version is included in macOS for compatibility with legacy software. Future versions of macOS will not include Python 2.7. Instead, it is recommended that you transition to using 'python3' from within Terminal. Python 2.7.16 (default, Sep 6 2021, 07:39:44) [GCC Apple LLVM 12.0.5 (clang-1205.0.19.59.6) [+internal-os, ptrauth-isa=deploy on darwin Type "help", "copyright", "credits" or "license" for more information. >>> exit()
On newer versions you see something like
»the python command requires the command line developer tools«
or
abc@abcs-iMac-Pro ~ % python3 xcode-select: note: no developer tools were found at '/Applications/Xcode.app', requesting install. Choose an option in the dialog to download the command line developer tools.
So please install Python3 the Xcode.app route or go to the Python3 download: (python-3.10.4-macos11.pkg)
https://www.python.org/downloads/release/python-3104/+
If everything goes right, you see:
abc@abcs-iMac-Pro ~ % python3 Python 3.8.2 (default, Jun 8 2021, 11:59:35) [Clang 12.0.5 (clang-1205.0.22.11)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> exit()
From now on we go the same way as decribed here:
abc@abcs-iMac-Pro ~ % python3 -m venv ad3 abc@abcs-iMac-Pro ~ % ls Desktop Documents Downloads Library Movies Music Pictures Public ad3 abc@abcs-iMac-Pro ~ % cd ad3 abc@abcs-iMac-Pro ad3 % ls bin include lib pyvenv.cfg abc@abcs-iMac-Pro ad3 % source bin/activate (ad3) abc@abcs-iMac-Pro ad3 % pip3 install wheel Collecting wheel Downloading https://files.pythonhosted.org/packages/27/d6/003e593296a85fd6ed616ed962795b2f87709c3eee2bca4f6d0fe55c6d00/wheel-0.37.1-py2.py3-none-any.whl Installing collected packages: wheel Successfully installed wheel-0.37.1 WARNING: You are using pip version 19.2.3, however version 22.0.4 is available. You should consider upgrading via the 'pip install --upgrade pip' command. (ad3) abc@abcs-iMac-Pro ad3 % pip3 install --upgrade pip Collecting pip Downloading https://files.pythonhosted.org/packages/4d/16/0a14ca596f30316efd412a60bdfac02a7259bf8673d4d917dc60b9a21812/pip-22.0.4-py3-none-any.whl (2.1MB) |████████████████████████████████| 2.1MB 2.2MB/s Installing collected packages: pip Found existing installation: pip 19.2.3 Uninstalling pip-19.2.3: Successfully uninstalled pip-19.2.3 Successfully installed pip-22.0.4 (ad3) abc@abcs-iMac-Pro ad3 % pip install asciidoc3 Collecting asciidoc3 Downloading asciidoc3-3.2.3-py3-none-any.whl (913 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 913.5/913.5 KB 2.9 MB/s eta 0:00:00 Installing collected packages: asciidoc3 Successfully installed asciidoc3-3.2.3 (ad3) abc@abcs-iMac-Pro ad3 % asciidoc3 asciidoc3: no help topics found (ad3) abc@abcs-iMac-Pro ad3 % asciidoc3_postinstall <see annotation 1. below> (ad3) abc@abcs-iMac-Pro ad3 % cd .. (ad3) abc@abcs-iMac-Pro ~ % ls Desktop Documents Downloads Library Movies Music Pictures Public ad3 asciidoc3 (ad3) abc@abcs-iMac-Pro ~ % ls -al total 48 drwxr-xr-x+ 19 abc staff 608 Apr 28 12:59 . drwxr-xr-x 5 root admin 160 Apr 26 09:14 .. (more lines) drwxr-xr-x+ 4 abc staff 128 Apr 26 09:14 Public drwxr-xr-x 6 abc staff 192 Apr 28 12:52 ad3 lrwxr-xr-x 1 abc staff 52 Apr 28 12:59 asciidoc3 -> /Users/abc/ad3/lib/python3.8/site-packages/asciidoc3 (ad3) abc@abcs-iMac-Pro ~ % cd asciidoc3 (ad3) abc@abcs-iMac-Pro asciidoc3 % ls -al total 1352 drwxr-xr-x 53 abc staff 1696 Apr 28 12:56 . drwxr-xr-x 13 abc staff 416 Apr 28 12:56 .. -rw-r--r-- 1 abc staff 1571 Apr 28 12:56 BUGS.txt -rw-r--r-- 1 abc staff 3766 Apr 28 12:56 CHANGELOG -rw-r--r-- 1 abc staff 3766 Apr 28 12:56 CHANGELOG.txt (more lines) drwxr-xr-x 4 abc staff 128 Apr 28 12:56 themes drwxr-xr-x 4 abc staff 128 Apr 28 12:56 vim -rw-r--r-- 1 abc staff 22638 Apr 28 12:56 xhtml11.conf (ad3) abc@abcs-iMac-Pro asciidoc3 % cd doc (ad3) abc@abcs-iMac-Pro doc % ls -al total 992 drwxr-xr-x 37 abc staff 1184 Apr 28 12:59 . drwxr-xr-x 53 abc staff 1696 Apr 28 12:56 .. -rw-r--r-- 1 abc staff 4917 Apr 28 12:56 a2x3.1.gz -rw-r--r-- 1 abc staff 11932 Apr 28 12:56 a2x3.1.txt (more lines) -rw-r--r-- 1 abc staff 8590 Apr 28 12:56 source-highlight-filter.txt -rw-r--r-- 1 abc staff 1041 Apr 28 12:56 test.txt -rw-r--r-- 1 abc staff 231103 Apr 28 12:56 userguide.txt (ad3) abc@abcs-iMac-Pro doc % asciidoc3 -a toc -a icons -n -v test.txt asciidoc3: reading: /Users/abc/.asciidoc3/asciidoc3.conf asciidoc3: Entering "update_input-encoding()" with file: /Users/abc/.asciidoc3/asciidoc3.conf asciidoc3: input-encoding updated as in /Users/abc/.asciidoc3/asciidoc3.conf: utf-8 asciidoc3: Entering "update/fix input-errors": /Users/abc/.asciidoc3/asciidoc3.conf (more lines) asciidoc3: test.txt: line 1: Entering "update/fix output-errors" with input-file: /Users/abc/ad3/lib/python3.8/site-packages/asciidoc3/doc/asciidoc3.conf asciidoc3: writing: /Users/abc/ad3/lib/python3.8/site-packages/asciidoc3/doc/test.html asciidoc3: test.txt: line 1: evaluating: {template:toc} (ad3) abc@abcs-iMac-Pro doc % ls a2x3.1.gz asciidoc3.1.gz book-multi_docbook51.txt faq.txt latexmathml.txt slidy-example.txt a2x3.1.txt asciidoc3.1.txt book.txt images music-filter.txt slidy.txt article-docinfo.xml asciidoc3.conf book_containing_an_abstract.txt latex-backend.txt publishing-ebooks-with-asciidoc3.txt source-highlight-filter.txt article.txt asciidoc3api.txt cheatsheet.txt latex-bugs.txt quickstart.txt test.html article_docbook51-docinfo.xml asciimathml.txt customers.csv latex-filter.txt readme.txt test.txt article_docbook51.txt book-multi.txt epub-notes.txt latexmath.txt readme_docbook51.txt userguide.txt (ad3) abc@abcs-iMac-Pro doc % asciidoc3 -a toc -a icons -n -v userguide.txt asciidoc3: reading: /Users/abc/.asciidoc3/asciidoc3.conf (more lines) asciidoc3: userguide.txt: line 6248: evaluating: {counter:appendix-number:A} <see annotation 2. below> (ad3) abc@abcs-iMac-Pro doc %
Ann. 1: Do not forget to run asciidoc3_postinstall
Ann. 2: You’ll find the computes HTMLs in directory asciidoc3/doc
Do not forget to activate the Python3-venv source bin/activate when you start with AsciiDoc3 and deactivate when ending.
To produce a good-looking pdf we need dblatex and/or FOP: FOP ist recommended since dblatex is very tricky.
We use Homebrew:
abc@abcs-iMac-Pro ~ % /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ==> Checking for `sudo` access (which may request your password)... Password: ==> This script will install: /usr/local/bin/brew /usr/local/share/doc/homebrew ... /usr/local/Frameworks Press RETURN/ENTER to continue or any other key to abort: ==> /usr/bin/sudo /bin/mkdir -p /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/sbin /usr/local/share /usr/local/var /usr/local/opt /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew /usr/local/var/homebrew/linked /usr/local/Cellar /usr/local/Caskroom /usr/local/Frameworks ... * [new branch] dependabot/bundler/Library/Homebrew/sorbet-0.5.9903 -> origin/dependabot/bundler/Library/Homebrew/sorbet-0.5.9903 * [new branch] master -> origin/master * [new tag] 0.1 -> 0.1 * [new tag] 0.2 -> 0.2 * [new tag] 0.3 -> 0.3 ... * [new tag] 3.4.8 -> 3.4.8 * [new tag] 3.4.9 -> 3.4.9 Updating files: 100% (2776/2776), done. ... ==> Pouring portable-ruby-2.6.8.yosemite.bottle.tar.gz ==> Installation successful! ==> Homebrew has enabled anonymous aggregate formulae and cask analytics. Read the analytics documentation (and how to opt-out) here: https://docs.brew.sh/Analytics No analytics data has been sent yet (nor will any be during this install run). ... abc@abcs-iMac-Pro ~ % brew analytics off abc@abcs-iMac-Pro ~ % brew update Already up-to-date. abc@abcs-iMac-Pro ~ % brew install fop Running `brew update --preinstall`... ==> Downloading https://ghcr.io/v2/homebrew/core/openjdk/manifests/18.0.1 ... ==> Installing fop ==> Pouring fop--2.7.all.bottle.tar.gz 🍺 /usr/local/Cellar/fop/2.7: 4,029 files, 100.5MB ==> Running `brew cleanup fop`... Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP. Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`). abc@abcs-iMac-Pro ~ % fop FOP Version 2.7 USAGE fop [options] [-fo|-xml] infile [-xsl file] [-awt|-pdf|-mif|-rtf|-tiff|-png|-pcl|-ps|-txt|-at [mime]|-print] <outfile> [OPTIONS] -version print FOP version and exit ... -foout outfile input will only be XSL transformed. The intermediate
And from now on we can produce PDFs:
abc@abcs-iMac-Pro ~ % cd ad3 abc@abcs-iMac-Pro ad3 % source bin/activate (ad3) abc@abcs-iMac-Pro ad3 % cd .. (ad3) abc@abcs-iMac-Pro ~ % cd asciidoc3 (ad3) abc@abcs-iMac-Pro asciidoc3 % cd doc (ad3) abc@abcs-iMac-Pro doc % asciidoc3 -n -a icons -a toc userguide.txt (ad3) abc@abcs-iMac-Pro doc % a2x3 -v -f pdf --fop userguide.txt a2x3: args: ['-v', '-f', 'pdf', '--fop', 'userguide.txt'] a2x3: resource files: [] ... asciidoc3: userguide.txt: line 3232: reading: /Users/abc/ad3/lib/python3.8/site-packages/asciidoc3/doc/customers.csv a2x3: executing: "xmllint" --nonet --noout --valid "/Users/abc/ad3/lib/python3.8/site-packages/asciidoc3/doc/userguide.xml" I/O error : Attempt to load network entity http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd /Users/abc/ad3/lib/python3.8/site-packages/asciidoc3/doc/userguide.xml:2: warning: failed to load external entity "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" D DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" ^ /Users/abc/ad3/lib/python3.8/site-packages/asciidoc3/doc/userguide.xml:6: validity error : Validation failed: no DTD found ! <article lang="en"> ^ a2x3: ERROR: "xmllint" --nonet --noout --valid "/Users/abc/ad3/lib/python3.8/site-packages/asciidoc3/doc/userguide.xml" returned non-zero exit status 4
Use option --no-xmllint
(ad3) abc@abcs-iMac-Pro doc % a2x3 -v -f pdf --fop --no-xmllint userguide.txt a2x3: args: ['-v', '-f', 'pdf', '--fop', '--no-xmllint', 'userguide.txt'] a2x3: resource files: [] a2x3: resource directories: ['/Users/abc/ad3/lib/python3.8/site-packages/asciidoc3/images', '/Users/abc/ad3/lib/python3.8/site-packages/asciidoc3/stylesheets'] a2x3: executing: "/Users/abc/ad3/lib/python3.8/site-packages/asciidoc3/asciidoc3.py" --backend docbook -a "a2x3-format=pdf" --verbose --out-file "/Users/abc/ad3/lib/python3.8/site-packages/asciidoc3/doc/userguide.xml" "/Users/abc/ad3/lib/python3.8/site-packages/asciidoc3/doc/userguide.txt" asciidoc3: reading: /Users/abc/ad3/lib/python3.8/site-packages/asciidoc3/asciidoc3.conf ... asciidoc3: userguide.txt: line 3232: reading: /Users/abc/ad3/lib/python3.8/site-packages/asciidoc3/doc/customers.csv a2x3: chdir /Users/abc/ad3/lib/python3.8/site-packages/asciidoc3/doc a2x3: executing: "xsltproc" --stringparam callout.graphics 0 --stringparam navig.graphics 0 --stringparam admon.textlabel 1 --stringparam admon.graphics 0 --output "/Users/abc/ad3/lib/python3.8/site-packages/asciidoc3/doc/userguide.fo" "/Users/abc/ad3/lib/python3.8/site-packages/asciidoc3/docbook-xsl/fo.xsl" "/Users/abc/ad3/lib/python3.8/site-packages/asciidoc3/doc/userguide.xml" Making portrait pages on A4 paper (210mmx297mm) a2x3: chdir /Users/abc/ad3/lib/python3.8/site-packages/asciidoc3/doc a2x3: executing: "fop" -fo "/Users/abc/ad3/lib/python3.8/site-packages/asciidoc3/doc/userguide.fo" -pdf "/Users/abc/ad3/lib/python3.8/site-packages/asciidoc3/doc/userguide.pdf" May 01, 2022 9:42:00 AM org.apache.fop.fo.properties.PropertyMaker make ... May 01, 2022 9:42:05 AM org.apache.fop.events.LoggingEventListener processEvent INFO: Rendered page #111. May 01, 2022 9:42:05 AM org.apache.fop.events.LoggingEventListener processEvent INFO: Rendered page #112. a2x3: deleting /Users/abc/ad3/lib/python3.8/site-packages/asciidoc3/doc/userguide.fo a2x3: deleting /Users/abc/ad3/lib/python3.8/site-packages/asciidoc3/doc/userguide.xml (ad3) abc@abcs-iMac-Pro doc % (ad3) abc@abcs-iMac-Pro doc % deactivate abc@abcs-iMac-Pro doc %
Find the PDF in directory asciidoc3/doc!
Keywords: MacOS BigSur Catalina AsciiDoc3 Asciidoc Python3 FOP
AsciiDoc3: Pure Python3 Power
Published: 2022-01-11
AsciiDoc3 is of course written in Python3 - at the time of writing you need 3.7 or higher.
To use all the features of AsciiDoc3 you need a bunch of third-party tools like Apache’s FOP, GNU-highlight, lxml and so on … And perhaps Python software like dblatex and lilypond?
But be careful, these two have shown a little delay in terms of migrating from Python2 to Python3: Ubuntu LTS 20.04 still runs with versions which depend on Python2.7.
But these times are gone, in the meantime all stuff was migrated to Python3. You can run everything around AsciiDoc3 without the outdated Python2.7.
Keywords: AsciiDoc3 Python3 Dependencies