davidgiven / wordgrinder

A word processor which gets the hell out of your way and lets you get some work done.
http://cowlark.com/wordgrinder
978 stars 61 forks source link
                           WORDGRINDER V0.9
                           ================

                       © 2007-2022 David Given
                             2022-11-07

                            Unix version

INTRODUCTION

WordGrinder is a simple, Unicode-aware word processor that runs on the console. It's designed to get the hell out of your way and let you write; it does very little, but what it does it does well.

It supports basic paragraph styles, basic character styles, basic screen markup, a menu interface that means you don't have to remember complex key sequences, HTML import and export, and some other useful features.

WordGrinder does not require a GUI. It can run in a terminal. (But there are GUI versions for Unixishes, Windows and OSX if you want them.)

INSTALLATION

WordGrinder needs the following packages installed:

Chances are you already have these in your distribution. Merely install these packages:

If you have Debian/Ubuntu: ninja-build libncursesw5-dev zlib1g-dev libglfw3-dev

If you have Fedora: zlib-devel libglfw-devel ncurses ncurses-devel ninja-build

If you have OSX with Homebrew: ninja pkg-config glfw

To detect a sensible configuration and build, simply do:

make

To install into your home directory, do:

sudo make install

If you want to install somewhere else, do:

PREFIX=/usr/local ./configure
make install

(Change PREFIX to whatever you like; naturally, if you're not installing in a global location, you don't need sudo.)

(There are various other poorly-documented configuration options in the configure script.)

It is now ready to use.

Special note for compilation on Windows: do 'make' from MSYS2 with the Mingw64 toolchain and nsis installed. use Cygwin. You'll end up with the installer package in bin/.

USAGE

Do this:

wordgrinder

...to get a blank document. You can load an existing document with:

wordgrinder README.wg

Please read README.wg; it contains the manual. There is also a man page, which describes the command line interface.

If you use WordGrinder, please join the mailing list. This will allow you to ask questions, hopefully receive answers, and get news about any new releases. You can subscribe or view the archives at the following page:

https://lists.sourceforge.net/lists/listinfo/wordgrinder-users

LICENSE

WordGrinder contains a number of embedded libraries, described here. Not all of them may be used by any given binary depending on your configuration. Please look in the third_party directory for the full license text.

WordGrinder is © 2007-2020 David Given, and is available under the MIT license.

The distribution contains a copy of Luau. This is also MIT licensed and is © 2019-2022 Roblox Corporation and © 1994-2019 Lua.org, PUC-Rio. See http://luau-lang.org and http://lua.org for more information.

The distribution contains a copy of the MiniZip library. This is © 1998-2010 Gilles Vollant and Mathis Svenson, and is available under the BSD license.

The distribution contains a copy of the SCOWL wordlist for British and American-Canadian English. This is © Kevin Atkinson and J. Ross Beresford. Please see the licenses/COPYING.Scowl file for the full license text.

The distribution contains a copy of the xpattern module. This is also MIT licensed and is © 2008-2009 David Manura. See http://lua-users.org/wiki/ExPattern for more information.

The distribution contains a copy of the LargeLineHeight-NoLoopK version of the Fantasque Sans Mono font family. This is distributable under the terms of the Open Font License 1.1 © 2013-2017 Jany Belluz. See https://github.com/belluzj/fantasque-sans for more information.

The distribution contains parts of the libstb utility library, written by Sean T Barrett et al. This is public domain where possible and MIT licensed otherwise. Please see https://github.com/nothings/stb/blob/master/LICENSE for more information.

The distribution contains most of the clip clipboard library, written by David Capello. This is MIT licensed and is © 2015-2022 David Capello. Please see https://github.com/dacap/clip for more information.

The distribution contains a cut-down version of the cmark Markdown library. This is an aggregation of various pieces of software that in total is 2-clause BSD / MIT licensed. Please see https://github.com/commonmark/cmark/blob/master/COPYING for more information.

The distribution contains a cut-down version of the fmt library. This is MIT licensed and is © 2012 Victor Zverovich et al. Please see https://github.com/fmtlib/fmt for more information.

REVISION HISTORY

WordGrinder 0.9: 2021-XX-XX: threw away the X11 and Windows GDI frontends and replaced them with OpenGL --- there's now a GUI version for OSX! New shiny colour scheme and ruler layout kindly contributed by Pacrox. Also threw away and replaced the build.lua file with something even worse. Added the ability to quit WordGrinder by closing the window. Fixed a bug where the global settings would be reset during CLI use. WordGrinder files with CRLF line endings can now be read. Emacs orgmode export (contributed by VitorGoatman@github). ESCAPE can be used to cancel things. Both TAB and ^I can be used for autocompletion in file dialogues. Miscellaneous editor state machine bugfixes. Multiple scroll modes. Changed the cursor shape for visibility. Use the system clipboard where possible. Added mouse support. Switch interpreters from Lua to Luau, and refactor all the code to be type safe in strict mode, finding and fixing so many minor bugs along the way. The document index is now written to files correctly.

WordGrinder 0.8: 2020-10-13: started out as a bugfix release but then I got carried away. New features: a paragraph style for numbered bulletpoints; more look-and-feel options; the caret now flashes; basic template support; word count display of selected text; custom autosave directory; autocompletion in file dialogues; Windows console version; recent documents list; Markdown import. Bugfixes: lots of import and export fixes (and tests so that they stay fixed); spellchecker fixes; selection position fixes; keyboard entry fixes on Windows; graphics fixes on Windows; filesystem fixes on Windows; assorted other minor tweaks.

WordGrinder 0.7.2: 2018-11-29: bugfix release. Pasting immediately after loading a document no longer hard crashes. Don't buffer overrun if given invalid unicode. Global settings are now updated correctly (in several places). Fix a data loss situation when saving fails.

WordGrinder 0.7.1: 2017-11-02: correct and cleaner license reporting; rearrange the source so that we can avoid shipping upstream dependencies if we want. No actual code changes.

WordGrinder 0.7: 2017-10-30: new plain text diffable file format; Lua 5.3 support; better locale detection; dense paragraphs mode; lots of bugfixes. Official OSX support. New (better, hopefully) build system.

WordGrinder 0.6: 2015-04-18: New X11 frontend (actual bold and italic on Linux machines!); shift+cursor keys starts a selection; more HTML emission fixes; non-document persistent settings; global key maps (currently via a configurationfile); search works properly across words with markup; italic display in a terminal (if you have a new enough version of ncurses); more traditional charstyle selection (you can press ^B at the beginning of words now!); more traditional selection model (shift+cursor keys works now!); fix crash on loading very large .wg files; smart quote support; more efficient files; undo and redo; spellchecker; colour configuration on X11 and Windows; MarkDown export.

WordGrinder 0.5.2.1: 2015-02-21: Minor bugfixes: build system fixes; updated minizip to a version which builds better on Ubuntu; OSX Homebrew build system; delete word; subsection counts now correct; HTML PRE emission issue corrected.

WordGrinder 0.5.1: 2013-12-08: Major overhaul: fixed hideous file corruption bug; much improved Windows text renderer; bold; page count; widescreen mode; UI style overhaul; many other minor bugfixes. Many thanks to Connor Karatzas for extensive Windows testing.

WordGrinder 0.4.1: 2013-04-14: Minor bugfixes and build optimisation in aid of the Debian package.

WordGrinder 0.4: 2013-03-24: Major overhaul: OpenDocument import/export, new much smaller file format, a proper Windows port, updated to Lua 5.2, switched away from Prime Mover to make (sob), much bug fixage.

WordGrinder 0.3.3: 2009-12-13: Fixed a bug when searching for or replacing strings containing multiple whitespace characters (that was triggering the crash handler). Thanks to lostnbronx for the report. Added RAW and PRE paragraph styles. Cleaned up HTML import. Add customisability to HTML export. Relicensed to MIT.

WordGrinder 0.3.2: 2008-11-03: Fixed a very simple and very stupid typo that caused a crash if you tried to turn autosave on. Added a simple exception handler to try and prevent data loss on error in the future.

WordGrinder 0.3.1: 2008-09-08: Minor bugfix revision to correct a few minor but really embarrassing crashes problems in 0.3: no crash on HTML import, no crash on File->New. Also some minor cosmetic fixes I noticed while doing the work.

WordGrinder 0.3: 2008-09-07: Lots more bug fixes. Added LaTeX export; troff export; next/previous word/character; table of contents; autosave; scrapbook; Windows console port. Fixed some issues with key binding. Lua bytecode is now embedded in the executable, making it self contained. --lua option. General overhaulage.

WordGrinder 0.2: 2008-01-13: Lots of bug fixes. Added word count. Added about dialogue.

WordGrinder 0.1: 2007-10-14: Initial release.

THE AUTHOR

WordGrinder was written by me, David Given. You may contact me at dg@cowlark.com, or visit my website at http://www.cowlark.com. There may or may not be anything interesting there.