diff options
Diffstat (limited to 'gn/packages/javascript.scm')
| -rw-r--r-- | gn/packages/javascript.scm | 153 |
1 files changed, 95 insertions, 58 deletions
diff --git a/gn/packages/javascript.scm b/gn/packages/javascript.scm index e4bf803..059999b 100644 --- a/gn/packages/javascript.scm +++ b/gn/packages/javascript.scm @@ -595,24 +595,29 @@ tables with minimal effort. This package comes with Bootstrap5 integration (source (origin (method url-fetch) - (uri (string-append "https://cdn.jsdelivr.net/npm/xterm@" version - "/lib/xterm.min.js")) - (file-name (string-append "xterm.min" version ".js")) + (uri + (string-append "https://registry.npmjs.org/xterm/-/xterm-" + version + ".tgz")) (sha256 - (base32 "0pb5f3rjbpg7zz1zkd72vkwsma3pnj07mq46jj95yghy48dx67gw")))) - (build-system trivial-build-system) + (base32 "11db21afvny4m8ar40jpbc5wb5kgx4wqcbha0w2ixbr8p1l82lhz")))) + (build-system minify-build-system) (arguments - `(#:modules ((guix build utils)) - #:builder (begin - (use-modules (guix build utils)) - (let* ((out (assoc-ref %outputs "out")) - (targetdir (string-append - out - "/share/genenetwork2/javascript/xterm")) - (source (assoc-ref %build-inputs "source"))) - (mkdir-p targetdir) - (copy-file source - (string-append targetdir "/xterm.min.js")))))) + `(#:phases + (modify-phases %standard-phases + (delete 'build) ; xterm.js is already minified + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + ;; copy the minified files + (let* ((source (getcwd)) + (out (assoc-ref outputs "out")) + (js (string-append out "/share/genenetwork2/javascript/xterm"))) + (mkdir-p js) + (for-each + (lambda (filename) + (install-file filename js)) + (append + (find-files (string-append source "/lib")))))))))) (native-inputs `(("source" ,source))) (home-page "https://xtermjs.org/") (synopsis @@ -629,23 +634,37 @@ tables with minimal effort. This package comes with Bootstrap5 integration (source (origin (method url-fetch) - (uri (string-append "https://cdn.jsdelivr.net/npm/xterm@" version - "/css/xterm.min.css")) - (file-name (string-append "xterm.min" version ".css")) + (uri + (string-append "https://registry.npmjs.org/xterm/-/xterm-" + version + ".tgz")) (sha256 - (base32 "0qhfll6g9vfamicw6kccmdgzrz6m7jz97whydwbzj10qsyv8npr7")))) + (base32 "11db21afvny4m8ar40jpbc5wb5kgx4wqcbha0w2ixbr8p1l82lhz")))) + (build-system minify-build-system) (arguments - `(#:modules ((guix build utils)) - #:builder (begin - (use-modules (guix build utils)) - (let* ((out (assoc-ref %outputs "out")) - (targetdir (string-append - out - "/share/genenetwork2/javascript/xterm")) - (source (assoc-ref %build-inputs "source"))) - (mkdir-p targetdir) - (copy-file source - (string-append targetdir "/xterm.min.css")))))) + `(#:javascript-files (list "css/xterm.css") + #:phases + (modify-phases %standard-phases + (add-before 'install 'rename-minified-css + (lambda* _ + (for-each + (lambda (file) + (let* ((path-length (string-length file)) + (ext-length (string-length ".css.min.js"))) + (copy-recursively file + (string-replace file ".min.css" (- path-length ext-length))))) + (find-files (string-append (getcwd) "/guix/build") + "\\.css\\.min\\.js$")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (js (string-append out "/share/genenetwork2/javascript/xterm"))) + (mkdir-p js) + (for-each + (lambda (file) + (install-file file js)) + (find-files (string-append (getcwd) "/guix/build") + "\\.min\\.css$")))))))) (native-inputs `(("source" ,source))) (synopsis "Style sheets for xtermjs") (description "Style sheets for xtermjs") @@ -2224,35 +2243,53 @@ vector graphics.") "A low-level markdown compiler for parsing markdown without caching or blocking for long periods of time.") (license license:expat))) + (define-public javascript-marked-highlight (package - (name "javascript-marked-highlight") - (version "2.0.6") - (source - (origin - (method url-fetch) - (uri (string-append "https://cdn.jsdelivr.net/npm/marked-highlight@" version "/lib/index.umd.min.js")) - (sha256 - (base32 - "087qcy77fm3r7dl6w0mxsqygmdpimrmksw78r4wkkkjdx9x9dshf")))) - (build-system trivial-build-system) - (arguments - `(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils)) - (let* ((out (assoc-ref %outputs "out")) - (targetdir - (string-append out "/share/genenetwork2/javascript/marked")) - (source (assoc-ref %build-inputs "source"))) - (mkdir-p targetdir) - (copy-file source (string-append targetdir "/marked-highlight.js")))))) - (native-inputs `(("source" ,source))) - (home-page "https://github.com/markedjs/marked-highlight") - (synopsis "Highlight code blocks.") - (description - "Add code highlighting to marked.") - (license license:expat))) + (name "javascript-marked-highlight") + (version "2.0.6") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/markedjs/marked-highlight/archive/refs/tags/v" + version ".tar.gz")) + (sha256 + (base32 "14pvaknic0pwh1ll7i0z66mi2gviww35palmk03xidyywlbvwklr")))) + (build-system minify-build-system) + (arguments + `(#:javascript-files (list "src/index.js") + #:phases (modify-phases %standard-phases + (add-before 'install 'rename-minified-js + (lambda* _ + (for-each (lambda (file) + ;; rename to "marked-highlight.js" + (copy-recursively file + (string-append (dirname + file) + "/marked-highlight.js"))) + (find-files (string-append (getcwd) + "/guix/build") + "\\.min\\.js$")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (use-modules (guix build utils)) + (let* ((out (assoc-ref outputs "out")) + (targetdir (string-append out + "/share/genenetwork2/javascript/marked"))) + (mkdir-p targetdir) + (for-each (lambda (file) + (install-file file targetdir)) + (find-files (string-append (getcwd) + "/guix/build") + "marked-highlight\\.js$")))))))) + (home-page "https://github.com/markedjs/marked-highlight") + (synopsis "Code highlighting extension for Marked") + (description + "This package provides a plugin for the Marked Markdown parser that adds +syntax highlighting support for fenced code blocks.") + (license license:expat))) + (define-public javascript-ace (package |
