A simple, clean, and beautiful WYSIWYG Markdown editor and content-management system

Overview

ScribeDown

Current version: v0.0.1 Feature level: See the roadmap

Scribedown v0.0.1 screenshot

Beautiful, Clean, Writer-Oriented

The goal of ScribeDown is to make Markdown the best, cleanest, nicest experience for those who are, like myself, using it to write books, blog posts, and other non-code-oriented things. Most Markdown editors are based on a split-view paradigm, and look like code editors on one side and web pages on the other, which really isn't pleasant for writing and proof-reading, and also isn't the norm for traditional word processing, which most people who are writing books and blog posts are typically more familiar with. ScribeDown changes all of this by orienting itself around a few core features:

1. What You See Is What You Get

Scribedown is WYSIWYG editor that uses Markdown under the hood as a highly-compatible back-end, but it tries to not expose that too much.

As you write Markdown formatted text, it displays that text with different font sizes, weights, indentation levels, etc, in order to give you a preview, inline, of what the final document will look like when rendered.

It also has keyboard controls similar to those used in traditional word processors to insert Markdown formatting, so you don't need to know Markdown at all.

Additionally, the text entry area in ScribeDown is centered, padded, and in a serif font, so it's designed to be as readable as possible, looking like an actual finished word-processing document instead of a code file.

2. Document-Oriented

ScribeDown lets you open an entire directory, so that all of the Markdown documents in that directory are put into your sidebar, to be opened in your current tab or in a new tab. Not only that, but instead of treating documents like code files, ScribeDown reads either the first H1 or the YAML title property from each Markdown file in your project directory, and uses that as the file's title.

3. Simple GUI Interface

Another focus for ScribeDown is having a clean, simple, beautiful user interface around your document and integrates well with the surrounding Desktop Environment. In order to do this, we have to sacrifice some platform interoperability, by choosing a DE to target. We chose GNOME.

Roadmap

Version 0.1.0 Roadmap

  • Open project folder
  • Get list of markdown documents in project and display them on the sidebar
  • Display markdown file title from top header or YAML metadata in document list
  • Open document contents when clicked in the side bar
  • Search through files in document list
  • When a file is clicked, open in new tab or switch to tab
  • Allow closing tabs
  • Create new file when "New" button is pressed
  • Save file contents on Ctrl + S
  • Undo and redo key commands
  • Update file title when file is changed in document list sidebar
  • Parse tags from YAML metadata for each document and display them in the document list rows
  • Filter documents by tag
  • Open file by name using Ctrl + P
  • Parse markdown and get text ranges for each formatting
  • Create tags for those ranges depending on what they are, and add them to the textview
  • Update parsing and tags every time a change is made

Version 0.2.0 Roadmap

  • Automatically fold YAML metadata
  • Hide Markdown formatting entirely except when adjacent to cursor
  • Get document outline and display in alternate sidebar tab

Version 0.3.0 Roadmap

  • Dialog to view and modify basic YAML metadata for a file
  • Programmable dialog to to publish projects
  • Store project metadata
  • Store application state, such as what files are open

Demo videos

Alpha v0.0.1 demo

You might also like...
A simple note taking application written in Rust and GTK4
A simple note taking application written in Rust and GTK4

Rnote A simple note taking application written in Rust and GTK4. Rnote aims to be a simple but functional note taking application for freehand drawing

Szyszka is a simple but powerful and fast bulk file renamer.
Szyszka is a simple but powerful and fast bulk file renamer.

Szyszka is a simple but powerful and fast bulk file renamer. Features Written in Rust Available for Linux, Mac and Windows Simple GUI created

Simple GTK Rust Fuzzer which aims to test all available classes and functions in GTK.

Gtk Rust Fuzzer Simple GTK Rust Fuzzer which aims to test all available classes and functions in GTK. It finds bugs inside GTK functions, GTK exported

A simple, cross-platform GUI automation module for Rust.

AutoPilot AutoPilot is a Rust port of the Python C extension AutoPy, a simple, cross-platform GUI automation library for Python. For more information,

A simple UI framework for Rust built on top of IUP (http://webserver2.tecgraf.puc-rio.br/iup/)

KISS-UI A UI framework for Rust based on the KISS (Keep It Simple, Stupid!) philosophy. Powered by the IUP GUI library for C by Tecgraf, via the bindi

A simple news reading GUI app built in Rust
A simple news reading GUI app built in Rust

Headlines [WIP] A native GUI app built with Rust using egui. Uses newsapi.org as the source to fetch news articles. This is a WIP and the current stat

A simple, efficient spring animation library for smooth, natural motion in Rust
A simple, efficient spring animation library for smooth, natural motion in Rust

Natura A simple, efficient spring animation library for smooth, natural motion in Rust Usage Natura is framework-agnostic and works well in 2D and 3D

A simple GUI version of the pH calibration tool written in egui, based on the eframe template.

caliphui A simple GUI version of the pH calibration tool written in egui, based on the eframe template. Usage Native binaries are provided under relea

Simple, thread-safe, counter based progress logging

🦫 proglog Documentation Crates.io This is a simple, thread-safe, count-based, progress logger. Synopsis proglog hooks into your existing log implemen

Owner
Alex Dumas
Hi! ^.^ I'm currently working on a bachelor's in computer science at Penn State University, graduating in 2024. I've been programming since 7.
Alex Dumas
Build beautiful desktop apps with flutter and rust. 🌠 (wip)

flutter-rs Build flutter desktop app in dart & rust. Get Started Install requirements Rust flutter sdk Develop install the cargo flutter command cargo

null 2k Dec 26, 2022
A small tool to display markdown files as a slideshow.

Rusty Slider A small tool to display markdown files as a slideshow. Demo Try out Rusty Slider online: Example slideshows. Download Rusty Slider is ava

Olle Wreede 37 Dec 21, 2022
Experimental package manager/system configurator for system hoppers

mascara An experimental package manager/config initializer tool for system hoppers. mascara.toml [mascara] feature = "Debian" logs = { stdout = "blue"

Ethan Gallucci 1 Apr 15, 2022
Graphical font editor (GTK + Rust)

gerb *gerb ʰ-: reconstructed Proto-Indo-European root, meaning to carve gerb: a WIP font editor in gtk3 and rust Introduction gerb is an experimental,

Manos Pitsidianakis 40 Jan 1, 2023
File system enumerator and monitor for Android.

File system enumerator and file monitor for Android. Built to be compatible with other command line utilties! This tool was created to somewhat automa

Kyle Benac 15 Aug 23, 2022
An operating system kernel running on RISC-V arch. Developing...

An operating system kernel running on RISC-V arch How to build it Environmental requirement rustup ( >=1.57.0-nightly) Qemu ( >=5.0.0) Step Build loca

JAYICE 4 Dec 15, 2022
A lightweight cross-platform system-monitoring fltk gui application based on sysinfo

Sysinfo-gui A lightweight cross-platform system-monitoring fltk gui application based on sysinfo. The UI design is inspired by stacer. The svg icons a

Mohammed Alyousef 22 Dec 31, 2022
Play Hack The Box directly on your system.

HTB Toolkit HTB Toolkit allows you to play Hack The Box machines directly on your system. Usage To use HTB Toolkit, you need to retrieve an App Token

D3vil0p3r 9 Sep 5, 2023
Deno is a simple, modern and secure runtime for JavaScript and TypeScript that uses V8 and is built in Rust.

Deno Deno is a simple, modern and secure runtime for JavaScript and TypeScript that uses V8 and is built in Rust. Features Secure by default. No file,

Derek Jones 2 Aug 13, 2022
Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.

libui: a portable GUI library for C This README is being written. Status It has come to my attention that I have not been particularly clear about how

Pietro Gagliardi 10.4k Dec 31, 2022