using Gtk; int main (string[] argv) { // Create a new application var app = new Gtk.Application ("com.example.GtkApplication", GLib.ApplicationFlags.FLAGS_NONE); app.activate.connect (() => { var window = new Gtk.ApplicationWindow (app); window.width_request = 250; window.height_request = 100; window.title = "Not Loopy"; var text_view = new TextView(); text_view.set_wrap_mode (WrapMode.WORD_CHAR); // text_view.set_editable (false); var buffer = text_view.get_buffer(); var tags = new GtkCommonMark.TagManager(buffer); // buffer.begin_irreversible_action(); // TextIter iter; // buffer.get_iter_at_offset (out iter, 0); // buffer.insert_with_tags (ref iter, "Oh My!\n", -1, tags.heading_l1); // buffer.insert(ref iter, "Hello world ", -1); // buffer.insert_with_tags (ref iter, "this is my link", -1, tags.emphisis, tags.strong); // buffer.insert(ref iter, ", what do you think?\n", -1); // buffer.insert_with_tags (ref iter, "What a quote though\nI don't know what to think!", -1, tags.strong); // buffer.end_irreversible_action(); var reader = new GtkCommonMark.Reader(buffer, tags); var file = GLib.FileStream.open ("/home/bbarrow/Documents/Recipes/canned_spaghetti_toast/recipe.md", "r"); var root = CMark.Node.parse_file (file, CMark.OPT.DEFAULT); reader.append_node (root); text_view.top_margin = 18; text_view.bottom_margin = 18; text_view.left_margin = 18; text_view.right_margin = 18; var srcolled_window = new Gtk.ScrolledWindow (); srcolled_window.set_policy (PolicyType.NEVER, PolicyType.AUTOMATIC); srcolled_window.set_child(text_view); window.set_child (srcolled_window); window.present (); }); return app.run (argv); }