all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
To: 38881@debbugs.gnu.org
Subject: [bug#38881] [PATCH] Add manuskript
Date: Fri, 03 Jan 2020 01:01:53 +0100	[thread overview]
Message-ID: <87o8vlwgpa.fsf@nicolasgoaziou.fr> (raw)

[-- Attachment #1: Type: text/plain, Size: 95 bytes --]

Hello,

The following patch adds Manuskript.

Feedback welcome.

Regards,

-- 
Nicolas Goaziou

[-- Attachment #2: Add manuskript --]
[-- Type: text/x-diff, Size: 6348 bytes --]

From 5d48847bc62fcfade79b349424e8a8e2eb9ee694 Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
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 <me@tobias.gr>
 ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;;
 ;;; 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


             reply	other threads:[~2020-01-03  0:03 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-03  0:01 Nicolas Goaziou [this message]
2020-01-15 21:05 ` [bug#38881] [PATCH] Add manuskript Ludovic Courtès
2020-01-15 21:59   ` bug#38881: " Nicolas Goaziou

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87o8vlwgpa.fsf@nicolasgoaziou.fr \
    --to=mail@nicolasgoaziou.fr \
    --cc=38881@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.