version 1.94, 2018/10/02 14:56:47 |
version 1.106, 2020/01/19 18:02:00 |
|
|
/* $Id$ */ |
/* $Id$ */ |
/* |
/* |
* Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2017, 2018 Ingo Schwarze <schwarze@openbsd.org> |
* Copyright (c) 2017, 2018, 2019 Ingo Schwarze <schwarze@openbsd.org> |
* |
* |
* Permission to use, copy, modify, and distribute this software for any |
* Permission to use, copy, modify, and distribute this software for any |
* purpose with or without fee is hereby granted, provided that the above |
* purpose with or without fee is hereby granted, provided that the above |
|
|
enum htmltag { |
enum htmltag { |
TAG_HTML, |
TAG_HTML, |
TAG_HEAD, |
TAG_HEAD, |
TAG_BODY, |
|
TAG_META, |
TAG_META, |
|
TAG_LINK, |
|
TAG_STYLE, |
TAG_TITLE, |
TAG_TITLE, |
|
TAG_BODY, |
TAG_DIV, |
TAG_DIV, |
TAG_IDIV, |
TAG_SECTION, |
TAG_H1, |
|
TAG_H2, |
|
TAG_SPAN, |
|
TAG_LINK, |
|
TAG_BR, |
|
TAG_A, |
|
TAG_TABLE, |
TAG_TABLE, |
TAG_TR, |
TAG_TR, |
TAG_TD, |
TAG_TD, |
|
|
TAG_DL, |
TAG_DL, |
TAG_DT, |
TAG_DT, |
TAG_DD, |
TAG_DD, |
|
TAG_H1, |
|
TAG_H2, |
|
TAG_P, |
TAG_PRE, |
TAG_PRE, |
TAG_VAR, |
TAG_A, |
TAG_CITE, |
|
TAG_B, |
TAG_B, |
TAG_I, |
TAG_CITE, |
TAG_CODE, |
TAG_CODE, |
|
TAG_I, |
TAG_SMALL, |
TAG_SMALL, |
TAG_STYLE, |
TAG_SPAN, |
|
TAG_VAR, |
|
TAG_BR, |
|
TAG_MARK, |
TAG_MATH, |
TAG_MATH, |
TAG_MROW, |
TAG_MROW, |
TAG_MI, |
TAG_MI, |
|
|
TAG_MAX |
TAG_MAX |
}; |
}; |
|
|
enum htmlfont { |
|
HTMLFONT_NONE = 0, |
|
HTMLFONT_BOLD, |
|
HTMLFONT_ITALIC, |
|
HTMLFONT_BI, |
|
HTMLFONT_MAX |
|
}; |
|
|
|
struct tag { |
struct tag { |
struct tag *next; |
struct tag *next; |
|
int refcnt; |
|
int closed; |
enum htmltag tag; |
enum htmltag tag; |
}; |
}; |
|
|
|
|
#define HTML_KEEP (1 << 2) |
#define HTML_KEEP (1 << 2) |
#define HTML_PREKEEP (1 << 3) |
#define HTML_PREKEEP (1 << 3) |
#define HTML_NONOSPACE (1 << 4) /* never add spaces */ |
#define HTML_NONOSPACE (1 << 4) /* never add spaces */ |
#define HTML_LITERAL (1 << 5) /* literal (e.g., <PRE>) context */ |
|
#define HTML_SKIPCHAR (1 << 6) /* skip the next character */ |
#define HTML_SKIPCHAR (1 << 6) /* skip the next character */ |
#define HTML_NOSPLIT (1 << 7) /* do not break line before .An */ |
#define HTML_NOSPLIT (1 << 7) /* do not break line before .An */ |
#define HTML_SPLIT (1 << 8) /* break line before .An */ |
#define HTML_SPLIT (1 << 8) /* break line before .An */ |
|
|
char *base_includes; /* base for include href */ |
char *base_includes; /* base for include href */ |
char *style; /* style-sheet URI */ |
char *style; /* style-sheet URI */ |
struct tag *metaf; /* current open font scope */ |
struct tag *metaf; /* current open font scope */ |
enum htmlfont metal; /* last used font */ |
enum mandoc_esc metal; /* last used font */ |
enum htmlfont metac; /* current font mode */ |
enum mandoc_esc metac; /* current font mode */ |
int oflags; /* output options */ |
int oflags; /* output options */ |
#define HTML_FRAGMENT (1 << 0) /* don't emit HTML/HEAD/BODY */ |
#define HTML_FRAGMENT (1 << 0) /* don't emit HTML/HEAD/BODY */ |
#define HTML_TOC (1 << 1) /* emit a table of contents */ |
#define HTML_TOC (1 << 1) /* emit a table of contents */ |
Line 131 void print_text(struct html *, const char *); |
|
Line 126 void print_text(struct html *, const char *); |
|
void print_tblclose(struct html *); |
void print_tblclose(struct html *); |
void print_tbl(struct html *, const struct tbl_span *); |
void print_tbl(struct html *, const struct tbl_span *); |
void print_eqn(struct html *, const struct eqn_box *); |
void print_eqn(struct html *, const struct eqn_box *); |
void print_paragraph(struct html *); |
|
void print_endline(struct html *); |
void print_endline(struct html *); |
|
|
|
void html_close_paragraph(struct html *); |
|
enum roff_tok html_fillmode(struct html *, enum roff_tok); |
char *html_make_id(const struct roff_node *, int); |
char *html_make_id(const struct roff_node *, int); |
|
int html_setfont(struct html *, enum mandoc_esc); |