gnu: Add markdeep.
* gnu packages/documentation.scm (markdeep): New variable. Change-Id: I34303377f50740ba357c1bb299c9434079a6e23d Signed-off-by: Ludovic Courtès <ludo@gnu.org>master
parent
cba4c9f161
commit
8b65da6ac8
|
@ -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)))
|
||||
|
|
Reference in New Issue