homebrew-core/Formula/asciidoc.rb

72 lines
2.0 KiB
Ruby

class Asciidoc < Formula
include Language::Python::Shebang
desc "Formatter/translator for text files to numerous formats. Includes a2x"
homepage "https://asciidoc.org/"
url "https://github.com/asciidoc-py/asciidoc-py/archive/9.1.1.tar.gz"
sha256 "914dfc1542c30bd47faa0aaaae0985cb57d0ca584015729ccd1b94d90da3a616"
license "GPL-2.0-only"
head "https://github.com/asciidoc-py/asciidoc-py.git", branch: "main"
livecheck do
url :stable
regex(/^v?(\d+(?:\.\d+)+)$/i)
end
bottle do
sha256 cellar: :any_skip_relocation, all: "6a697842eca38197c1dbf98e0d4948d4712ca71ead18f2d47c31a9b333c68280"
end
depends_on "autoconf" => :build
depends_on "docbook-xsl" => :build
depends_on "docbook"
depends_on "python@3.9"
depends_on "source-highlight"
uses_from_macos "libxml2" => :build
uses_from_macos "libxslt" => :build
on_linux do
depends_on "xmlto" => :build
end
def install
ENV["XML_CATALOG_FILES"] = etc/"xml/catalog"
system "autoconf"
system "./configure", "--prefix=#{prefix}"
%w[
a2x.py asciidoc.py filters/code/code-filter.py
filters/graphviz/graphviz2png.py filters/latex/latex2img.py
filters/music/music2png.py filters/unwraplatex.py
].map { |f| rewrite_shebang detected_python_shebang, f }
# otherwise macOS's xmllint bails out
inreplace "Makefile", "-f manpage", "-f manpage -L"
system "make", "install"
system "make", "docs"
end
def caveats
<<~EOS
If you intend to process AsciiDoc files through an XML stage
(such as a2x for manpage generation) you need to add something
like:
export XML_CATALOG_FILES=#{etc}/xml/catalog
to your shell rc file so that xmllint can find AsciiDoc's
catalog files.
See `man 1 xmllint' for more.
EOS
end
test do
(testpath/"test.txt").write("== Hello World!")
system "#{bin}/asciidoc", "-b", "html5", "-o", "test.html", "test.txt"
assert_match %r{<h2 id="_hello_world">Hello World!</h2>}, File.read("test.html")
end
end