2023-10-10
To export syntax highlighted source code to HTML use GNU Source-highlight.
Export to HTML via:
source-highlight main.c
Code (from Getting Started with GTK):
#include <gtk/gtk.h> static void activate (GtkApplication* app, gpointer user_data) { GtkWidget *window; window = gtk_application_window_new (app); gtk_window_set_title (GTK_WINDOW (window), "Window"); gtk_window_set_default_size (GTK_WINDOW (window), 200, 200); gtk_widget_show (window); } int main (int argc, char **argv) { GtkApplication *app; int status; app = gtk_application_new ("org.gtk.example", G_APPLICATION_DEFAULT_FLAGS); g_signal_connect (app, "activate", G_CALLBACK (activate), NULL); status = g_application_run (G_APPLICATION (app), argc, argv); g_object_unref (app); return status; }
To apply own styles create a style file and customize colors:
Taken from the source-highlight info page "5.1 Output format style":
info Source-highlight
Code (syntax highlighted via source-highlight):
bgcolor white; // the background color for documents context gray; // the color for context lines (when specified with line ranges) keyword blue b ; // for language keywords type darkgreen ; // for basic types usertype teal ; // for user defined types string red f ; // for strings and chars regexp orange f ; // for strings and chars specialchar pink f ; // for special chars, e.g., \n, \t, \\ comment brown i, noref; // for comments number purple ; // for literal numbers preproc darkblue b ; // for preproc directives (e.g. #include, import) symbol darkred ; // for simbols (e.g. <, >, +) function black b; // for function calls and declarations cbracket red; // for block brackets (e.g. {, }) todo bg:cyan b; // for TODO and FIXME code bg:brightgreen b; // for code snippets // //Predefined variables and functions (for instance glsl) // predef_var darkblue ; predef_func darkblue b ; // // for OOP // classname teal ; // for class names, e.g., in Java and C++ // // line numbers // linenum black f; // // Internet related // url blue u, f; // // other elements for ChangeLog and Log files // date blue b ; time, file darkblue b ; ip, name darkgreen ; // // for Prolog, Perl... // variable darkgreen ; // // explicit for Latex // italics darkgreen i; bold darkgreen b; underline darkgreen u; fixed green f; argument darkgreen; optionalargument purple; math orange; bibtex blue; // // for diffs // oldfile orange; newfile darkgreen; difflines blue; // // for css // selector purple; property blue; value darkgreen i; // // for oz // atom orange; meta i; // // for file system // path orange; // // for C (or other language) labels // label teal b; // // for errors // error purple; warning darkgreen; // // for feature (Cucumber) files // cuketag green ; gherken blue ; given red ; when cyan ; then yellow ; and_but pink ; table gray ;
Apply custom style with:
source-highlight --style-file=/home/username/.source-highlight/default.style main.c