diff options
| author | Nicolas Graves <ngraves@ngraves.fr> | 2025-10-04 15:06:40 +0200 |
|---|---|---|
| committer | Sharlatan Hellseher <sharlatanus@gmail.com> | 2025-10-28 21:01:58 +0000 |
| commit | 97922804161ee9d95680d891ad23f45a88bb6be9 (patch) | |
| tree | 9c716e09f306a231b8d8f798478eef75d04dce8a /gnu/packages/python-xyz.scm | |
| parent | 364c45bb20289a51a172dd22603b56e4e7152414 (diff) | |
gnu: python-mkdoc-material: Unbundle js-lunr-* packages.
* gnu/packages/python-xyz.scm (python-mkdocs-material)
[source]<snippet>: Unbundle js-lunr-* assets. Add a warning comment:
there are other unbundled minified assets!
[build-system]: Switch to pyproject-build-system.
[arguments]<#:tests?>: Disable them.
<#:phases>: Add phase 'inject-javascript-assets and
'replace-javascript-assets.
[native-inputs]: Add python-setuptools.
Change-Id: Ie04b8d2e885f549fe756a433f4beb16ef0053128
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Diffstat (limited to 'gnu/packages/python-xyz.scm')
| -rw-r--r-- | gnu/packages/python-xyz.scm | 75 |
1 files changed, 64 insertions, 11 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index dcdaa05f852..22820adda8d 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -243,6 +243,7 @@ #:use-module (gnu packages inkscape) #:use-module (gnu packages iso-codes) #:use-module (gnu packages java) + #:use-module (gnu packages javascript) #:use-module (gnu packages jupyter) #:use-module (gnu packages kerberos) #:use-module (gnu packages less) @@ -3498,18 +3499,70 @@ commits.") (uri (pypi-uri "mkdocs-material" version)) (sha256 - (base32 "0ci9xiasq9nfn09v11m7p49vzazdbgslw7rpzjd6y3hsmn9vljz3")))) - (build-system python-build-system) + (base32 "0ci9xiasq9nfn09v11m7p49vzazdbgslw7rpzjd6y3hsmn9vljz3")) + (modules '((guix build utils))) + (snippet + ;; TODO There are still bundled assets and minified JS. + #~(delete-file-recursively "material/assets/javascripts/lunr/min")))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - ;; Requirement mkdocs-material-extensions - ;; in-turn requires mkdocs-material. This causes - ;; circular dependency, so we remove this requirement. - (add-after 'unpack 'patch-requirements - (lambda _ - (substitute* "requirements.txt" - (("mkdocs-material-extensions.*$") ""))))))) + (list + #:tests? #f ; No tests. + #:phases + #~(let ((symlink-js + (lambda (inputs) + (for-each + (lambda (lang) + (let* ((filename (string-append "lunr." lang ".min.js")) + (file (string-append "share/javascript/" filename))) + (symlink (search-input-file inputs file) filename))) + (list "ar" "da" "de" "es" "fi" "fr" "hu" "it" "ja" "multi" + "nl" "no" "pt" "ro" "ru" "stemmer.support" "sv" "tr" + "vi"))))) + (modify-phases %standard-phases + ;; Requirement mkdocs-material-extensions + ;; in-turn requires mkdocs-material. This causes + ;; circular dependency, so we remove this requirement. + (add-after 'unpack 'patch-requirements + (lambda _ + (substitute* "requirements.txt" + (("mkdocs-material-extensions.*$") + "")))) + (add-after 'ensure-no-mtimes-pre-1980 'inject-javascript-assets + (lambda* (#:key inputs #:allow-other-keys) + (mkdir-p "material/assets/javascripts/min/") + (with-directory-excursion "material/assets/javascripts/min/" + (symlink-js inputs)))) + (add-after 'wrap 'replace-javascript-assets + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((site (site-packages inputs outputs)) + (js-assets (string-append site "/material/" + "assets/javascripts"))) + (with-directory-excursion js-assets + (delete-file-recursively "min") + (mkdir-p "min") + (with-directory-excursion "min" + (symlink-js inputs)))))))))) + (native-inputs (list python-setuptools)) + (inputs (list js-lunr-ar + js-lunr-da + js-lunr-de + js-lunr-es + js-lunr-fi + js-lunr-fr + js-lunr-hu + js-lunr-it + js-lunr-ja + js-lunr-nl + js-lunr-no + js-lunr-pt + js-lunr-ro + js-lunr-ru + js-lunr-sv + js-lunr-tr + js-lunr-vi + js-lunr-multi + js-lunr-stemmer-support)) (propagated-inputs (list python-markdown python-mkdocs python-pygments python-pymdown-extensions)) |
