summaryrefslogtreecommitdiffstats
path: root/html.h
diff options
context:
space:
mode:
Diffstat (limited to 'html.h')
-rw-r--r--html.h102
1 files changed, 102 insertions, 0 deletions
diff --git a/html.h b/html.h
new file mode 100644
index 00000000..a95181e0
--- /dev/null
+++ b/html.h
@@ -0,0 +1,102 @@
+/* $Id$ */
+/*
+ * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+#ifndef HTML_H
+#define HTML_H
+
+__BEGIN_DECLS
+
+enum htmltag {
+ TAG_HTML,
+ TAG_HEAD,
+ TAG_BODY,
+ TAG_META,
+ TAG_TITLE,
+ TAG_DIV,
+ TAG_H1,
+ TAG_H2,
+ TAG_P,
+ TAG_SPAN,
+ TAG_LINK,
+ TAG_BR,
+ TAG_A,
+ TAG_TABLE,
+ TAG_COL,
+ TAG_TR,
+ TAG_TD,
+ TAG_LI,
+ TAG_UL,
+ TAG_OL,
+ TAG_BASE,
+ TAG_MAX
+};
+
+enum htmlattr {
+ ATTR_HTTPEQUIV,
+ ATTR_CONTENT,
+ ATTR_NAME,
+ ATTR_REL,
+ ATTR_HREF,
+ ATTR_TYPE,
+ ATTR_MEDIA,
+ ATTR_CLASS,
+ ATTR_STYLE,
+ ATTR_WIDTH,
+ ATTR_VALIGN,
+ ATTR_MAX
+};
+
+struct tag {
+ enum htmltag tag;
+ SLIST_ENTRY(tag) entry;
+};
+
+struct ord {
+ int pos;
+ const void *cookie;
+ SLIST_ENTRY(ord) entry;
+};
+
+SLIST_HEAD(tagq, tag);
+SLIST_HEAD(ordq, ord);
+
+struct htmlpair {
+ enum htmlattr key;
+ char *val;
+};
+
+struct html {
+ int flags;
+#define HTML_NOSPACE (1 << 0)
+#define HTML_NEWLINE (1 << 1)
+ struct tagq tags;
+ struct ordq ords;
+ void *symtab;
+ char *base;
+ char *style;
+};
+
+void print_gen_doctype(struct html *);
+void print_gen_head(struct html *);
+struct tag *print_otag(struct html *, enum htmltag,
+ int, const struct htmlpair *);
+void print_tagq(struct html *, const struct tag *);
+void print_stagq(struct html *, const struct tag *);
+void print_text(struct html *, const char *);
+
+__END_DECLS
+
+#endif /*!HTML_H*/