Skip to content
ePub XHTML Visual Editor
HTML C C++ Ragel Python JavaScript Other
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ci_scripts Mac builds via Travis Jul 23, 2019
dictionaries Merge commit 'e614bf66f6e693561a9101ae17b37b9ccb3453df' as 'dictionar… Jul 24, 2019
gumbo_subtree Merge commit '586dfcd528168725847958304be49af96a6601ba' May 18, 2019
icons add return from link functionality to PageEdit Aug 22, 2019
javascript Initial versions May 8, 2019
platform first attempt at opf input recognition and spine navigation Aug 17, 2019
ts final translation updates before release Sep 2, 2019
.appveyor.yml Update appveyor version [skip ci] Sep 4, 2019
.gitignore Fix .gitignore May 8, 2019
.travis.yml Mac builds via Travis Jul 23, 2019
AppEventFilter.cpp bring new mac launch fixes from Sigil Aug 15, 2019
AppEventFilter.h bring new mac launch fixes from Sigil Aug 15, 2019
AppearanceWidget.cpp add basic Preferences Dialog support to PageEdit May 10, 2019
AppearanceWidget.h add basic Preferences Dialog support to PageEdit May 10, 2019
CMakeLists.txt update PageEdit version to 0.9.5 and Change Log to reflect new features Aug 26, 2019
COPYING.txt add GPL3 license May 8, 2019
ChangeLog.txt update PageEdit version to 0.9.5 and Change Log to reflect new features Aug 26, 2019
ElementIndex.h fix licenses and clean up other leftover uses of Sigil May 11, 2019
FocusSelectLineEdit.cpp first shot at adding SearchToolbar capability Jul 23, 2019
FocusSelectLineEdit.h first shot at adding SearchToolbar capability Jul 23, 2019
GeneralSettings.cpp second part of adding spellcheck support - installing dicts for macOS Jul 24, 2019
GeneralSettings.h allow PageEdit users to control javascript and remote access Jun 2, 2019
GumboInterface.cpp clean up from pastes from Word when generating clean html to save Jul 29, 2019
GumboInterface.h clean up from pastes from Word when generating clean html to save Jul 29, 2019
Inspector.cpp use DBG to enable/disable qDebug output Aug 21, 2019
Inspector.h do not support the Inspector below Qt 5.11 Jun 16, 2019
MainWindow.cpp try to prevent crashes when files deleted out from under PageEdit Sep 6, 2019
MainWindow.h add return from link functionality to PageEdit Aug 22, 2019
OPFReader.cpp use DBG to enable/disable qDebug output Aug 21, 2019
OPFReader.h first attempt at opf input recognition and spine navigation Aug 17, 2019
PAppearanceWidget.ui add basic Preferences Dialog support to PageEdit May 10, 2019
PGeneralSettings.ui second part of adding spellcheck support - installing dicts for macOS Jul 24, 2019
Preferences.cpp allow PageEdit users to control javascript and remote access Jun 2, 2019
Preferences.h allow PageEdit users to control javascript and remote access Jun 2, 2019
Preferences.ui add basic Preferences Dialog support to PageEdit May 10, 2019
PreferencesWidget.h add basic Preferences Dialog support to PageEdit May 10, 2019
README.md update README.md to change description to match new features [skip ci] Aug 23, 2019
SearchToolbar.cpp make find next/previous work with standard shortcuts and improve close Jul 23, 2019
SearchToolbar.h first shot at adding SearchToolbar capability Jul 23, 2019
SearchToolbar.ui first shot at adding SearchToolbar capability Jul 23, 2019
SelectCharacter.cpp fix licenses and clean up other leftover uses of Sigil May 11, 2019
SelectCharacter.h fix licenses and clean up other leftover uses of Sigil May 11, 2019
SelectCharacter.ui Initial versions May 8, 2019
SettingsStore.cpp get parts in place to enable/disable with spellcheck icon Jul 29, 2019
SettingsStore.h get parts in place to enable/disable with spellcheck icon Jul 29, 2019
UIDictionary.cpp Fix stupid typo Aug 17, 2019
UIDictionary.h first part of adding spellcheck support Jul 24, 2019
UILanguage.cpp CMake fixes for linux May 10, 2019
UILanguage.h add basic Preferences Dialog support to PageEdit May 10, 2019
Utility.cpp minor tweaks to About box info Aug 22, 2019
Utility.h add very simple About... box to PageEdit Aug 21, 2019
Viewer.h fix licenses and clean up other leftover uses of Sigil May 11, 2019
WebPageEdit.cpp intercept javascript location.href style links as NavigationTypeOther Sep 4, 2019
WebPageEdit.h fix licenses and clean up other leftover uses of Sigil May 11, 2019
WebViewEdit.cpp create preview mode context menu to remove forward, back, and reload Aug 22, 2019
WebViewEdit.h add preview mode that enables intra epub links when proofing Aug 19, 2019
Zoomable.h fix licenses and clean up other leftover uses of Sigil May 11, 2019
macos_menu_and_window_fixes.mm macOS prevent Window to Tab crap Aug 6, 2019
main.cpp Tailor Qt MessageHandler for PageEdit Aug 20, 2019
main.ui update tooltips and disable/enable prev and next Aug 24, 2019
pageedit_constants.cpp Version setting cross-platform compromise Jun 18, 2019
pageedit_constants.h Version setting cross-platform compromise Jun 18, 2019
pageedit_exception.h add basic Preferences Dialog support to PageEdit May 10, 2019
version.rc.in Add Windows version info May 10, 2019

README.md

PageEdit

An ePub visual XHTML editor based on Sigil's Deprecated BookView. It uses WebEngine instead of WebKit.

This app is working and fundamentally complete.

It requires Qt 5.12.3 or later.

To build after cloning the repo

You will need cmake version 3.0 to build:

Make sure the qt tools and libraries from Qt 5.12.3 are in your path
export PATH=~/QT512/bin:${PATH}

You build in a separate directory and not in the source directory.

After checking out the PageEdit github repo into a PageEdit directory

Building on macOS:

export MACOSX_DEPLOYMENT_TARGET=10.12
export MYQTHOME=~/Qt512
export PATH=${PATH}:${MYQTHOME}/bin
mkdir build
cd build
cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.12 -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS=-Wno-inconsistent-missing-override \
-DCMAKE_PREFIX_PATH=${MYQTHOME}/lib/cmake \
-DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/\
MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/ ../PageEdit
make
make addframeworks
cd bin
open -a /FULL_PATH_TO_THIS_DIRECTORY/PageEdit.app /FULL_PATH_TO_AN_XHTML_FILE_IN_AN_UNZIPPED_EPUB/FILENAME.xhtml
or simply drag and drop an xhtml file from an unzipped epub onto the PageEdit.app
``
or edit a set of XHtml files in epub Spine Order by loading the ePub's OPF file

On Linux

Make sure a minimum of Qt5.9.4(ish) is installed (with the WebEngine package) as well as cmake

mkdir build
cd build
cmake "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../PageEdit
make

To test cd bin
./pageedit /FULL_PATH_TO_AN_XHTML_FILE_IN_AN_UNZIPPED_EPUB/FILENAME.xhtml

You can also install PageEdit with make install (defaults to the /usr/local prefix, so use sudo if required).

NOTE: certain features, like Inspector, will require a minimum of Qt5.11.x to function on Linux.

By default, bundled hunspell dictionaries are converted to webengine spell check dictionaries (with qt tools) and installed to the QT_INSTALL_DATA/qtwebengine_dictionaries location. This location can be found using the qmake binary (of the Qt you're building PageEdit with) with the following command -qmake -query QT_INSTALL_DATA . If using the system Qt, this will typically be /usr/share/qt/qtwebengine_dictionaries. To disable the conversion/installation of these bundled dictionaries, use -DNSTALL_BUNDLED_DICTS=0 when configuring PageEdit with cmake.

On Windows:

Make sure Qt5.12.3 (with the WebEngine component) and Visual Studio 2017 are installed. Install the x64 version of Qt5.12.3 for VS2017. Install cmake 3.0+ and make sure its bin directory is added to your path.

Make sure that Qt's bin directory is also added to your PATH. Take note of the path for your Qt's prefix (the directory right above the bin directory). Open an "x64 Native Tools Command Prompt for VS2017" from the Start menu and cd to wherever you want to build.

mkdir build
cd build
cmake -G "NMake Makefiles" -DQt5_DIR="C:\path\to\your\Qt5\prefix\lib\cmake\Qt5 -DCMAKE_BUILD_TYPE=Release "C:\path\to\PageEdit's\cloned\repository"
nmake

To test: cd bin
PageEdit.exe \FULL_PATH_TO_AN_XHTML_FILE_IN_AN_UNZIPPED_EPUB\FILENAME.xhtml

Use nmake deploy to package PageEdit and all of its dependencies into a zip archive (in a newly created 'deploy' folder in the build folder)

NOTE: if you configure PageEdit with the -DDEPLOY_SFX=1 cmake option before compiling, 'nmake deploy` will attempt to create a 7-Zip self-extracting archive. So naturally, make sure 7-Zip is installed before trying to use it.

For Github repository maintainers (who am I kidding, this is to keep myself from forgetting/messing up):

The upstream sigil-gumbo repository is included in PageEdit's repository (this one) as a subtree in the gumbo_subtree prefix. To pull in upstream sigil-gumbo changes (or even to safely check if there are any), use the following command in the root of your local clone of the PageEdit repo:

git subtree pull --prefix gumbo_subtree https://github.com/Sigil-Ebook/sigil-gumbo.git master --squash

--squash because we don't need sigil-gumbo's entire history in the PageEdit repository. Push the changes to github master (with a commit message like "merge in upstream sigil-gumbo changes") if there are any.

You can also create a remote for the upstream sigil-gumbo repo to simply the subtree pull command a bit -- BUT YOU MUST REMEMBER TO USE THE --no-tags OPTION WHEN CREATING THE REMOTE. Otherwise the --squash option may not suppress all upstream history when using the remote name. A careless git fetch --all could make a dog's lunch of your repo history with a very taggy remote (which sigil-gumbo is decidedly not):

git remote add --no-tags sigil-gumbo https://github.com/Sigil-Ebook/sigil-gumbo.git

After that, pulling in any upstream sigil-gumbo changes becomes:

git subtree pull --prefix gumbo_subtree sigil-gumbo master --squash

Probably safer in the long run to create a git alias specific to the PageEdit repository (without a remote added) using the full subtree pull command if you need a shortcut. From within the PageEdit repo:

git config alias.gumbo-sub-pull 'subtree pull --prefix gumbo_subtree https://github.com/Sigil-Ebook/sigil-gumbo.git master --squash'

Use any alias name you like. I chose "gumbo-sub-pull" Then it's simply a matter of using git gumbo-sub-pull in the root of the PageEdit repository.

You can’t perform that action at this time.