Open Source Components

We’re making ThiefMD components reusable. You can find the components in at GitHub.com/ThiefMD. We’re also built on top of other great open source software

libwritegood

libwritegood is like GtkSpell for style. libwritegood is based on btford/write-good. It’s easy to use, for example:

var manager = Gtk.SourceLanguageManager.get_default ();
var language = manager.guess_language (null, "text/markdown");
var view = new Gtk.SourceView ();
buffer = new Gtk.SourceBuffer.with_language (language);
buffer.highlight_syntax = true;
view.set_buffer (buffer);
view.set_wrap_mode (Gtk.WrapMode.WORD);

//
// Enable write-good
//

checker = new WriteGood.Checker ();
checker.set_language ("en_US");
checker.attach (view);

//
// Disable hard sentences
//
checker.check_hard_sentences = false;

//
// Quick check only scans around the last check cursor position, and
// and the current cursor position
//
buffer.changed.connect (() => {
    checker.quick_check ();
});

//
// Recheck all will scan the entire document
//
buffer.paste_done.connect ((clipboard) => {
    checker.recheck_all ();
});

Writeas-vala

writeas-vala is a Write Freely client library. It can be used for submitting and managing posts on Write.as or any other Write Freely instance.

Ghost-vala

Ghost-vala is a simple library for publishing posts to ghost blogs.

WordPress-vala

WordPress-vala is a simple library for publishing posts to WordPress blogs. It contains some workarounds and retries for some common issues.

Medium-vala

Medium-vala is a simple library for publishing posts to Medium.

Forem-vala

Forem-vala is a simple library for publishing posts to Forem communities (like dev.to).

Hashnode-vala

Hashnode-vala is a simple library for publishing posts to Hashnode.

BibTeX-vala

BibTeX-vala is a quick processor for BibTeX files. It generates a HashMap of items in the BibTeX file and allows for querying a list of the labels and getting a title for the label.

public static void main () {
    // Set file
    BibTex.Parser parser = new BibTex.Parser ("test.bib");
    // Parse
    parser.parse_file ();

    // Print labels and titles
    foreach (var label in parser.get_labels ()) {
        print ("%s - %s\n", label, parser.get_title (label));
    }
}

Theme Generator

Theme Generator helps generate Markdown editor themes for Ulysses and GtkSourceView based editors.

Have a consistent writing environment no matter where you’re at.

ultheme-vala

ultheme-vala, a converter for Ulysses Themes to markdown GtkSouceView Style Schemes.

ultheme-vala converts a ultheme package into both a light and dark GtkSourceView Style Scheme. In ThiefMD, we load the file and then persist the theme to disk.

public static int main (string[] args) {
    var ultheme = new Ultheme.Parser (File.new_for_path (args[1]));
    // Display resulting Dark Theme XML for GtkSourceView
    print (ultheme.get_dark_theme ());

    return 0;
}

Stolen Victory Duo

Stolen Victory Duo is a mashup of iA Writer Duospace with Victor Mono. It aims to be digitally authentic with human approachability.

You can try it here: