Skip to content

Web based editor based on codemirror for editing markdown and LaTeX files with live updating HTML and PDF previews

License

Notifications You must be signed in to change notification settings

frabjous/open-guide-editor

Repository files navigation

Open Guide Editor (OGE)

Overview

Highly configurable web-based text editor based on codemirror. It is especially suited for editing markdown, LaTeX and html files with its built-in mechanism for viewing live-updating-as-you-type html and pdf previews. (It is also a capable editor for coding and other tasks.)

It can also be used for editing subsidiary files (css, javascript, xml, json, pandoc templates, etc.) and see their effects in the live-updating preview for their root markdown/LaTeX/html document. The default configuration uses pandoc for markdown conversions, but it can be configured to use other tools. In fact, it can be configured for creating live-previews of the output of any arbitrary kind of file, if the necessary processing commands are added to the settings.

It was created to be used for the Open Guide Typesetting Framework, though could be used independently.

Supported Platforms and Older Version

Since version 0.2.0, the server-side backend for OGE takes the form of a router that can be added to ExpressJS or compatible server apps, running on NodeJS (or possibly another server-side JavaScript runtime). An earlier version took the form of php scripts for php-based websites. The older version is still available in this repo in the php branch.

See the installation documentation for information on how to use the router (or the corresponding documentation in the php branch for it).

Demonstration

Here is a short video showing what OGE looks like and how it works overall.

out1.mp4

Documentation

Documentation for the project is broken down into four separate files. They independently cover:

These are available in the doc/ subdirectory, or by clicking the links above.

Roadmap / TODO

  • implement session control and session configuration files
    • reload settings on save
  • implement codemirror v6 editor with top panel
    • syntax highlighting
    • code folding
    • saving
    • open new files
    • create new files
    • project tree
    • allow toggling wrap/no-wrap
    • find/replace panel
    • piping selection to unix tools on server
    • good keybindings
    • auto-comment/uncomment
  • generic autopreview mechanism for input/output file-type
    • select type of output from panel
    • allow downloading unpreviewable output
  • support markdown as input
    • preview html
    • preview pdf
    • download ePub
    • citation auto-completion for pandoc-style citations/bibliographies
  • support LaTeX as input (other things require this problem be fixed)
    • smart quotes
    • error reports
    • preview pdf
    • synctex support (both directions)
  • support html as input
    • preview (itself)
  • edit supplementary files with same preview
    • css/svg for html/markdown
    • latex packages, bibtex databases or included files
    • edit multiple files at once
  • implement text-to-speech system for reading file out loud
  • implement autosaving with configurable timer
  • symbol picker
  • Fregeifier” integration
  • spellcheck through browser’s native spellcheck
  • simple jump marks
  • templates
  • custom dialogs with codemirror panels
  • documentation
    • initial to-do on readme
    • basic usage, buttons and keybindings
    • custom settings
    • installation locally
    • server installation
    • handling sessions
  • git integration
    • doing a commit
    • revert to earlier commit
    • more?
  • additional features
    • multiple file at once
    • split panels
    • linting (partial through "checkonsave")
    • support other color schemes (now supports over 300!)
    • support other fonts in the editor
    • settings panel for colors and fonts
  • long term pipe dreams (?)
    • LSP integration
    • collaborative editing

Trivia

This is a sequel to, and supersedes, my earlier K(ev)E(dit) editor. I have also written a lua neovim plugin that provides similar functionality, KNAP (Kevin’s Neovim Auto-Previewer).

License

Copyright 2023–2024 © Kevin C. Klement. This is free software, which can be redistributed and/or modified under the terms of the GNU General Public License (GPL), version 3.

About

Web based editor based on codemirror for editing markdown and LaTeX files with live updating HTML and PDF previews

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published