summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/html.c39
-rw-r--r--src/html.h18
2 files changed, 35 insertions, 22 deletions
diff --git a/src/html.c b/src/html.c
index afcae07..8b93448 100644
--- a/src/html.c
+++ b/src/html.c
@@ -162,23 +162,28 @@ mq_html_document(const gchar *title, ...)
return document;
}
-gchar *
-mq_html_p(gchar *text)
-{
- return g_strconcat("<p>", text, "</p>", NULL);
-}
-
-gchar *
-mq_html_p_free(gchar *text)
-{
- gchar *p;
-
- p = g_strconcat("<p>", text, "</p>", NULL);
-
- g_free(text);
-
- return p;
-}
+#define TEXT_ELEMENT(ELEM) \
+ gchar * \
+ mq_html_##ELEM(gchar *text) \
+ { \
+ return g_strconcat("<" #ELEM ">", text, "</" #ELEM ">", NULL); \
+ } \
+ gchar * \
+ mq_html_##ELEM##_free(gchar *text) \
+ { \
+ gchar *p; \
+ p = g_strconcat("<" #ELEM ">", text, "</" #ELEM ">", NULL); \
+ g_free(text); \
+ return p; \
+ }
+TEXT_ELEMENT(h1)
+TEXT_ELEMENT(h2)
+TEXT_ELEMENT(h3)
+TEXT_ELEMENT(h4)
+TEXT_ELEMENT(h5)
+TEXT_ELEMENT(h6)
+TEXT_ELEMENT(p)
+#undef TEXT_ELEMENT
gchar *
mq_html_container(const gchar *element, ...)
diff --git a/src/html.h b/src/html.h
index 0aeefc0..8c6c5e4 100644
--- a/src/html.h
+++ b/src/html.h
@@ -27,11 +27,19 @@
gchar *
mq_html_document(const gchar *title, ...);
-gchar *
-mq_html_p(gchar *text);
-
-gchar *
-mq_html_p_free(gchar *text);
+#define TEXT_ELEMENT(ELEM) \
+ gchar * \
+ mq_html_##ELEM(gchar *text); \
+ gchar * \
+ mq_html_##ELEM##_free(gchar *text);
+TEXT_ELEMENT(h1)
+TEXT_ELEMENT(h2)
+TEXT_ELEMENT(h3)
+TEXT_ELEMENT(h4)
+TEXT_ELEMENT(h5)
+TEXT_ELEMENT(h6)
+TEXT_ELEMENT(p)
+#undef TEXT_ELEMENT
gchar *
mq_html_container(const gchar *element, ...);