gnu: Add latexml.

* gnu/packages/markup.scm (latexml): New variable.

Reviewed-by: Steve George <steve@futurile.net>

Change-Id: If7199a8b74b990ad29718adcb905a5ed31882cf5
Signed-off-by: Christopher Baines <mail@cbaines.net>
This commit is contained in:
Nicolas Graves via Guix-patches via 2024-04-11 23:10:40 +01:00 committed by Christopher Baines
parent 6feab2a48c
commit 6a6dde5058
No known key found for this signature in database
GPG key ID: 5E28A33B0B84F577

View file

@ -12,6 +12,7 @@
;;; Copyright © 2022 jgart <jgart@dismail.de>
;;; Copyright © 2022, 2024 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -44,15 +45,21 @@ (define-module (gnu packages markup)
#:use-module (guix gexp)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
#:use-module (gnu packages libffi)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages perl-compression)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages web))
#:use-module (gnu packages tex)
#:use-module (gnu packages web)
#:use-module (gnu packages xml))
(define-public hoedown
(package
@ -126,6 +133,114 @@ (define-public markdown
(license (license:non-copyleft "file://License.text"
"See License.text in the distribution."))))
(define-public latexml
(package
(name "latexml")
(version "0.8.8")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/brucemiller/LaTeXML")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0lppm66fxadsbn73xh0nfqdi4y6d9j6xph1slvlp6ynrfbnn5p6s"))))
(build-system perl-build-system)
(arguments
(let ((wraplibs
(list "perl-archive-zip"
"perl-common-sense"
"perl-db-file"
"perl-encode-locale"
"perl-file-which"
"perl-getopt-long"
"perl-http-date"
"perl-http-message"
"perl-image-magick"
"perl-image-size"
"perl-io-string"
"perl-json-xs"
"perl-libwww"
"perl-mime-base64"
"perl-parse-recdescent"
"perl-pod-parser"
"perl-text-unidecode"
"perl-time-hires"
"perl-try-tiny"
"perl-types-serialiser"
"perl-uri"
"perl-xml-libxml"
"perl-xml-libxslt"
"perl-xml-sax-base")))
(list
;; some tests skip due to missing dependencies
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'find-itself
;; Fix run-time 'Can't locate [].pm in @INC' failure and remove
;; need for extensive set of propagated inputs
(lambda* (#:key inputs outputs #:allow-other-keys)
(with-directory-excursion (string-append #$output "/bin")
(for-each
(lambda* (program)
(wrap-program program
`("PERL5LIB" ":" prefix
(,(string-append #$output "/lib/perl5/site_perl")
,#$@(map (lambda (in)
(file-append
(this-package-input in) "/lib/perl5/site_perl"))
wraplibs)))))
(find-files "." ".*")))))))))
(inputs
(list bash-minimal
libxml2
libxslt
perl
perl-archive-zip
perl-common-sense
perl-db-file
perl-encode-locale
perl-file-which
perl-getopt-long
perl-http-date
perl-http-message
perl-image-magick
perl-image-size
perl-io-string
perl-json-xs
perl-libwww
perl-mime-base64
perl-parse-recdescent
perl-pod-parser
perl-text-unidecode
perl-time-hires
perl-try-tiny
perl-types-serialiser
perl-uri
perl-xml-libxml
perl-xml-libxslt
perl-xml-sax-base))
(native-inputs
(list texlive-bin
perl-test-more-utf8
perl-extutils-manifest
perl-data-dumper
perl-ipc-run3
perl-file-temp))
(home-page "https://math.nist.gov/~BMiller/LaTeXML/")
(synopsis "LaTeX to XML, HTML, MathML, epub and Jats converter")
(description "This package provides a LaTeX converter, with the following goals:
@itemize
@item Faithful emulation of TEXs behaviour;
@item Easily extensible;
@item Lossless, preserving both semantic and presentation cues;
@item Use an abstract LATEX-like, extensible, document type;
@item Infer the semantics of mathematical content
@end itemize")
(license license:cc0)))
(define-public lowdown
(package
(name "lowdown")