guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

05/16: gnu: Add markdeep.


From: guix-commits
Subject: 05/16: gnu: Add markdeep.
Date: Thu, 11 Apr 2024 06:56:36 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 8b65da6ac8ea5c0a5cb428e47b1bd8841ffef3fc
Author: Christina O'Donnell <cdo@mutix.org>
AuthorDate: Wed Apr 3 23:46:32 2024 +0100

    gnu: Add markdeep.
    
    * gnu packages/documentation.scm (markdeep): New variable.
    
    Change-Id: I34303377f50740ba357c1bb299c9434079a6e23d
    Signed-off-by: Ludovic Courtès <ludo@gnu.org>
---
 gnu/packages/documentation.scm | 68 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 68 insertions(+)

diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm
index 83c4313bd7..507a326f6e 100644
--- a/gnu/packages/documentation.scm
+++ b/gnu/packages/documentation.scm
@@ -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)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]