Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/torch/sundown-ffi.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'html/html.c')
-rw-r--r--html/html.c182
1 files changed, 91 insertions, 91 deletions
diff --git a/html/html.c b/html/html.c
index 7f08ee8..a9c6660 100644
--- a/html/html.c
+++ b/html/html.c
@@ -28,7 +28,7 @@
#define USE_XHTML(opt) (opt->flags & HTML_USE_XHTML)
int
-sdhtml_is_tag(const uint8_t *tag_data, size_t tag_size, const char *tagname)
+sd_html_is_tag(const uint8_t *tag_data, size_t tag_size, const char *tagname)
{
size_t i;
int closed = 0;
@@ -60,23 +60,23 @@ sdhtml_is_tag(const uint8_t *tag_data, size_t tag_size, const char *tagname)
return HTML_TAG_NONE;
}
-static inline void escape_html(struct buf *ob, const uint8_t *source, size_t length)
+static inline void escape_html(struct sd_buf *ob, const uint8_t *source, size_t length)
{
- houdini_escape_html0(ob, source, length, 0);
+ sd_houdini_escape_html0(ob, source, length, 0);
}
-static inline void escape_href(struct buf *ob, const uint8_t *source, size_t length)
+static inline void escape_href(struct sd_buf *ob, const uint8_t *source, size_t length)
{
- houdini_escape_href(ob, source, length);
+ sd_houdini_escape_href(ob, source, length);
}
/********************
* GENERIC RENDERER *
********************/
static int
-rndr_autolink(struct buf *ob, const struct buf *link, enum mkd_autolink type, void *opaque)
+rndr_autolink(struct sd_buf *ob, const struct sd_buf *link, enum sd_mkd_autolink type, void *opaque)
{
- struct html_renderopt *options = opaque;
+ struct sd_html_renderopt *options = opaque;
if (!link || !link->size)
return 0;
@@ -92,9 +92,9 @@ rndr_autolink(struct buf *ob, const struct buf *link, enum mkd_autolink type, vo
escape_href(ob, link->data, link->size);
if (options->link_attributes) {
- bufputc(ob, '\"');
+ sd_bufputc(ob, '\"');
options->link_attributes(ob, link, opaque);
- bufputc(ob, '>');
+ sd_bufputc(ob, '>');
} else {
BUFPUTSL(ob, "\">");
}
@@ -104,7 +104,7 @@ rndr_autolink(struct buf *ob, const struct buf *link, enum mkd_autolink type, vo
* an actual URI, e.g. `mailto:foo@bar.com`, we don't
* want to print the `mailto:` prefix
*/
- if (bufprefix(link, "mailto:") == 0) {
+ if (sd_bufprefix(link, "mailto:") == 0) {
escape_html(ob, link->data + 7, link->size - 7);
} else {
escape_html(ob, link->data, link->size);
@@ -116,9 +116,9 @@ rndr_autolink(struct buf *ob, const struct buf *link, enum mkd_autolink type, vo
}
static void
-rndr_blockcode(struct buf *ob, const struct buf *text, const struct buf *lang, void *opaque)
+rndr_blockcode(struct sd_buf *ob, const struct sd_buf *text, const struct sd_buf *lang, void *opaque)
{
- if (ob->size) bufputc(ob, '\n');
+ if (ob->size) sd_bufputc(ob, '\n');
if (lang && lang->size) {
size_t i, cls;
@@ -136,7 +136,7 @@ rndr_blockcode(struct buf *ob, const struct buf *text, const struct buf *lang, v
if (lang->data[org] == '.')
org++;
- if (cls) bufputc(ob, ' ');
+ if (cls) sd_bufputc(ob, ' ');
escape_html(ob, lang->data + org, i - org);
}
}
@@ -152,16 +152,16 @@ rndr_blockcode(struct buf *ob, const struct buf *text, const struct buf *lang, v
}
static void
-rndr_blockquote(struct buf *ob, const struct buf *text, void *opaque)
+rndr_blockquote(struct sd_buf *ob, const struct sd_buf *text, void *opaque)
{
- if (ob->size) bufputc(ob, '\n');
+ if (ob->size) sd_bufputc(ob, '\n');
BUFPUTSL(ob, "<blockquote>\n");
- if (text) bufput(ob, text->data, text->size);
+ if (text) sd_bufput(ob, text->data, text->size);
BUFPUTSL(ob, "</blockquote>\n");
}
static int
-rndr_codespan(struct buf *ob, const struct buf *text, void *opaque)
+rndr_codespan(struct sd_buf *ob, const struct sd_buf *text, void *opaque)
{
BUFPUTSL(ob, "<code>");
if (text) escape_html(ob, text->data, text->size);
@@ -170,69 +170,69 @@ rndr_codespan(struct buf *ob, const struct buf *text, void *opaque)
}
static int
-rndr_strikethrough(struct buf *ob, const struct buf *text, void *opaque)
+rndr_strikethrough(struct sd_buf *ob, const struct sd_buf *text, void *opaque)
{
if (!text || !text->size)
return 0;
BUFPUTSL(ob, "<del>");
- bufput(ob, text->data, text->size);
+ sd_bufput(ob, text->data, text->size);
BUFPUTSL(ob, "</del>");
return 1;
}
static int
-rndr_double_emphasis(struct buf *ob, const struct buf *text, void *opaque)
+rndr_double_emphasis(struct sd_buf *ob, const struct sd_buf *text, void *opaque)
{
if (!text || !text->size)
return 0;
BUFPUTSL(ob, "<strong>");
- bufput(ob, text->data, text->size);
+ sd_bufput(ob, text->data, text->size);
BUFPUTSL(ob, "</strong>");
return 1;
}
static int
-rndr_emphasis(struct buf *ob, const struct buf *text, void *opaque)
+rndr_emphasis(struct sd_buf *ob, const struct sd_buf *text, void *opaque)
{
if (!text || !text->size) return 0;
BUFPUTSL(ob, "<em>");
- if (text) bufput(ob, text->data, text->size);
+ if (text) sd_bufput(ob, text->data, text->size);
BUFPUTSL(ob, "</em>");
return 1;
}
static int
-rndr_linebreak(struct buf *ob, void *opaque)
+rndr_linebreak(struct sd_buf *ob, void *opaque)
{
- struct html_renderopt *options = opaque;
- bufputs(ob, USE_XHTML(options) ? "<br/>\n" : "<br>\n");
+ struct sd_html_renderopt *options = opaque;
+ sd_bufputs(ob, USE_XHTML(options) ? "<br/>\n" : "<br>\n");
return 1;
}
static void
-rndr_header(struct buf *ob, const struct buf *text, int level, void *opaque)
+rndr_header(struct sd_buf *ob, const struct sd_buf *text, int level, void *opaque)
{
- struct html_renderopt *options = opaque;
+ struct sd_html_renderopt *options = opaque;
if (ob->size)
- bufputc(ob, '\n');
+ sd_bufputc(ob, '\n');
if (options->flags & HTML_TOC)
- bufprintf(ob, "<h%d id=\"toc_%d\">", level, options->toc_data.header_count++);
+ sd_bufprintf(ob, "<h%d id=\"toc_%d\">", level, options->toc_data.header_count++);
else
- bufprintf(ob, "<h%d>", level);
+ sd_bufprintf(ob, "<h%d>", level);
- if (text) bufput(ob, text->data, text->size);
- bufprintf(ob, "</h%d>\n", level);
+ if (text) sd_bufput(ob, text->data, text->size);
+ sd_bufprintf(ob, "</h%d>\n", level);
}
static int
-rndr_link(struct buf *ob, const struct buf *link, const struct buf *title, const struct buf *content, void *opaque)
+rndr_link(struct sd_buf *ob, const struct sd_buf *link, const struct sd_buf *title, const struct sd_buf *content, void *opaque)
{
- struct html_renderopt *options = opaque;
+ struct sd_html_renderopt *options = opaque;
if (link != NULL && (options->flags & HTML_SAFELINK) != 0 && !sd_autolink_issafe(link->data, link->size))
return 0;
@@ -248,29 +248,29 @@ rndr_link(struct buf *ob, const struct buf *link, const struct buf *title, const
}
if (options->link_attributes) {
- bufputc(ob, '\"');
+ sd_bufputc(ob, '\"');
options->link_attributes(ob, link, opaque);
- bufputc(ob, '>');
+ sd_bufputc(ob, '>');
} else {
BUFPUTSL(ob, "\">");
}
- if (content && content->size) bufput(ob, content->data, content->size);
+ if (content && content->size) sd_bufput(ob, content->data, content->size);
BUFPUTSL(ob, "</a>");
return 1;
}
static void
-rndr_list(struct buf *ob, const struct buf *text, int flags, void *opaque)
+rndr_list(struct sd_buf *ob, const struct sd_buf *text, int flags, void *opaque)
{
- if (ob->size) bufputc(ob, '\n');
- bufput(ob, flags & MKD_LIST_ORDERED ? "<ol>\n" : "<ul>\n", 5);
- if (text) bufput(ob, text->data, text->size);
- bufput(ob, flags & MKD_LIST_ORDERED ? "</ol>\n" : "</ul>\n", 6);
+ if (ob->size) sd_bufputc(ob, '\n');
+ sd_bufput(ob, flags & MKD_LIST_ORDERED ? "<ol>\n" : "<ul>\n", 5);
+ if (text) sd_bufput(ob, text->data, text->size);
+ sd_bufput(ob, flags & MKD_LIST_ORDERED ? "</ol>\n" : "</ul>\n", 6);
}
static void
-rndr_listitem(struct buf *ob, const struct buf *text, int flags, void *opaque)
+rndr_listitem(struct sd_buf *ob, const struct sd_buf *text, int flags, void *opaque)
{
BUFPUTSL(ob, "<li>");
if (text) {
@@ -278,18 +278,18 @@ rndr_listitem(struct buf *ob, const struct buf *text, int flags, void *opaque)
while (size && text->data[size - 1] == '\n')
size--;
- bufput(ob, text->data, size);
+ sd_bufput(ob, text->data, size);
}
BUFPUTSL(ob, "</li>\n");
}
static void
-rndr_paragraph(struct buf *ob, const struct buf *text, void *opaque)
+rndr_paragraph(struct sd_buf *ob, const struct sd_buf *text, void *opaque)
{
- struct html_renderopt *options = opaque;
+ struct sd_html_renderopt *options = opaque;
size_t i = 0;
- if (ob->size) bufputc(ob, '\n');
+ if (ob->size) sd_bufputc(ob, '\n');
if (!text || !text->size)
return;
@@ -308,7 +308,7 @@ rndr_paragraph(struct buf *ob, const struct buf *text, void *opaque)
i++;
if (i > org)
- bufput(ob, text->data + org, i - org);
+ sd_bufput(ob, text->data + org, i - org);
/*
* do not insert a line break if this newline
@@ -321,13 +321,13 @@ rndr_paragraph(struct buf *ob, const struct buf *text, void *opaque)
i++;
}
} else {
- bufput(ob, &text->data[i], text->size - i);
+ sd_bufput(ob, &text->data[i], text->size - i);
}
BUFPUTSL(ob, "</p>\n");
}
static void
-rndr_raw_block(struct buf *ob, const struct buf *text, void *opaque)
+rndr_raw_block(struct sd_buf *ob, const struct sd_buf *text, void *opaque)
{
size_t org, sz;
if (!text) return;
@@ -336,33 +336,33 @@ rndr_raw_block(struct buf *ob, const struct buf *text, void *opaque)
org = 0;
while (org < sz && text->data[org] == '\n') org++;
if (org >= sz) return;
- if (ob->size) bufputc(ob, '\n');
- bufput(ob, text->data + org, sz - org);
- bufputc(ob, '\n');
+ if (ob->size) sd_bufputc(ob, '\n');
+ sd_bufput(ob, text->data + org, sz - org);
+ sd_bufputc(ob, '\n');
}
static int
-rndr_triple_emphasis(struct buf *ob, const struct buf *text, void *opaque)
+rndr_triple_emphasis(struct sd_buf *ob, const struct sd_buf *text, void *opaque)
{
if (!text || !text->size) return 0;
BUFPUTSL(ob, "<strong><em>");
- bufput(ob, text->data, text->size);
+ sd_bufput(ob, text->data, text->size);
BUFPUTSL(ob, "</em></strong>");
return 1;
}
static void
-rndr_hrule(struct buf *ob, void *opaque)
+rndr_hrule(struct sd_buf *ob, void *opaque)
{
- struct html_renderopt *options = opaque;
- if (ob->size) bufputc(ob, '\n');
- bufputs(ob, USE_XHTML(options) ? "<hr/>\n" : "<hr>\n");
+ struct sd_html_renderopt *options = opaque;
+ if (ob->size) sd_bufputc(ob, '\n');
+ sd_bufputs(ob, USE_XHTML(options) ? "<hr/>\n" : "<hr>\n");
}
static int
-rndr_image(struct buf *ob, const struct buf *link, const struct buf *title, const struct buf *alt, void *opaque)
+rndr_image(struct sd_buf *ob, const struct sd_buf *link, const struct sd_buf *title, const struct sd_buf *alt, void *opaque)
{
- struct html_renderopt *options = opaque;
+ struct sd_html_renderopt *options = opaque;
if (!link || !link->size) return 0;
BUFPUTSL(ob, "<img src=\"");
@@ -376,14 +376,14 @@ rndr_image(struct buf *ob, const struct buf *link, const struct buf *title, cons
BUFPUTSL(ob, "\" title=\"");
escape_html(ob, title->data, title->size); }
- bufputs(ob, USE_XHTML(options) ? "\"/>" : "\">");
+ sd_bufputs(ob, USE_XHTML(options) ? "\"/>" : "\">");
return 1;
}
static int
-rndr_raw_html(struct buf *ob, const struct buf *text, void *opaque)
+rndr_raw_html(struct sd_buf *ob, const struct sd_buf *text, void *opaque)
{
- struct html_renderopt *options = opaque;
+ struct sd_html_renderopt *options = opaque;
/* HTML_ESCAPE overrides SKIP_HTML, SKIP_STYLE, SKIP_LINKS and SKIP_IMAGES
* It doens't see if there are any valid tags, just escape all of them. */
@@ -396,45 +396,45 @@ rndr_raw_html(struct buf *ob, const struct buf *text, void *opaque)
return 1;
if ((options->flags & HTML_SKIP_STYLE) != 0 &&
- sdhtml_is_tag(text->data, text->size, "style"))
+ sd_html_is_tag(text->data, text->size, "style"))
return 1;
if ((options->flags & HTML_SKIP_LINKS) != 0 &&
- sdhtml_is_tag(text->data, text->size, "a"))
+ sd_html_is_tag(text->data, text->size, "a"))
return 1;
if ((options->flags & HTML_SKIP_IMAGES) != 0 &&
- sdhtml_is_tag(text->data, text->size, "img"))
+ sd_html_is_tag(text->data, text->size, "img"))
return 1;
- bufput(ob, text->data, text->size);
+ sd_bufput(ob, text->data, text->size);
return 1;
}
static void
-rndr_table(struct buf *ob, const struct buf *header, const struct buf *body, void *opaque)
+rndr_table(struct sd_buf *ob, const struct sd_buf *header, const struct sd_buf *body, void *opaque)
{
- if (ob->size) bufputc(ob, '\n');
+ if (ob->size) sd_bufputc(ob, '\n');
BUFPUTSL(ob, "<table><thead>\n");
if (header)
- bufput(ob, header->data, header->size);
+ sd_bufput(ob, header->data, header->size);
BUFPUTSL(ob, "</thead><tbody>\n");
if (body)
- bufput(ob, body->data, body->size);
+ sd_bufput(ob, body->data, body->size);
BUFPUTSL(ob, "</tbody></table>\n");
}
static void
-rndr_tablerow(struct buf *ob, const struct buf *text, void *opaque)
+rndr_tablerow(struct sd_buf *ob, const struct sd_buf *text, void *opaque)
{
BUFPUTSL(ob, "<tr>\n");
if (text)
- bufput(ob, text->data, text->size);
+ sd_bufput(ob, text->data, text->size);
BUFPUTSL(ob, "</tr>\n");
}
static void
-rndr_tablecell(struct buf *ob, const struct buf *text, int flags, void *opaque)
+rndr_tablecell(struct sd_buf *ob, const struct sd_buf *text, int flags, void *opaque)
{
if (flags & MKD_TABLE_HEADER) {
BUFPUTSL(ob, "<th");
@@ -460,7 +460,7 @@ rndr_tablecell(struct buf *ob, const struct buf *text, int flags, void *opaque)
}
if (text)
- bufput(ob, text->data, text->size);
+ sd_bufput(ob, text->data, text->size);
if (flags & MKD_TABLE_HEADER) {
BUFPUTSL(ob, "</th>\n");
@@ -470,26 +470,26 @@ rndr_tablecell(struct buf *ob, const struct buf *text, int flags, void *opaque)
}
static int
-rndr_superscript(struct buf *ob, const struct buf *text, void *opaque)
+rndr_superscript(struct sd_buf *ob, const struct sd_buf *text, void *opaque)
{
if (!text || !text->size) return 0;
BUFPUTSL(ob, "<sup>");
- bufput(ob, text->data, text->size);
+ sd_bufput(ob, text->data, text->size);
BUFPUTSL(ob, "</sup>");
return 1;
}
static void
-rndr_normal_text(struct buf *ob, const struct buf *text, void *opaque)
+rndr_normal_text(struct sd_buf *ob, const struct sd_buf *text, void *opaque)
{
if (text)
escape_html(ob, text->data, text->size);
}
static void
-toc_header(struct buf *ob, const struct buf *text, int level, void *opaque)
+toc_header(struct sd_buf *ob, const struct sd_buf *text, int level, void *opaque)
{
- struct html_renderopt *options = opaque;
+ struct sd_html_renderopt *options = opaque;
/* set the level offset if this is the first header
* we're parsing for the document */
@@ -514,24 +514,24 @@ toc_header(struct buf *ob, const struct buf *text, int level, void *opaque)
BUFPUTSL(ob,"</li>\n<li>\n");
}
- bufprintf(ob, "<a href=\"#toc_%d\">", options->toc_data.header_count++);
+ sd_bufprintf(ob, "<a href=\"#toc_%d\">", options->toc_data.header_count++);
if (text)
escape_html(ob, text->data, text->size);
BUFPUTSL(ob, "</a>\n");
}
static int
-toc_link(struct buf *ob, const struct buf *link, const struct buf *title, const struct buf *content, void *opaque)
+toc_link(struct sd_buf *ob, const struct sd_buf *link, const struct sd_buf *title, const struct sd_buf *content, void *opaque)
{
if (content && content->size)
- bufput(ob, content->data, content->size);
+ sd_bufput(ob, content->data, content->size);
return 1;
}
static void
-toc_finalize(struct buf *ob, void *opaque)
+toc_finalize(struct sd_buf *ob, void *opaque)
{
- struct html_renderopt *options = opaque;
+ struct sd_html_renderopt *options = opaque;
while (options->toc_data.current_level > 0) {
BUFPUTSL(ob, "</li>\n</ul>\n");
@@ -540,7 +540,7 @@ toc_finalize(struct buf *ob, void *opaque)
}
void
-sdhtml_toc_renderer(struct sd_callbacks *callbacks, struct html_renderopt *options)
+sd_html_toc_renderer(struct sd_callbacks *callbacks, struct sd_html_renderopt *options)
{
static const struct sd_callbacks cb_default = {
NULL,
@@ -574,14 +574,14 @@ sdhtml_toc_renderer(struct sd_callbacks *callbacks, struct html_renderopt *optio
toc_finalize,
};
- memset(options, 0x0, sizeof(struct html_renderopt));
+ memset(options, 0x0, sizeof(struct sd_html_renderopt));
options->flags = HTML_TOC;
memcpy(callbacks, &cb_default, sizeof(struct sd_callbacks));
}
void
-sdhtml_renderer(struct sd_callbacks *callbacks, struct html_renderopt *options, unsigned int render_flags)
+sd_html_renderer(struct sd_callbacks *callbacks, struct sd_html_renderopt *options, unsigned int render_flags)
{
static const struct sd_callbacks cb_default = {
rndr_blockcode,
@@ -616,7 +616,7 @@ sdhtml_renderer(struct sd_callbacks *callbacks, struct html_renderopt *options,
};
/* Prepare the options pointer */
- memset(options, 0x0, sizeof(struct html_renderopt));
+ memset(options, 0x0, sizeof(struct sd_html_renderopt));
options->flags = render_flags;
/* Prepare the callbacks */