https://github.com/shira-374/rstpad
Standalone reStructuredText editor with live preview (native app)
https://github.com/shira-374/rstpad
application cross-platform editor live-preview osx preview restructuredtext rst side-by-side standalone text-editor windows
Last synced: 9 months ago
JSON representation
Standalone reStructuredText editor with live preview (native app)
- Host: GitHub
- URL: https://github.com/shira-374/rstpad
- Owner: shira-374
- License: mit
- Created: 2016-11-19T23:10:27.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2023-04-22T15:05:44.000Z (over 2 years ago)
- Last Synced: 2025-03-24T06:03:37.631Z (10 months ago)
- Topics: application, cross-platform, editor, live-preview, osx, preview, restructuredtext, rst, side-by-side, standalone, text-editor, windows
- Language: C++
- Homepage:
- Size: 572 KB
- Stars: 53
- Watchers: 4
- Forks: 8
- Open Issues: 3
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.rst
- License: LICENSE
Awesome Lists containing this project
README
RSTPad
######
reStructuredText editor with live preview.
.. image:: screenshot.png
.. contents::
Features
********
- live preview with autoscroll
- configurable orientation (horizontal / vertical)
- search & replace
- toolbar with common elements:
- headings
- bold, italic
- inline code
- code blocks
- horizontal rule
- lists
- link
- image
- inserting highlighted code blocks (Pygments)
- autocomplete for known lexer names
- built-in help pages
- syntax cheat sheet
- directives
- export to PDF
Known limitations
*****************
- UTF-8 documents only
Implementation details
**********************
- the application contains an embedded Python interpreter
- Python libraries are located in the application's directory / bundle
- the Docutils library is used to convert RST to HTML on the fly
- the converstion is done in a separate thread
- *resources/preview/docutils_extensions.py* overrides some of the HTML writer's methods to insert additional tags and attributes
- HTML output is displayed using Qt WebEngine
- external links are delegated to QDesktopServices
- autoscroll is implemented in JavaScript
- the preview is "frozen" during loading and autoscrolling to allow for smooth transitions (a previously rendered frame is used for the duration)
Compilation
***********
Prerequisites
=============
- QT 5.8 & Qt Creator
- Python 2.7 (32bit or 64bit depending on the used compiler)
- `Pygments `_ (tested with 2.1.3)
- `Docutils `_ (tested with 0.13, revision 7975)
Build configuration
===================
.. NOTE::
- The paths used below (such as *C:/python*) are just examples. Use actual paths :)
- Use forward slashes in all paths. Omit trailing slashes.
- OS X notes and examples assume that Python 2.7 has been installed using Homebrew. Your paths may vary.
Copy *rstpad.local.pro.dist*, name it *rstpad.local.pro* and set the following variables:
- ``PYTHON_LINK``
- Python linker flags
- Windows: ``-LC:/python/libs -lpython27``
- OS X: use the `python-config `_ utility to determine linker flags:
- ``python2.7-config --ldflags``
- ``PYTHON_INCLUDE_PATH``
- path to a directory containing Python's header files
- Windows: ``C:/python/include``
- OS X: ``/usr/include/python2.7``
- ``PYTHON_SYS_PATH``
- path to a directory containing:
- ``libs.zip`` - the Python standard library as a ZIP archive
- ``pygments``, ``docutils`` - library directories (these cannot be inside *libs.zip*)
- any *.pyd*, *.dll* and *.so* modules that should be available in a standard Python installation
- *.pyc* files should be excluded
Windows deployment
==================
#. Use the `Windows Deployment Tool `_ with the release binary to fetch required DLLs.
Example: ``windeployqt.exe --release --no-translations rstpad.exe``
#. Locate and copy the correct ``python27.dll`` file or the application won't work on machines without Python 2.7 installed.
- possible locations depend on how you've installed Python and on its version:
- *C:\\Windows\\System\\python27.dll*
- *C:\\Windows\\SysWoW64\\python27.dll*
- make sure you're ussing the correct version (32 vs 64bit)
OS X deployment
===============
Use the `Mac Deployment Tool `_ to convert the resulting application into a *.dmg* file:
::
macdeployqt RSTPad.app -dmg
Other platforms
===============
Not tested yet. You're on your own :)