This tool helps with the creation of PDFs and EPUBs for WorldEnd2: What Do You Do at the End of the World? Could We Meet Again Once More? (or WorldEnd2 / Suka Moka for short) by providing a simple interactive user interface for generating and viewing volumes.
The main repository containing the volume text and Python tools responsible for the backend functionality is here.
This package depends on virtualenvwrapper and Transient.
Since this is not on MELPA, you need to clone this to a local directory (i.e. ~/.config/emacs/site-lisp/worldend2/ or ~/.config/doom/lisp/worldend2/). You can also use a package recipe in Doom Emacs:
(package! worldend2
:recipe (:host github :repo "Nyx102/worldend2.el"))You need a Python virtual environment in ~/.virtualenvs/worldend2-formatting (customized by worldend2-venv-name).
Once you have that done, you just need to load and set a keybinding for worldend2-transient-menu:
Doom Emacs
(require 'worldend2)
;; Use the one below if you installed manually
;; (load! "lisp/worldend2/worldend2")
(map! :leader
:desc "Launch WorldEnd2 menu"
:n "W" #'worldend2-transient-menu)Vanilla Emacs
(require 'worldend2)
(global-set-key (kbd "C-c w") #'worldend2-transient-menu)There are a few variables that you can set, which are summarized in the following table:
NOTE: I have added zero-width spaces to the values in the Default column so that GitHub can display the code correctly.
| Variable | Default | Description |
|---|---|---|
worldend2-git-repo | "~/worldend2-formatting" | Path to the git repository |
worldend2-venv-name | "worldend2-formatting" | Name of the virtual environment |
worldend2-default-pdf-view-method | 'emacs | Default method for viewing the generated PDF |
worldend2-default-epub-view-method | 'emacs | Default method for viewing the generated EPUB |
worldend2-pdf-generation-extra-args | "" | Extra arguments for PDF generation |
worldend2-epub-generation-extra-args | "" | Extra arguments for EPUB generation |
Every variable except for worldend2-git-repo and worldend2-venv-name can be overridden at runtime using the Transient menu, by passing the value in when calling the function, or by pressing the universal argument (C-u) when calling interactively.
There are 7 functions that you can use if you don’t want to use the Transient menu (worldend2-transient-menu):
| Function | Description |
|---|---|
worldend2-generate-pdf | Generate the PDF for the specified volume number with optional extra arguments. If called with the universal argument (C-u), it prompts for both volume number and extra arguments. |
worldend2-generate-epub | Generate the PDF for the specified volume number with optional extra arguments. If called with the universal argument (C-u), it prompts for both volume number and extra arguments. |
worldend2-goto-directory | Go to the directory of the WorldEnd2 git repository. |
worldend2-activate-venv | Activate the Python virtual environment for the WorldEnd2 git repository. |
worldend2-deactivate-venv | Deactivate the Python virtual environment for the WorldEnd2 git repository. |
worldend2-view-pdf | View the PDF for the specified volume number with optional PDF viewer. If called with the universal argument (C-u), it prompts for both volume number and the PDF viewer. |
worldend2-view-epub | View the EPUB for the specified volume number with optional EPUB viewer. If called with the universal argument (C-u), it prompts for both volume number and the EPUB viewer. |
Doom Emacs
;;; $DOOMDIR/packages.el -*- no-byte-compile: t; -*-
(package! worldend2
:recipe (:host github :repo "Nyx102/worldend2.el"));;; $DOOMDIR/init.el -*- lexical-binding: t; -*-
(require 'worldend2)
(setq worldend2-git-repo (expand-file-name "~/worldend-formatting"))
(setq worldend2-venv-name "worldend-formatting")
(setq worldend2-default-pdf-view-method "zathura") ; Default is 'emacs
(setq worldend2-default-epub-view-method "ebook-viewer") ; Default is 'emacs
(map! :leader
:desc "Launch WorldEnd2 menu"
:n "W" #'worldend2-transient-menu)Vanilla Emacs
(require 'worldend)
(setq worldend2-git-repo (expand-file-name "~/worldend2-formatting"))
(setq worldend2-venv-name "worldend2-formatting")
(setq worldend2-default-pdf-view-method "zathura") ; Default is 'emacs
(setq worldend2-default-epub-view-method "ebook-viewer") ; Default is 'emacs
(global-set-key (kbd "C-c w") #'worldend2-transient-menu)GNU General Public License v3.0 or later