qulogic/talkatu

Add some additional tags for rendering more complex documents in pidgin
--- a/talkatu/talkatumarkup.c Fri Dec 14 13:14:21 2018 -0600
+++ b/talkatu/talkatumarkup.c Thu Dec 27 23:18:00 2018 -0600
@@ -86,6 +86,36 @@
case GUMBO_TAG_PRE:
tag_name = TALKATU_TAG_PRE;
break;
+ case GUMBO_TAG_H1:
+ tag_name = TALKATU_TAG_H1;
+ break;
+ case GUMBO_TAG_H2:
+ tag_name = TALKATU_TAG_H2;
+ break;
+ case GUMBO_TAG_H3:
+ tag_name = TALKATU_TAG_H3;
+ break;
+ case GUMBO_TAG_H4:
+ tag_name = TALKATU_TAG_H4;
+ break;
+ case GUMBO_TAG_H5:
+ tag_name = TALKATU_TAG_H5;
+ break;
+ case GUMBO_TAG_H6:
+ tag_name = TALKATU_TAG_H6;
+ break;
+ case GUMBO_TAG_A:
+ tag_name = TALKATU_TAG_ANCHOR;
+ break;
+ case GUMBO_TAG_DL:
+ tag_name = TALKATU_TAG_DL;
+ break;
+ case GUMBO_TAG_DT:
+ tag_name = TALKATU_TAG_DT;
+ break;
+ case GUMBO_TAG_DD:
+ tag_name = TALKATU_TAG_DD;
+ break;
case GUMBO_TAG_BR:
talkatu_buffer_insert_markup(TALKATU_BUFFER(buffer), pos, "\n", -1);
break;
--- a/talkatu/talkatutag.c Fri Dec 14 13:14:21 2018 -0600
+++ b/talkatu/talkatutag.c Thu Dec 27 23:18:00 2018 -0600
@@ -174,8 +174,6 @@
*/
const gchar *
talkatu_tag_name_to_html(const gchar *tag_name) {
- const gchar *talkatu_tag_name = NULL;
-
if(tag_name == NULL) {
return NULL;
}
@@ -184,36 +182,40 @@
return NULL;
}
- talkatu_tag_name = tag_name + TALKATU_TAG_PREFIX_LEN;
-
- if(g_ascii_strcasecmp(talkatu_tag_name, "bold") == 0) {
+ if(g_ascii_strcasecmp(tag_name, TALKATU_TAG_BOLD) == 0) {
return "b";
- } else if(g_ascii_strcasecmp(talkatu_tag_name, "italic") == 0) {
+ } else if(g_ascii_strcasecmp(tag_name, TALKATU_TAG_ITALIC) == 0) {
return "i";
- } else if(g_ascii_strcasecmp(talkatu_tag_name, "underline") == 0) {
+ } else if(g_ascii_strcasecmp(tag_name, TALKATU_TAG_UNDERLINE) == 0) {
return "u";
- } else if(g_ascii_strcasecmp(talkatu_tag_name, "strikethrough") == 0) {
+ } else if(g_ascii_strcasecmp(tag_name, TALKATU_TAG_STRIKETHROUGH) == 0) {
return "s";
- } else if(g_ascii_strcasecmp(talkatu_tag_name, "subscript") == 0) {
+ } else if(g_ascii_strcasecmp(tag_name, TALKATU_TAG_SUBSCRIPT) == 0) {
return "sub";
- } else if(g_ascii_strcasecmp(talkatu_tag_name, "superscript") == 0) {
+ } else if(g_ascii_strcasecmp(tag_name, TALKATU_TAG_SUPERSCRIPT) == 0) {
return "sup";
- } else if(g_ascii_strcasecmp(talkatu_tag_name, "preformatted") == 0) {
+ } else if(g_ascii_strcasecmp(tag_name, TALKATU_TAG_PRE) == 0) {
return "pre";
- } else if(g_ascii_strcasecmp(talkatu_tag_name, "header1") == 0) {
+ } else if(g_ascii_strcasecmp(tag_name, TALKATU_TAG_H1) == 0) {
return "h1";
- } else if(g_ascii_strcasecmp(talkatu_tag_name, "header2") == 0) {
+ } else if(g_ascii_strcasecmp(tag_name, TALKATU_TAG_H2) == 0) {
return "h2";
- } else if(g_ascii_strcasecmp(talkatu_tag_name, "header3") == 0) {
+ } else if(g_ascii_strcasecmp(tag_name, TALKATU_TAG_H3) == 0) {
return "h3";
- } else if(g_ascii_strcasecmp(talkatu_tag_name, "header4") == 0) {
+ } else if(g_ascii_strcasecmp(tag_name, TALKATU_TAG_H4) == 0) {
return "h4";
- } else if(g_ascii_strcasecmp(talkatu_tag_name, "header5") == 0) {
+ } else if(g_ascii_strcasecmp(tag_name, TALKATU_TAG_H5) == 0) {
return "h5";
- } else if(g_ascii_strcasecmp(talkatu_tag_name, "header6") == 0) {
+ } else if(g_ascii_strcasecmp(tag_name, TALKATU_TAG_H6) == 0) {
return "h6";
- } else if(g_ascii_strcasecmp(talkatu_tag_name, "anchor") == 0) {
+ } else if(g_ascii_strcasecmp(tag_name, TALKATU_TAG_ANCHOR) == 0) {
return "a";
+ } else if(g_ascii_strcasecmp(tag_name, TALKATU_TAG_DL) == 0) {
+ return "dl";
+ } else if(g_ascii_strcasecmp(tag_name, TALKATU_TAG_DT) == 0) {
+ return "dt";
+ } else if(g_ascii_strcasecmp(tag_name, TALKATU_TAG_DD) == 0) {
+ return "dd";
}
return NULL;
--- a/talkatu/talkatutag.h Fri Dec 14 13:14:21 2018 -0600
+++ b/talkatu/talkatutag.h Thu Dec 27 23:18:00 2018 -0600
@@ -47,6 +47,9 @@
#define TALKATU_TAG_H5 TALKATU_TAG_PREFIX "header5"
#define TALKATU_TAG_H6 TALKATU_TAG_PREFIX "header6"
#define TALKATU_TAG_ANCHOR TALKATU_TAG_PREFIX "anchor"
+#define TALKATU_TAG_DL TALKATU_TAG_PREFIX "description-list"
+#define TALKATU_TAG_DT TALKATU_TAG_PREFIX "description-term"
+#define TALKATU_TAG_DD TALKATU_TAG_PREFIX "description-definition"
G_BEGIN_DECLS
--- a/talkatu/talkatutagtable.c Fri Dec 14 13:14:21 2018 -0600
+++ b/talkatu/talkatutagtable.c Thu Dec 27 23:18:00 2018 -0600
@@ -123,6 +123,8 @@
talkatu_tag_table_add_tag(
table, TALKATU_TAG_H1,
"weight", PANGO_WEIGHT_BOLD,
+ "pixels-above-lines", 11,
+ "pixels-below-lines", 11,
"scale", 2.0,
NULL
);
@@ -169,6 +171,26 @@
"underline-rgba", &color,
NULL
);
+
+ talkatu_tag_table_add_tag(
+ table, TALKATU_TAG_DL,
+ "pixels-above-lines", 16, /* needs to be dynamic */
+ "pixels-below-lines", 16, /* needs to be dynamic */
+ NULL
+ );
+
+ talkatu_tag_table_add_tag(
+ table, TALKATU_TAG_DT,
+ "pixels-above-lines", 16, /* needs to be dynamic */
+ "pixels-below-lines", 16, /* needs to be dynamic */
+ NULL
+ );
+
+ talkatu_tag_table_add_tag(
+ table, TALKATU_TAG_DD,
+ "left-margin", 40,
+ NULL
+ );
}
static void