From 5d48847bc62fcfade79b349424e8a8e2eb9ee694 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 3 Jan 2020 00:59:01 +0100 Subject: [PATCH] gnu: Add manuskript. * gnu/packages/text-editors.scm (manuskript): New variable. --- gnu/packages/text-editors.scm | 106 +++++++++++++++++++++++++++++++++- 1 file changed, 105 insertions(+), 1 deletion(-) diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index 4ab6e1e2ec..b0d2af0033 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2019 Efraim Flashner ;;; Copyright © 2019 Andreas Enge -;;; Copyright © 2019 Nicolas Goaziou +;;; Copyright © 2019, 2020 Nicolas Goaziou ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,6 +33,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) #:use-module (guix build-system glib-or-gtk) + #:use-module (guix build-system python) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages assembly) @@ -45,6 +46,7 @@ #:use-module (gnu packages glib) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) + #:use-module (gnu packages haskell-xyz) #:use-module (gnu packages libbsd) #:use-module (gnu packages libreoffice) #:use-module (gnu packages lua) @@ -354,6 +356,108 @@ team.") environment with Markdown markup.") (license license:gpl3+))) ; icons/* under CC-BY-SA3 +(define-public manuskript + (package + (name "manuskript") + (version "0.10.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/olivierkes/manuskript.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0q413vym7hzjpyg3krj5y63hwpncdifjkyswqmr76zg5yqnklnh3")))) + (build-system python-build-system) + (arguments + `(#:tests? #f ;no test + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share/manuskript"))) + ;; Install data. + (mkdir-p share) + (for-each + (lambda (d) + (let ((destination (string-append share "/" d))) + (mkdir-p destination) + (copy-recursively d destination))) + '("bin" "i18n" "icons" "libs" "manuskript" "resources")) + ;; Install documentation. + (let ((doc (string-append out + "/doc/manuskript-" ,version + "/sample-projects"))) + (mkdir-p doc) + (copy-recursively "sample-projects" doc)) + ;; Wrap executable in "$out/share/manuskript/bin" and + ;; link to it from "$out/bin". + (let ((bin (string-append out "/bin")) + (executable (string-append share "/bin/manuskript"))) + (wrap-program executable + (list "PYTHONPATH" 'prefix (list (getenv "PYTHONPATH")))) + (mkdir-p bin) + (with-directory-excursion bin + (symlink (string-append share "/bin/manuskript") + "manuskript"))) + ;; Install icons and create .desktop file. + (let ((apps (string-append out "/share/applications")) + (icons-dir (string-append out "/share/pixmaps"))) + (install-file "icons/Manuskript/manuskript.svg" icons-dir) + (mkdir-p apps) + (with-output-to-file (string-append apps "/manuskript.desktop") + (lambda _ + (format #t + "[Desktop Entry]~@ + Name=Manuskript~@ + MimeType=application/x-manuskript-book;~@ + Exec=~a/bin/manuskript %f~@ + Comment=Tool for writers~@ + Comment[es]=Herramienta para escritores/as~@ + Keywords=manuskript;office;write;edit;novel;text;msk~@ + Terminal=false~@ + Type=Application~@ + Icon=manuskript~@ + Categories=Office;WordProcessor;~%" + out)))) + #t)))))) + (inputs + `(("ghc-pandoc" ,ghc-pandoc) + ("python-lxml" ,python-lxml) + ("python-markdown" ,python-markdown) + ("python-pyqt" ,python-pyqt) + ("qtsvg" ,qtsvg))) + (home-page "http://www.theologeek.ch/manuskript/") + (synopsis "Tool for writers") + (description "Manuskript provides a rich environment to help +writers create their first draft and then further refine and edit +their masterpiece. With Manuskript you can: + +@itemize +@item Grow your premise from one sentence, to a paragraph, to a full +summary, +@item Create characters, +@item Conceive plots, +@item Construct outlines (Outline mode and/or Index cards), +@item Write with focus (Distraction free mode), +@item Build worlds, +@item Track items, +@item Edit and re-organize chapters and scenes, +@item View Story line, +@item Compose with fiction or non-fiction templates and writing modes, +@item Import and export document formats such as HTML, ePub, +OpenDocument, DocX, and more. +@end itemize + +Additionally Manuskript can help in many more ways with a spell +checker, markdown highlighter, frequency analyzer, and automatic save +in plain text file format.") + (license license:gpl3+))) + (define-public editorconfig-core-c (package (name "editorconfig-core-c") -- 2.24.1