README.md
1![ghostwriter](http://wereturtle.github.io/ghostwriter/images/logo.png)
2
3About *ghostwriter*
4===================
5
6*ghostwriter* is a Windows and Linux text editor for Markdown, which is a plain text markup format created by John Gruber. For more information about Markdown, please visit John Gruber’s website at <http://www.daringfireball.net>. *ghostwriter* provides a relaxing, distraction-free writing environment, whether your masterpiece be that next blog post, your school paper, or your NaNoWriMo novel. For a tour of its features, please visit the [*ghostwriter* project page](http://wereturtle.github.io/ghostwriter/).
7
8Screenshots
9===========
10
11You can view screenshots of the application at [*ghostwriter's* project page](http://wereturtle.github.io/ghostwriter).
12
13Installation
14============
15
16Windows
17-------
18
19On Windows, you can either download the setup.exe and go through the setup wizard (recommended), or you can run the portable version (advanced users). To install via the setup wizard, download `ghostwriter-x64_installer.exe` from [the Windows repository here](https://github.com/michelolvera/vs-ghostwriter) to the location of your choice, double click on its icon to run, and follow the installation steps. Note that you must have administrator rights to install.
20
21The portable version is a zip file which you can unzip to any location on your computer. Within the zip file is a simple folder containing the `ghostwriter.exe` file. Double click on this file to run the program. The `dictionaries` subfolder contains your Hunspell dictionaries. The `data` subfolder contains the location of your personal dictionaries, themes, and application settings. The portable version is an excellent alternative for when you do not have administrative rights to install the application. You can take it anywhere on a thumb drive and run it--at school, a friend's house, etc.
22
23Linux
24-----
25
26If you are running Ubuntu or one of its derivatives (Linux Mint, Xubuntu, etc.), open a terminal, and enter the following commands:
27
28 $ sudo add-apt-repository ppa:wereturtle/ppa
29 $ sudo apt update
30 $ sudo apt install ghostwriter
31
32There is also now a staging PPA for release candidate builds for advanced users who wish to test drive the latest features/fixes. To install the latest release candidate, enter the following commands from a terminal:
33
34 $ sudo add-apt-repository ppa:wereturtle/staging
35 $ sudo apt-get update
36 $ sudo apt install ghostwriter
37
38Fedora users can install ghostwriter from (Copr)[https://copr.fedorainfracloud.org/] by opening a terminal and entering the following commands:
39
40 $ sudo dnf copr enable wereturtle/stable
41 $ sudo dnf install ghostwriter
42
43There is likewise a staging repository for (Copr)[https://copr.fedorainfracloud.org/], where the latest release candidate can be installed with the following commands:
44
45 $ sudo dnf copr enable wereturtle/staging
46 $ sudo dnf install ghostwriter
47
48openSUSE users can visit https://software.opensuse.org/package/ghostwriter to install the latest stable version. Note that the openSUSE version is maintained by volunteers.
49
50Finally, you may follow the build instructions below to install on Linux with the latest source code.
51
52MacOS
53-----
54
55You can download an application bundle for MacOS and copy it under /Applications (for all the users) or $HOME/Applications (for the current user). That application should work on osx 10.10+, but was tested only on macOS 10.13. Please remember that this build is experimental and you'll find some bugs. Please report those on the issue tracker.
56
57FreeBSD
58-------
59
60To install ghostwriter on FreeBSD, open a terminal, and enter the following command:
61
62 $ sudo pkg install ghostwriter
63
64Build
65=====
66
67If you wish to build from the source code, you will need Qt 5, available from <http://www.qt.io/> if you are on Windows, or in your Linux distribution's repository. If you are on MacOS you will need the latest Qt 5 from brew.
68
69This documentation assumes you already have the source code unzipped in a folder.
70
71Windows
72-------
73
74Building on Windows requires Visual Studio. Open a terminal window, and enter the following commands:
75
76 > cd <your_ghostwriter_folder_location>
77 > qmake
78 > nmake release
79
80Unless you have built *ghostwriter* as a standalone executable statically linked to your own build of Qt's source code, you will need to copy the necessary Qt and Windows .dll files to the same location as `ghostwriter.exe` so that the executable can find the required libraries.
81
82Linux
83-----
84
85Before proceeding, ensure that you have the necessary packages installed for Qt 5.
86
87For Debian or Ubuntu distributions:
88
89 $ sudo apt install g++ qt5-default qtbase5-dev libqt5svg5-dev qtmultimedia5-dev qtwebengine5-dev libhunspell-dev pkg-config libqt5concurrent5 qttools5-dev-tools
90
91For Fedora:
92
93 $ sudo dnf install qt-devel qt5-qtbase-devel qt5-qtsvg-devel qt5-qtmultimedia-devel qt5-qtwebengine-devel hunspell-devel
94
95For other Linux flavors, the list will be similar; `qmake` will tell you if you are missing anything.
96
97Next, open a terminal window, and enter the following commands:
98
99 $ cd <your_ghostwriter_folder_location>
100 $ qmake
101 $ make
102 # make install
103
104The last command will install *ghostwriter* on your machine. If you need to install the application in an alternative location to `/usr/local`, enter the following command in lieu of the second command above, passing in the desired value for `PREFIX`:
105
106 $ qmake PREFIX=<your_install_path_here>
107
108For example, to install under `/opt`, you would enter:
109
110 $ qmake PREFIX=/opt
111
112**Note:** If you see blank areas where there should be icons, then you are missing the Qt dependency for the SVG images. On Debian and Ubuntu, this is libqt5svg5. Other Linux distributions may vary on the exact package name.
113
114MacOS
115-----
116
1171. You need either *XCode* or *XCode command line tools* to install and run brew and to build ghostwriter and other Qt applications.
118
119- You can install XCode from Mac App Store
120- You can install XCode command line tools from your terminal typing `xcode-select --install`
121
1222. Install [homebrew](http://brew.sh). In a terminal:
123
124``` shell
125/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
126```
127
1283. Install Qt 5 from brew.
129
130``` shell
131$ brew install qt5
132```
133
134*Note:* if you installed XCode command line tools qt will fail building the application with an error like `Project ERROR: Could not resolve SDK Path for 'macosx' Error while parsing file <ghostwriter.pro>. Giving up.`. Please follow the [instructions to build Qt applications without installing XCode](doc/BUILD_MAC.md)
135
1364. run `brew link`
137
138``` shell
139brew link qt5 --force
140```
141*Note:* This command allows you to use `qmake` from the CLI. You'll need it for the final step.
142
1435. Clone this repository and build ghostwriter:
144
145``` shell
146git clone https://github.com/wereturtle/ghostwriter
147cd ghostwriter
148qmake
149make
150
151```
152
153Make sure you're cloned the repo, not just downloaded the src tarball.
154
1555. If you want *ghostwriter* in your applications folder, from the repo root do:
156
157``` shell
158$ sudo cp -R ./build/release/ghostwriter.app /Applications
159```
160
1616. To use *ghostwriter* from the command line, do:
162
163``` shell
164$ sudo ln -s /Applications/ghostwriter.app/Contents/MacOS/ghostwriter /usr/local/bin
165```
166
167FreeBSD
168-------
169
170Prerequisites
171
172* Git (`git` or `git-lite`)
173
174Install the dependencies
175
176 sudo pkg inst hunspell en-hunspell pkgconf qt5-svg qt5-multimedia \
177 qt5-webengine qt5-concurrent qt5-buildtools qt5-qmake qt5-linguist
178
179You will also need to install QtWebEngine
180
181Get the sources
182
183 git clone https://github.com/wereturtle/ghostwriter
184
185Build
186
187 cd ghostwriter
188 qmake
189 make
190 sudo make install
191
192Command Line Usage
193==================
194
195For terminal users, *ghostwriter* can be run from the command line. In your terminal window, simply type the following:
196
197 $ ghostwriter myfile.md
198
199where `myfile.md` is the path to your Markdown text file.
200
201Portable Mode
202=============
203
204You can download the Windows Portable version of *ghostwriter*, or make your own on any OS. Just as with FocusWriter, simply create a folder named `data` in the same folder as the `ghostwriter.exe` or `ghostwriter` executable file (depending on the OS). The application will now use settings and themes in this folder. If you need to migrate existing themes you created while running in non-portable mode, simply copy them from the relevant folder below:
205
206- Windows: C:\\Users\\\<your_user_name\>\\AppData\\Roaming\\ghostwriter\\themes
207- Linux: /home/\<your_user_name\>/.config/ghostwriter/themes
208- MacOS: ~/Library/Application Support/ghostwriter/themes
209
210**Note:** The MacOS settings location needs to be confirmed. A full sample application path would also be helpful (instead of listing `~/`). If you are a hobbyist MacOS developer and if you can confirm where *ghostwriter* stores it's settings, please put in a pull request with your revisions to this README file.
211
212Themes
213======
214José Geraldo Gouvêa has generously provided a GitHub theme repository for *ghostwriter* [here](https://github.com/jggouvea/ghostwriter-themes). You may download new themes here, or create your own and put in a pull request to add a new theme to the repository.
215
216Wiki
217====
218*ghostwriter* has a community wiki [here](https://github.com/wereturtle/ghostwriter/wiki). You can read up on help topics or contribute your own.
219
220Contribute
221==========
222
223Please submit any bugs you find through [GitHub](http://github.com/wereturtle/ghostwriter) with a detailed description on how to replicate the problem. New translations are also welcome. However, please note that new feature requests are no longer being accepted. Please read the [contributing guide](https://github.com/wereturtle/ghostwriter/blob/master/CONTRIBUTING.md) for further details on how you can contribute to the project.
224
225Roadmap
226========
227
228- Port from qmake to cmake in preparation for Qt 6.
229- Add session and document goals.
230- Updating only the changed HTML in live preview to improve rendering speed.
231- Add quick preview popup of equations and images.
232- Add quick preview popup of current paragraph/section.
233- Go to corresponding line in editor on `Ctrl+left click` over text in live preview.
234- Replace HUDs with popup menus or sidebar.
235- Provide a fully-tested MacOS port with installer. **Help wanted!**
236- Translate *ghostwriter* into other languages via *Qt Linguist*. **Help wanted!**
237
238Licensing
239=========
240
241The source code for *ghostwriter* is licensed under the [GNU General Public License Version 3](http://www.gnu.org/licenses/gpl.html). However, various icons and third-party FOSS code (i.e., Hunspell and Sundown) have different licenses compatible with GPLv3. Please read the COPYING files in the respective folders for the different licenses.
242