[Github-comments] [geany/geany-plugins] Markdown: Allow exporting Markdown as HTML (#502)
Colomban Wendling
notifications at xxxxx
Sat Nov 12 09:30:32 UTC 2016
b4n commented on this pull request.
> @@ -240,3 +250,47 @@ on_view_pos_notify(GObject *obj, GParamSpec *pspec, MarkdownViewer *viewer)
update_markdown_viewer(viewer);
}
+
+static void on_export_as_html_activate(GtkMenuItem *item, MarkdownViewer *viewer)
+{
+ GtkWidget *dialog;
+ GtkFileFilter *filter;
+
+ g_return_if_fail(DOC_VALID(document_get_current()));
+
+ dialog = gtk_file_chooser_dialog_new(_("Save HTML File As"),
+ GTK_WINDOW(geany_data->main_widgets->window), GTK_FILE_CHOOSER_ACTION_SAVE,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
+ NULL);
+ gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(dialog), TRUE);
+ gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(dialog), FALSE);
I think multi-selection is disabled by default, and probably irrelevant for save too :)
> +
+static void on_export_as_html_activate(GtkMenuItem *item, MarkdownViewer *viewer)
+{
+ GtkWidget *dialog;
+ GtkFileFilter *filter;
+
+ g_return_if_fail(DOC_VALID(document_get_current()));
+
+ dialog = gtk_file_chooser_dialog_new(_("Save HTML File As"),
+ GTK_WINDOW(geany_data->main_widgets->window), GTK_FILE_CHOOSER_ACTION_SAVE,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
+ NULL);
+ gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(dialog), TRUE);
+ gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(dialog), FALSE);
+ gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog), "index.html");
Maybe rather use `basename(DOC_FILENAME(doc)) + ".html"`?
> +
+ g_return_if_fail(DOC_VALID(document_get_current()));
+
+ dialog = gtk_file_chooser_dialog_new(_("Save HTML File As"),
+ GTK_WINDOW(geany_data->main_widgets->window), GTK_FILE_CHOOSER_ACTION_SAVE,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
+ NULL);
+ gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(dialog), TRUE);
+ gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(dialog), FALSE);
+ gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog), "index.html");
+
+ filter = gtk_file_filter_new();
+ gtk_file_filter_set_name(filter, _("HTML Files"));
+ gtk_file_filter_add_pattern(filter, "*.html");
+ gtk_file_filter_add_pattern(filter, "*.htm");
maybe rather use `gtk_file_filter_add_mime_type(filter, "text/html");`?
> + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), filter);
+
+ filter = gtk_file_filter_new();
+ gtk_file_filter_set_name(filter, _("All Files"));
+ gtk_file_filter_add_pattern(filter, "*");
+ gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), filter);
+
+ if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {
+ gchar *fn = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
+ gchar *html = markdown_viewer_get_html(viewer);
+ GError *error = NULL;
+ if (! g_file_set_contents(fn, html, -1, &error)) {
+ dialogs_show_msgbox(GTK_MESSAGE_ERROR,
+ _("Failed to export Markdown HTML to file '%s': %s"),
+ fn, error->message);
+ g_error_free(error);
maybe re-show the save dialog in case of error? I guess the most likely reason of failure is permission issue/invalid path, so I imagine the general action would be trying again.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany-plugins/pull/502#pullrequestreview-8295647
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.geany.org/pipermail/github-comments/attachments/20161112/2f1b5ce3/attachment.html>
More information about the Github-comments
mailing list