Subject: [bug#56576] [PATCH v3 2/3] gnu: Add stddoc.

From: Christina O'Donnell <[email-masked]>
Date: Wed, 3 Apr 2024 23:46:34 +0100

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

Change-Id: I0f60126ef78a45733ad7395352e9bad49561437b
---
 gnu/packages/documentation.scm | 57 ++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm
index da930c7304..c9ec860fef 100644
--- a/gnu/packages/documentation.scm
+++ b/gnu/packages/documentation.scm
@@ -518,3 +518,60 @@ (define-public markdeep
 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)))
+
+(define-public stddoc
+  (let ((commit "6eef9deaf2e36bae812f50e448a8012b3e5efb14")
+        (revision "1"))
+    (package
+      (name "stddoc")
+      (version (git-version "1.0.2" revision commit))
+      (home-page "https://github.com/r-lyeh/stddoc.c")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url home-page)
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "06phjp7wbf4x1sagxwfapgv6iyiixmijxxbg2clb48kyvjg5mlwn"))
+         (snippet #~(delete-file "stddoc.c.html"))))
+      (build-system gnu-build-system)
+      (arguments
+       (list #:tests? #f ; no tests
+             #:phases
+             #~(modify-phases %standard-phases
+                 (replace 'configure
+                   (lambda _
+                     (substitute* "stddoc.c"
+                       ;; Note: For some reason quote characters are being
+                       ;; inserted into urls and tags, eg.
+                       ;; 'https://morgan3d.github.io/m""arkdeep/latest/markdeep.min.js?'
+                       (("https://casual-effects.com/m\"*arkdeep/latest/")
+                        (string-append #$markdeep "/share/markdeep/latest/"))
+                       (("https://morgan3d.github.io/m\"*arkdeep/latest/")
+                        (string-append #$markdeep "/share/markdeep/latest/")))))
+                 (replace 'build
+                   (lambda _
+                     (invoke #$(cc-for-target)
+                             "-O2" "-g" "-o" "stddoc" "stddoc.c")
+                     (with-input-from-file "stddoc.c"
+                       (lambda _
+                         (with-output-to-file "stddoc.c.html"
+                           (lambda _
+                             (invoke #$(if (%current-target-system)
+                                           "stddoc"
+                                           "./stddoc"))))))))
+                 (replace 'install
+                   (lambda _
+                     (install-file "stddoc"
+                                   (string-append #$output "/bin"))
+                     (install-file "stddoc.c.html"
+                                   (string-append #$output
+                                                  "/share/doc")))))))
+      (native-inputs (if (%current-target-system) (list this-package) '()))
+      (synopsis "Documentation generator for multiple programming languages")
+      (description "@code{stddoc.c} is a tiny documentation generator with many
+supported programming languages.  Markdeep code comments are extracted from stdin and
+printed into stdout as a HTML file.")
+      (license license:unlicense))))
-- 
2.41.0