| 1 | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
| 6 | |
| 7 | |
| 8 | |
| 9 | |
| 10 | |
| 11 | |
| 12 | |
| 13 | |
| 14 | |
| 15 | |
| 16 | |
| 17 | |
| 18 | |
| 19 | |
| 20 | |
| 21 | |
| 22 | |
| 23 | |
| 24 | |
| 25 | |
| 26 | |
| 27 | |
| 28 | |
| 29 | |
| 30 | |
| 31 | |
| 32 | |
| 33 | |
| 34 |
|
| 35 | (define-module (gnu packages documentation)
|
| 36 | #:use-module ((guix licenses) #:prefix license:)
|
| 37 | #:use-module (guix packages)
|
| 38 | #:use-module (guix download)
|
| 39 | #:use-module (guix gexp)
|
| 40 | #:use-module (guix git-download)
|
| 41 | #:use-module (guix build-system gnu)
|
| 42 | #:use-module (guix build-system cmake)
|
| 43 | #:use-module (guix build-system copy)
|
| 44 | #:use-module (guix build-system perl)
|
| 45 | #:use-module (guix build-system pyproject)
|
| 46 | #:use-module (guix build-system qt)
|
| 47 | #:use-module (guix deprecation)
|
| 48 | #:use-module (guix utils)
|
| 49 | #:use-module (gnu packages)
|
| 50 | #:use-module (gnu packages autotools)
|
| 51 | #:use-module (gnu packages backup)
|
| 52 | #:use-module (gnu packages base)
|
| 53 | #:use-module (gnu packages bash)
|
| 54 | #:use-module (gnu packages check)
|
| 55 | #:use-module (gnu packages python)
|
| 56 | #:use-module (gnu packages python-build)
|
| 57 | #:use-module (gnu packages python-xyz)
|
| 58 | #:use-module (gnu packages bison)
|
| 59 | #:use-module (gnu packages kde-frameworks)
|
| 60 | #:use-module (gnu packages docbook)
|
| 61 | #:use-module (gnu packages compiler-tools)
|
| 62 | #:use-module (gnu packages ghostscript)
|
| 63 | #:use-module (gnu packages graphviz)
|
| 64 | #:use-module (gnu packages gettext)
|
| 65 | #:use-module (gnu packages glib)
|
| 66 | #:use-module (gnu packages javascript)
|
| 67 | #:use-module (gnu packages netpbm)
|
| 68 | #:use-module (gnu packages perl)
|
| 69 | #:use-module (gnu packages pkg-config)
|
| 70 | #:use-module (gnu packages qt)
|
| 71 | #:use-module (gnu packages sqlite)
|
| 72 | #:use-module (gnu packages sphinx)
|
| 73 | #:use-module (gnu packages tex)
|
| 74 | #:use-module (gnu packages uglifyjs)
|
| 75 | #:use-module (gnu packages xml)
|
| 76 | #:use-module (gnu packages xorg))
|
| 77 |
|
| 78 | (define-public latex2html
|
| 79 | (package
|
| 80 | (name "latex2html")
|
| 81 | (version "2024")
|
| 82 | (source
|
| 83 | (origin
|
| 84 | (method git-fetch)
|
| 85 | (uri (git-reference
|
| 86 | (url "https://github.com/latex2html/latex2html")
|
| 87 | (commit (string-append "v" version))))
|
| 88 | (file-name (git-file-name name version))
|
| 89 | (sha256
|
| 90 | (base32 "1h5ya6pvh87y7xf5c05plbvm35qnn5qd0fllnhp5kym43zmr4prh"))))
|
| 91 | (build-system gnu-build-system)
|
| 92 | (arguments
|
| 93 | (list
|
| 94 | #:phases #~(modify-phases %standard-phases
|
| 95 | (add-after 'unpack 'patch-configure
|
| 96 | (lambda* (#:key outputs #:allow-other-keys)
|
| 97 | (substitute* "configure"
|
| 98 | (("/usr/local")
|
| 99 | #$output)
|
| 100 | (("\\$\\{CONFIG_SHELL-/bin/sh\\}")
|
| 101 | (which "bash")))))
|
| 102 | (replace 'configure
|
| 103 | (lambda _
|
| 104 | (invoke "./configure")))
|
| 105 | (add-after 'configure 'patch-cfgcache
|
| 106 | (lambda* (#:key outputs #:allow-other-keys)
|
| 107 | (substitute* "cfgcache.pm"
|
| 108 | (("/usr/local")
|
| 109 | #$output)
|
| 110 | (("\\$cfg\\{'TMPSPACE'\\} = q'[^']*'")
|
| 111 | "$cfg{'TMPSPACE'} = q'/tmp'")))))))
|
| 112 | (propagated-inputs (list texlive-preview texlive-xcolor texlive-dvips))
|
| 113 | (inputs (list perl netpbm ghostscript))
|
| 114 | (synopsis "LaTeX documents to HTML")
|
| 115 | (description "LaTeX2HTML is a utility that converts LaTeX documents to web
|
| 116 | pages in HTML. Since there are many different latex packages, it is expected
|
| 117 | that the user has their latex installation set up correctly when invoking
|
| 118 | @code{latex2html}.")
|
| 119 | (home-page "https://www.latex2html.org/")
|
| 120 | (license license:gpl2+)))
|
| 121 |
|
| 122 | (define-public asciidoc
|
| 123 | (package
|
| 124 | (name "asciidoc")
|
| 125 | (version "9.1.0")
|
| 126 | (source (origin
|
| 127 | (method git-fetch)
|
| 128 | (uri (git-reference
|
| 129 | (url "https://github.com/asciidoc/asciidoc-py")
|
| 130 | (commit version)))
|
| 131 | (file-name (git-file-name name version))
|
| 132 | (sha256
|
| 133 | (base32
|
| 134 | "1clf1axkns23wfmh48xfspzsnw04pjh4mq1pshpzvj0cwxhz0yaq"))))
|
| 135 | (build-system gnu-build-system)
|
| 136 | (arguments
|
| 137 | `(#:tests? #f |
| 138 | #:phases
|
| 139 | (modify-phases %standard-phases
|
| 140 | (replace 'bootstrap
|
| 141 | (lambda _
|
| 142 | (invoke "autoconf")))
|
| 143 | |
| 144 | |
| 145 | |
| 146 | |
| 147 | |
| 148 | (add-before 'configure 'set-xml-binary-paths
|
| 149 | (lambda* (#:key inputs #:allow-other-keys)
|
| 150 | (let* ((libxml2 (assoc-ref inputs "libxml2"))
|
| 151 | (xmllint (string-append libxml2 "/bin/xmllint"))
|
| 152 | (libxslt (assoc-ref inputs "libxslt"))
|
| 153 | (xsltproc (string-append libxslt "/bin/xsltproc")))
|
| 154 | (substitute* "a2x.py"
|
| 155 | (("XMLLINT = 'xmllint'")
|
| 156 | (string-append "XMLLINT = '" xmllint "'"))
|
| 157 | (("XSLTPROC = 'xsltproc'")
|
| 158 | (string-append "XSLTPROC = '" xsltproc "'"))))))
|
| 159 | |
| 160 | |
| 161 | (add-before 'install 'make-local-docbook-xsl
|
| 162 | (lambda* (#:key inputs #:allow-other-keys)
|
| 163 | (substitute* (find-files "docbook-xsl" ".*\\.xsl$")
|
| 164 | (("xsl:import href=\"http://docbook.sourceforge.net/\
|
| 165 | release/xsl/current")
|
| 166 | (string-append
|
| 167 | "xsl:import href=\""
|
| 168 | (string-append (assoc-ref inputs "docbook-xsl")
|
| 169 | "/xml/xsl/docbook-xsl-"
|
| 170 | ,(package-version docbook-xsl)))))))
|
| 171 | |
| 172 | (add-before 'install 'make-local-docbook-xml
|
| 173 | (lambda* (#:key inputs #:allow-other-keys)
|
| 174 | (substitute* "docbook45.conf"
|
| 175 | (("http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd")
|
| 176 | (string-append (assoc-ref inputs "docbook-xml")
|
| 177 | "/xml/dtd/docbook/docbookx.dtd"))))))))
|
| 178 | (native-inputs (list autoconf))
|
| 179 | (inputs (list python docbook-xml-4.5 docbook-xsl libxml2 libxslt))
|
| 180 | (home-page "https://asciidoc.org/")
|
| 181 | (synopsis "Text-based document generation system")
|
| 182 | (description
|
| 183 | "AsciiDoc is a text document format for writing notes, documentation,
|
| 184 | articles, books, ebooks, slideshows, web pages, man pages and blogs.
|
| 185 | AsciiDoc files can be translated to many formats including HTML, PDF,
|
| 186 | EPUB, man page.
|
| 187 |
|
| 188 | AsciiDoc is highly configurable: both the AsciiDoc source file syntax and
|
| 189 | the backend output markups (which can be almost any type of SGML/XML
|
| 190 | markup) can be customized and extended by the user.")
|
| 191 | (license license:gpl2+)))
|
| 192 |
|
| 193 | (define-deprecated asciidoc-py3 asciidoc)
|
| 194 |
|
| 195 | (define-public doxygen-1.16
|
| 196 | (package
|
| 197 | (name "doxygen")
|
| 198 | (version "1.16.1")
|
| 199 | (home-page "https://www.doxygen.nl/")
|
| 200 | (source
|
| 201 | (origin
|
| 202 | (method url-fetch)
|
| 203 | (uri (list (string-append home-page "files/doxygen-" version
|
| 204 | ".src.tar.gz")
|
| 205 | (string-append "mirror://sourceforge/doxygen/rel-" version
|
| 206 | "/doxygen-" version ".src.tar.gz")))
|
| 207 | (sha256
|
| 208 | (base32 "1a33w82ln692qsf3ls0j31f6khljjs1cy3bwd70pra2fa4xy6710"))))
|
| 209 | (build-system cmake-build-system)
|
| 210 | (native-inputs
|
| 211 | (list bison
|
| 212 | flex
|
| 213 | libxml2 |
| 214 | python)) |
| 215 | (inputs
|
| 216 | (list bash-minimal))
|
| 217 | (arguments
|
| 218 | |
| 219 | |
| 220 | (list
|
| 221 | #:configure-flags
|
| 222 | (if (%current-target-system)
|
| 223 | #~(list (string-append "-DICONV_INCLUDE_DIR="
|
| 224 | (assoc-ref %build-inputs "cross-libc")
|
| 225 | "/include"))
|
| 226 | #~'())
|
| 227 | #:phases
|
| 228 | #~(modify-phases %standard-phases
|
| 229 | (add-after 'unpack 'disable-some-tests
|
| 230 | (lambda _
|
| 231 | (for-each delete-file-recursively
|
| 232 | |
| 233 | |
| 234 | '("testing/012" "testing/012_cite.dox"
|
| 235 | |
| 236 | |
| 237 | "testing/009" "testing/009_bug.cpp"))))
|
| 238 | (add-before 'configure 'patch-sh
|
| 239 | (lambda* (#:key inputs #:allow-other-keys)
|
| 240 | (let ((/bin/sh (search-input-file inputs "/bin/sh")))
|
| 241 | (substitute* "src/portable.cpp"
|
| 242 | (("/bin/sh")
|
| 243 | /bin/sh))))))))
|
| 244 | (synopsis "Generate documentation from annotated sources")
|
| 245 | (description "Doxygen is the de facto standard tool for generating
|
| 246 | documentation from annotated C++ sources, but it also supports other popular
|
| 247 | programming languages such as C, Objective-C, C#, PHP, Java, Python,
|
| 248 | IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl,
|
| 249 | and to some extent D.")
|
| 250 | (license license:gpl3+)))
|
| 251 |
|
| 252 | (define-public doxygen-1.14
|
| 253 | (package
|
| 254 | (inherit doxygen-1.16)
|
| 255 | (name "doxygen")
|
| 256 | (version "1.14.0")
|
| 257 | (home-page "https://www.doxygen.nl/")
|
| 258 | (source (origin
|
| 259 | (method url-fetch)
|
| 260 | (uri (list (string-append home-page "files/doxygen-"
|
| 261 | version ".src.tar.gz")
|
| 262 | (string-append "mirror://sourceforge/doxygen/rel-"
|
| 263 | version "/doxygen-" version
|
| 264 | ".src.tar.gz")))
|
| 265 | (sha256
|
| 266 | (base32
|
| 267 | "0pbbdvc1zxps6mi58bry16rcrdw6b9gvf9nhv0kp60qkmc8nslyl"))))))
|
| 268 |
|
| 269 | (define-public doxygen doxygen-1.14)
|
| 270 |
|
| 271 | (define-public halibut
|
| 272 | (package
|
| 273 | (name "halibut")
|
| 274 | (version "1.3")
|
| 275 | (source (origin
|
| 276 | (method url-fetch)
|
| 277 | (uri (string-append
|
| 278 | "https://www.chiark.greenend.org.uk/~sgtatham/halibut/halibut-"
|
| 279 | version "/halibut-" version ".tar.gz"))
|
| 280 | (sha256
|
| 281 | (base32
|
| 282 | "0ciikn878vivs4ayvwvr63nnhpcg12m8023xv514zxqpdxlzg85a"))))
|
| 283 | (build-system cmake-build-system)
|
| 284 | (arguments
|
| 285 | '(#:tests? #f)) |
| 286 | (native-inputs (list pkg-config perl))
|
| 287 | (home-page "https://www.chiark.greenend.org.uk/~sgtatham/halibut/")
|
| 288 | (synopsis "Documentation production system for software manuals")
|
| 289 | (description
|
| 290 | "Halibut is a text formatting system designed primarily for writing
|
| 291 | software documentation. It accepts a single source format and outputs any
|
| 292 | combination of plain text, HTML, Unix man or info pages, PostScript or PDF.
|
| 293 | It has extensive support for indexing and cross-referencing, and generates
|
| 294 | hyperlinks within output documents wherever possible. It supports Unicode,
|
| 295 | with the ability to fall back to an alternative representation if Unicode
|
| 296 | output is not available.")
|
| 297 | (properties `((cpe-vendor . "halibut_project")))
|
| 298 | (license license:expat)))
|
| 299 |
|
| 300 | (define-public doc++
|
| 301 | (package
|
| 302 | (name "doc++")
|
| 303 | (version "3.4.10")
|
| 304 | (source (origin
|
| 305 | (method url-fetch)
|
| 306 | (uri (string-append "https://sourceforge.net/projects/docpp/"
|
| 307 | "files/doc++-" version ".tar.gz"))
|
| 308 | (sha256
|
| 309 | (base32
|
| 310 | "0i37zlxl8g352s4hzpdx0657k5x3czh3xcsfr27irc708gb277pn"))
|
| 311 | (patches (search-patches "doc++-include-directives.patch"
|
| 312 | "doc++-segfault-fix.patch"
|
| 313 | "doc++-gcc-14.patch"))))
|
| 314 | (build-system gnu-build-system)
|
| 315 | (native-inputs
|
| 316 | (list flex gettext-minimal))
|
| 317 | (home-page "https://docpp.sourceforge.net")
|
| 318 | (synopsis "Documentation system for C, C++, IDL, and Java")
|
| 319 | (description
|
| 320 | "DOC++ is a documentation system for C, C++, IDL, and Java. It can
|
| 321 | generate both TeX output for high-quality hardcopies or HTML output for online
|
| 322 | browsing. The documentation is extracted directly from the C/C++/IDL source
|
| 323 | or Java class files.")
|
| 324 | (license license:gpl2+)))
|
| 325 |
|
| 326 | (define-public pod2pdf
|
| 327 | (package
|
| 328 | (name "pod2pdf")
|
| 329 | (version "0.42")
|
| 330 | (source (origin
|
| 331 | (method url-fetch)
|
| 332 | (uri (string-append
|
| 333 | "mirror://cpan/authors/id/J/JO/JONALLEN/pod2pdf-"
|
| 334 | version
|
| 335 | ".tar.gz"))
|
| 336 | (sha256
|
| 337 | (base32
|
| 338 | "0w5p7yy01vph74nfr9qzjb18p1avmhhcpza0qz9r88fmb0blbiyv"))))
|
| 339 | (build-system perl-build-system)
|
| 340 | (propagated-inputs
|
| 341 | (list perl-getopt-argvfile
|
| 342 | perl-pdf-api2
|
| 343 | perl-pod-parser))
|
| 344 | (home-page "https://metacpan.org/release/pod2pdf")
|
| 345 | (synopsis "Convert Pod to PDF format")
|
| 346 | (description "pod2pdf converts documents written in Perl's @acronym{POD, Plain Old
|
| 347 | Documentation} format to PDF files. It also supports some extensions to the POD
|
| 348 | format, and supports the file types JPG, GIF, TIFF, PNG, and PNM for embedded
|
| 349 | objects.")
|
| 350 | (license license:artistic2.0)))
|
| 351 |
|
| 352 | |
| 353 | |
| 354 | (define-public python-docrepr
|
| 355 | (package
|
| 356 | (name "python-docrepr")
|
| 357 | (version "0.2.0")
|
| 358 | (source (origin
|
| 359 | (method git-fetch)
|
| 360 | (uri (git-reference
|
| 361 | (url "https://github.com/spyder-ide/docrepr")
|
| 362 | (commit (string-append "v" version))))
|
| 363 | (file-name (git-file-name name version))
|
| 364 | (sha256
|
| 365 | (base32
|
| 366 | "1ma5gwy93m1djd3zdlnqfrwhgr8ic1qbsz5kkrb9f987ax40lfkd"))
|
| 367 | (patches (search-patches "python-docrepr-fix-tests.patch"))))
|
| 368 | (build-system pyproject-build-system)
|
| 369 | (arguments
|
| 370 | (list
|
| 371 | #:tests? #f |
| 372 | #:phases
|
| 373 | #~(modify-phases %standard-phases
|
| 374 | (add-after 'unpack 'patch-sources
|
| 375 | (lambda _
|
| 376 | |
| 377 | |
| 378 | |
| 379 | |
| 380 | |
| 381 | |
| 382 | (substitute* "docrepr/utils.py"
|
| 383 | (("except TypeError")
|
| 384 | "except (TypeError, shutil.Error)")))))))
|
| 385 | (native-inputs
|
| 386 | (list python-ipython
|
| 387 | python-matplotlib
|
| 388 | python-numpy
|
| 389 | python-setuptools
|
| 390 | python-wheel))
|
| 391 | (propagated-inputs
|
| 392 | (list python-docutils
|
| 393 | python-jinja2
|
| 394 | python-matplotlib
|
| 395 | python-sphinx))
|
| 396 | (home-page "https://github.com/spyder-ide/docrepr/")
|
| 397 | (synopsis "Python docstrings to HTML renderer")
|
| 398 | (description "Docrepr renders Python docstrings to HTML with Sphinx. It
|
| 399 | can generate rich and plain representations of docstrings, alongside
|
| 400 | additional metadata about the object to which the docstring belongs.")
|
| 401 | (license license:bsd-3)))
|
| 402 |
|
| 403 | (define-public zeal
|
| 404 | (package
|
| 405 | (name "zeal")
|
| 406 | (version "0.8.1")
|
| 407 | (source
|
| 408 | (origin
|
| 409 | (method git-fetch)
|
| 410 | (uri (git-reference
|
| 411 | (url "https://github.com/zealdocs/zeal")
|
| 412 | (commit (string-append "v" version))))
|
| 413 | (file-name (git-file-name name version))
|
| 414 | (sha256
|
| 415 | (base32 "02bbg2m50awhbf5vyfnx2843fbvlpbvc08yr4q4n4dvfp7skqs0l"))))
|
| 416 | (build-system qt-build-system)
|
| 417 | (arguments
|
| 418 | (list
|
| 419 | #:qtbase qtbase
|
| 420 | #:tests? #f)) |
| 421 | (native-inputs
|
| 422 | (list extra-cmake-modules pkg-config))
|
| 423 | (inputs
|
| 424 | (list bash-minimal
|
| 425 | libarchive
|
| 426 | sqlite
|
| 427 | qtdeclarative
|
| 428 | qtwayland
|
| 429 | qtwebchannel
|
| 430 | qtwebengine
|
| 431 | xcb-util-keysyms))
|
| 432 | (home-page "https://zealdocs.org/")
|
| 433 | (synopsis "Offline documentation browser inspired by Dash")
|
| 434 | (description "Zeal is a simple offline documentation browser
|
| 435 | inspired by Dash.")
|
| 436 | (license license:gpl3+)))
|
| 437 |
|
| 438 | |
| 439 | |
| 440 | |
| 441 | (define-public mallard-ducktype
|
| 442 | (package
|
| 443 | (name "mallard-ducktype")
|
| 444 | (version "1.0.2")
|
| 445 | (source
|
| 446 | (origin
|
| 447 | (method git-fetch)
|
| 448 | |
| 449 | |
| 450 | (uri (git-reference
|
| 451 | (url "https://github.com/projectmallard/mallard-ducktype")
|
| 452 | (commit version)))
|
| 453 | (file-name (git-file-name name version))
|
| 454 | (sha256
|
| 455 | (base32
|
| 456 | "1jk9bfz7g04ip78s03b0xak6d54rj4h9zpgadkziy1ji216g6y4c"))))
|
| 457 | (build-system gnu-build-system)
|
| 458 | (arguments
|
| 459 | (list
|
| 460 | |
| 461 | |
| 462 | #:phases
|
| 463 | #~(modify-phases %standard-phases
|
| 464 | (delete 'bootstrap)
|
| 465 | (delete 'configure)
|
| 466 | (replace 'build
|
| 467 | (lambda _
|
| 468 | (invoke "python" "./setup.py" "build")))
|
| 469 | (replace 'install
|
| 470 | (lambda _
|
| 471 | (invoke "python" "./setup.py" "install"
|
| 472 | (string-append "--prefix=" #$output) "--no-compile")
|
| 473 | (invoke "python" "-m" "compileall"
|
| 474 | "--invalidation-mode=unchecked-hash" #$output)))
|
| 475 | (add-after 'install 'wrap
|
| 476 | (lambda _
|
| 477 | (let* ((parser (car (find-files #$output "^parser\\.py$")))
|
| 478 | (site (dirname (dirname (dirname parser)))))
|
| 479 | (wrap-program (string-append #$output "/bin/ducktype")
|
| 480 | #:sh (which "bash")
|
| 481 | `("GUIX_PYTHONPATH" ":" = (,site))))))
|
| 482 | (replace 'check
|
| 483 | (lambda* (#:key tests? #:allow-other-keys)
|
| 484 | (if tests?
|
| 485 | (with-directory-excursion "tests"
|
| 486 | (invoke "sh" "runtests"))
|
| 487 | (format #t "test suite not run.~%")))))))
|
| 488 | (native-inputs (list python-setuptools-bootstrap python-wrapper))
|
| 489 | (home-page "http://projectmallard.org")
|
| 490 | (synopsis "Convert Ducktype to Mallard documentation markup")
|
| 491 | (description
|
| 492 | "Ducktype is a lightweight syntax that can represent all the semantics
|
| 493 | of the Mallard XML documentation system. Ducktype files can be converted to
|
| 494 | Mallard using the @command{ducktype} tool. The yelp-tools package
|
| 495 | provides additional functionality on the produced Mallard documents.")
|
| 496 | (license license:expat)))
|
| 497 |
|
| 498 | (define-public markdeep
|
| 499 | (package
|
| 500 | (name "markdeep")
|
| 501 | (version "1.16")
|
| 502 | (home-page "https://casual-effects.com/markdeep/")
|
| 503 | (source
|
| 504 | (origin (method git-fetch)
|
| 505 | (uri (git-reference
|
| 506 | (url "https://github.com/morgan3d/markdeep")
|
| 507 | (commit (string-append "v0" version))))
|
| 508 | (file-name (git-file-name name version))
|
| 509 | (sha256
|
| 510 | (base32 "05bvw3993xh1260ckclwk4jw38hvgiff0b2940ryhbhz0p1k41l8"))))
|
| 511 | (build-system copy-build-system)
|
| 512 | (arguments
|
| 513 | (list #:modules '((guix build utils)
|
| 514 | (guix build copy-build-system)
|
| 515 | (ice-9 popen))
|
| 516 | #:install-plan ''(("." "/share/markdeep/"))
|
| 517 | #:phases
|
| 518 | #~(modify-phases %standard-phases
|
| 519 | (add-after 'unpack 'patch-urls
|
| 520 | (lambda _
|
| 521 | (for-each (lambda (filename)
|
| 522 |
|
| 523 | (substitute* filename
|
| 524 | |
| 525 | (("<script src=\"https://casual-effects\\.com/\
|
| 526 | markdeep/latest/markdeep\\.min\\.js\\?\"></script>")
|
| 527 | "")
|
| 528 | (("MATHJAX_URL = .*$")
|
| 529 | |
| 530 | (string-append "MATHJAX_URL = 'file://" #$js-mathjax
|
| 531 | "/share/javascript/es5/tex-mml-chtml.js'"))))
|
| 532 | (find-files "." (lambda (file stat)
|
| 533 | (string-suffix? ".js" file))))))
|
| 534 | (add-before 'install 'minify
|
| 535 | (lambda _
|
| 536 | (for-each (lambda (filename)
|
| 537 | (let ((minified-filename
|
| 538 | (string-append
|
| 539 | (string-drop-right filename 3)
|
| 540 | ".min.js")))
|
| 541 | (format #t "~a -> ~a~%" filename minified-filename)
|
| 542 | (let ((minified (open-pipe* OPEN_READ
|
| 543 | "uglifyjs" filename)))
|
| 544 | (call-with-output-file minified-filename
|
| 545 | (lambda (port)
|
| 546 | (dump-port minified port)))
|
| 547 |
|
| 548 | (let ((exit (close-pipe minified)))
|
| 549 | (unless (zero? exit)
|
| 550 | (error "uglifyjs failed" exit))))))
|
| 551 | (find-files "latest"
|
| 552 | (lambda (path stat)
|
| 553 | (and (string-suffix? ".js" path)
|
| 554 | (not (string-suffix? ".min.js"
|
| 555 | path)))))))))))
|
| 556 | (inputs (list js-mathjax))
|
| 557 | (native-inputs (list uglifyjs))
|
| 558 | (synopsis "Tool for displaying markdown documents in a web-browser")
|
| 559 | (description "Markdeep is a technology for writing plain text documents that can
|
| 560 | be displayed in any web browser, whether local or remote. It supports diagrams,
|
| 561 | calendars, equations, and other features as extensions of Markdown syntax.")
|
| 562 | (license license:bsd-2)))
|
| 563 |
|
| 564 | (define-public stddoc
|
| 565 | (let ((commit "6eef9deaf2e36bae812f50e448a8012b3e5efb14")
|
| 566 | (revision "1"))
|
| 567 | (package
|
| 568 | (name "stddoc")
|
| 569 | (version (git-version "1.0.2" revision commit))
|
| 570 | (home-page "https://github.com/r-lyeh/stddoc.c")
|
| 571 | (source
|
| 572 | (origin
|
| 573 | (method git-fetch)
|
| 574 | (uri (git-reference
|
| 575 | (url home-page)
|
| 576 | (commit commit)))
|
| 577 | (file-name (git-file-name name version))
|
| 578 | (sha256
|
| 579 | (base32 "06phjp7wbf4x1sagxwfapgv6iyiixmijxxbg2clb48kyvjg5mlwn"))
|
| 580 | (snippet #~(delete-file "stddoc.c.html"))))
|
| 581 | (build-system gnu-build-system)
|
| 582 | (arguments
|
| 583 | (list #:tests? #f |
| 584 | #:phases
|
| 585 | #~(modify-phases %standard-phases
|
| 586 | (replace 'configure
|
| 587 | (lambda _
|
| 588 | (substitute* "stddoc.c"
|
| 589 | |
| 590 | |
| 591 | |
| 592 | (("https://casual-effects.com/m\"*arkdeep/latest/")
|
| 593 | (string-append #$markdeep "/share/markdeep/latest/"))
|
| 594 | (("https://morgan3d.github.io/m\"*arkdeep/latest/")
|
| 595 | (string-append #$markdeep "/share/markdeep/latest/")))))
|
| 596 | (replace 'build
|
| 597 | (lambda _
|
| 598 | (invoke #$(cc-for-target)
|
| 599 | "-O2" "-g"
|
| 600 | |
| 601 | "-Wno-int-conversion"
|
| 602 | "-o" "stddoc" "stddoc.c")
|
| 603 | (with-input-from-file "stddoc.c"
|
| 604 | (lambda _
|
| 605 | (with-output-to-file "stddoc.c.html"
|
| 606 | (lambda _
|
| 607 | (invoke #$(if (%current-target-system)
|
| 608 | "stddoc"
|
| 609 | "./stddoc"))))))))
|
| 610 | (replace 'install
|
| 611 | (lambda _
|
| 612 | (install-file "stddoc"
|
| 613 | (string-append #$output "/bin"))
|
| 614 | (install-file "stddoc.c.html"
|
| 615 | (string-append #$output
|
| 616 | "/share/doc")))))))
|
| 617 | (native-inputs (if (%current-target-system) (list this-package) '()))
|
| 618 | (synopsis "Documentation generator for multiple programming languages")
|
| 619 | (description "@code{stddoc.c} is a tiny documentation generator with many
|
| 620 | supported programming languages. Markdeep code comments are extracted from stdin and
|
| 621 | printed into stdout as a HTML file.")
|
| 622 | (license license:unlicense))))
|