gnu: Add python-doc8.
[jackhill/guix/guix.git] / gnu / packages / markup.scm
index de40de6..c1fc71b 100644 (file)
@@ -1,7 +1,9 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
-;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017 ng0 <ng0@n0.is>
+;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
 (define-module (gnu packages markup)
   #:use-module (guix licenses)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix packages)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system perl)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages web)
-  #:use-module (gnu packages zip))
+  #:use-module (gnu packages web))
 
 (define-public hoedown
   (package
     (name "hoedown")
     (version "3.0.7")
     (source (origin
-             (method url-fetch)
-             (uri (string-append "https://github.com/hoedown/hoedown/archive/"
-                                 version ".tar.gz"))
-             (file-name (string-append name "-" version ".tar.gz"))
+             (method git-fetch)
+             (uri (git-reference
+                    (url "https://github.com/hoedown/hoedown.git")
+                    (commit version)))
+             (file-name (git-file-name name version))
              (sha256
               (base32
-               "0859dc2xjasd6kgkshi8mb20kbyw5sql1ln0hw3bfaf33qdh5dh1"))))
+               "1kr3hxjg2dgmwy9738qgj3sh3f5cygx0zxskkfhrg7x19bq9yd26"))))
     (build-system gnu-build-system)
     (arguments
      '(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
@@ -82,14 +88,15 @@ processing library written in C.")
                                       "/bin/unzip")))
            (mkdir-p out)
            (with-directory-excursion out
-             (system* unzip source)
+             (invoke unzip source)
              (mkdir "bin")
              (mkdir-p "share/doc")
              (rename-file "Markdown_1.0.1/Markdown.pl" "bin/markdown")
              (rename-file "Markdown_1.0.1/Markdown Readme.text"
                           "share/doc/README")
              (patch-shebang "bin/markdown" (list perlbd))
-             (delete-file-recursively "Markdown_1.0.1"))))))
+             (delete-file-recursively "Markdown_1.0.1"))
+           #t))))
     (native-inputs `(("unzip" ,unzip)))
     (inputs `(("perl" ,perl)))
     (home-page "http://daringfireball.net/projects/markdown")
@@ -101,18 +108,104 @@ convert it to structurally valid XHTML (or HTML).")
     (license (non-copyleft "file://License.text"
                            "See License.text in the distribution."))))
 
+(define-public discount
+  (package
+    (name "discount")
+    (version "2.2.4")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "http://www.pell.portland.or.us/~orc/Code/"
+                   "discount/discount-" version ".tar.bz2"))
+             (sha256
+              (base32
+               "199hwajpspqil0a4y3yxsmhdp2dm73gqkzfk4mrwzsmlq8y1xzbl"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:make-flags (list
+                     (string-append "LFLAGS=-L. -Wl,-rpath="
+                                    (assoc-ref %outputs "out") "/lib"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'set-AC_PATH
+           (lambda _
+             ;; The default value is not suitable, so override using an
+             ;; environment variable. This just affects the build, and not the
+             ;; resulting store item.
+             (setenv "AC_PATH" (getenv "PATH"))
+             #t))
+         (replace 'configure
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (setenv "CC" "gcc")
+             (invoke "./configure.sh"
+                     (string-append "--prefix=" (assoc-ref outputs "out"))
+                     "--shared"))))))
+    (synopsis "Markdown processing library, written in C")
+    (description
+     "Discount is a markdown implementation, written in C.  It provides a
+@command{markdown} command, and a library.")
+    (home-page "https://www.pell.portland.or.us/~orc/Code/discount/")
+    (license bsd-3)))
+
+(define-public perl-text-markdown-discount
+  (package
+    (name "perl-text-markdown-discount")
+    (version "0.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/S/SE/SEKIMURA/Text-Markdown-Discount-"
+             version
+             ".tar.gz"))
+       (sha256
+        (base32
+         "1xx7v3wnla7m6wa3h33whxw3vvincaicg4yra1b9wbzf2aix9rnw"))
+       (patches
+        (search-patches "perl-text-markdown-discount-unbundle.patch"))))
+    (build-system perl-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'set-ldflags
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "Makefile"
+               (("OTHERLDFLAGS = ")
+                (string-append
+                      "OTHERLDFLAGS = -lmarkdown -Wl,-rpath="
+                      (assoc-ref inputs "discount")
+                      "/lib")))
+             #t)))))
+    (inputs
+     `(("discount" ,discount)))
+    (home-page
+     "https://metacpan.org/release/Text-Markdown-Discount")
+    (synopsis
+     "Fast function for converting Markdown to HTML using Discount")
+    (description
+     "Text::Markdown::Discount is a Perl extension to the Discount markdown
+implementation.
+
+@example
+  use Text::Markdown::Discount;
+  my $html = markdown($text)
+@end example")
+    (license perl-license)))
+
 (define-public cmark
   (package
     (name "cmark")
-    (version "0.27.1")
+    (version "0.29.0")
     (source (origin
-             (method url-fetch)
-             (uri (string-append "https://github.com/jgm/cmark/archive/"
-                                 version ".tar.gz"))
-             (file-name (string-append name "-" version ".tar.gz"))
+             (method git-fetch)
+             (uri (git-reference
+                    (url "https://github.com/jgm/cmark.git")
+                    (commit version)))
+             (file-name (git-file-name name version))
              (sha256
               (base32
-               "1da62ispca9aal2a36gaj87175rv5013pl7x740vk32y6lclr6v6"))))
+               "0r7jpqhgnssq444i8pwji2g36058vfzwkl70wbiwj13h4w5rfc8f"))))
     (build-system cmake-build-system)
     (arguments
      '(#:test-target "test"))
@@ -121,7 +214,7 @@ convert it to structurally valid XHTML (or HTML).")
     (description "CommonMark is a strongly defined, highly compatible
 specification of Markdown.  cmark is the C reference implementation of
 CommonMark.  It provides @code{libcmark} shared library for parsing
-CommonMark to an abstract syntax tree (AST) and rendering the document
+CommonMark to an abstract syntax tree (@dfn{AST}) and rendering the document
 as HTML, groff man, LaTeX, CommonMark, or an XML representation of the
 AST.  The package also provides the command-line program @command{cmark}
 for parsing and rendering CommonMark.")
@@ -130,3 +223,39 @@ for parsing and rendering CommonMark.")
     ;; licensed. The CommonMark specification is Creative Commons CC-BY-SA 4.0
     ;; licensed. See 'COPYING' in the source distribution for more information.
     (license (list bsd-2 expat cc-by-sa4.0))))
+
+(define-public smu
+  (package
+    (name "smu")
+    (version "1.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Gottox/smu.git")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1jm7lhnzjx4q7gcwlkvsbffcy0zppywyh50d71ami6dnq182vvcc"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags (list "CC=gcc"
+                          (string-append "PREFIX="
+                                         (assoc-ref %outputs "out")))
+       #:tests? #f                      ; no tests included
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (home-page "https://github.com/Gottox/smu")
+    (synopsis "Simple markup")
+    (description
+     "Smu is a very simple and minimal markup language.  It is
+designed for using in wiki-like environments.  Smu makes it very
+easy to write your documents on the fly and convert them into HTML.
+Smu is capable to parse very large documents.  As long as you avoid an huge
+amount of indents it scales just great.
+
+Smu was started as a rewrite of Markdown but became something more
+lightweight and consistent.  The biggest difference between Markdown
+and smu is that smu doesn't support reference style links.")
+    (license x11)))