me
/
guix
Archived
1
0
Fork 0

gnu: Add markdeep.

* gnu packages/documentation.scm (markdeep): New variable.

Change-Id: I34303377f50740ba357c1bb299c9434079a6e23d
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
master
Christina O'Donnell 2024-04-03 23:46:32 +01:00 committed by Ludovic Courtès
parent cba4c9f161
commit 8b65da6ac8
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 68 additions and 0 deletions

View File

@ -37,6 +37,7 @@
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
@ -57,11 +58,13 @@
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages javascript)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages qt)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages uglifyjs)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg))
@ -453,3 +456,68 @@ the Net to search for documents which are not on the local system.")
(description "Zeal is a simple offline documentation browser
inspired by Dash.")
(license license:gpl3+))))
(define-public markdeep
(package
(name "markdeep")
(version "1.16")
(home-page "https://casual-effects.com/markdeep/")
(source
(origin (method git-fetch)
(uri (git-reference
(url "https://github.com/morgan3d/markdeep")
(commit (string-append "v0" version))))
(sha256
(base32 "05bvw3993xh1260ckclwk4jw38hvgiff0b2940ryhbhz0p1k41l8"))))
(build-system copy-build-system)
(arguments
(list #:modules '((guix build utils)
(guix build copy-build-system)
(ice-9 popen))
#:install-plan ''(("." "/share/markdeep/"))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-urls
(lambda _
(for-each (lambda (filename)
(substitute* filename
;; Don't include a reference to the remote version.
(("<script src=\"https://casual-effects\\.com/\
markdeep/latest/markdeep\\.min\\.js\\?\"></script>")
"")
(("MATHJAX_URL = .*$")
;; Use our local copy of mathjax
(string-append "MATHJAX_URL = 'file://" #$js-mathjax
"/share/javascript/es5/tex-mml-chtml.js'"))))
(find-files "." (lambda (file stat)
(string-suffix? ".js" file))))))
(add-before 'install 'minify
(lambda _
(for-each (lambda (filename)
(let ((minified-filename
(string-append
(string-drop-right filename 3)
".min.js")))
(format #t "~a -> ~a~%" filename minified-filename)
(let ((minified (open-pipe* OPEN_READ
"uglifyjs" filename)))
(call-with-output-file minified-filename
(lambda (port)
(dump-port minified port)))
(let ((exit (close-pipe minified)))
(unless (zero? exit)
(error "uglifyjs failed" exit))))))
(find-files "latest"
(lambda (path stat)
(and (string-suffix? ".js" path)
(not (string-suffix? ".min.js"
path)))))))))))
(inputs (list js-mathjax))
(native-inputs (list uglifyjs))
(synopsis "Tool for displaying markdown documents in a web-browser")
(description "Markdeep is a technology for writing plain text documents that can
be displayed in any web browser, whether local or remote. It supports diagrams,
calendars, equations, and other features as extensions of Markdown syntax.")
(license license:bsd-2)))