br, em and i tags. Partial img/figure support
This commit is contained in:
parent
7a52b2ee33
commit
86de41d87c
92
srohtml.c
92
srohtml.c
|
@ -38,9 +38,13 @@ static void cmd(char *line);
|
|||
static void cmd_close(void);
|
||||
static void cmd_a(const char *line);
|
||||
static void cmd_au_de_ti(char **str, const char *line);
|
||||
static void cmd_br(void);
|
||||
static void cmd_dt(const char *line);
|
||||
static void cmd_em(const char *line);
|
||||
static void cmd_fi(const char *line);
|
||||
static void cmd_h(const char *line);
|
||||
static void cmd_hr(void);
|
||||
static void cmd_i(const char *line);
|
||||
static void cmd_la(const char *line);
|
||||
static void cmd_le(void);
|
||||
static void cmd_ls(void);
|
||||
|
@ -68,6 +72,7 @@ static void string_enlarge(string *old, const size_t size);
|
|||
static int string_putc(string *dst, const char c);
|
||||
|
||||
/* variables */
|
||||
int imgs_presence = 0;
|
||||
char *author = NULL;
|
||||
char closure[CLS_MAX];
|
||||
char *description = NULL;
|
||||
|
@ -116,10 +121,16 @@ cmd(char *line)
|
|||
cmd_a(line);
|
||||
else if (!strncmp(line, "AU", cmdlen))
|
||||
cmd_au_de_ti(&author, line);
|
||||
else if (!strncmp(line, "BR", cmdlen))
|
||||
cmd_br();
|
||||
else if (!strncmp(line, "DE", cmdlen))
|
||||
cmd_au_de_ti(&description, line);
|
||||
else if (!strncmp(line, "DT", cmdlen))
|
||||
cmd_dt(line);
|
||||
else if (!strncmp(line, "EM", cmdlen))
|
||||
cmd_em(line);
|
||||
else if (!strncmp(line, "FI", cmdlen))
|
||||
cmd_fi(line);
|
||||
else if (!strncmp(line, "H1", cmdlen))
|
||||
cmd_h(line);
|
||||
else if (!strncmp(line, "H2", cmdlen))
|
||||
|
@ -134,6 +145,8 @@ cmd(char *line)
|
|||
cmd_h(line);
|
||||
else if (!strncmp(line, "HR", cmdlen))
|
||||
cmd_hr();
|
||||
else if (!strncmp(line, "I", cmdlen))
|
||||
cmd_i(line);
|
||||
else if (!strncmp(line, "LA", cmdlen))
|
||||
cmd_la(line);
|
||||
else if (!strncmp(line, "LE", cmdlen))
|
||||
|
@ -214,6 +227,13 @@ cmd_au_de_ti(char **str, const char *line)
|
|||
strcpy(*str, line);
|
||||
}
|
||||
|
||||
void
|
||||
cmd_br(void)
|
||||
{
|
||||
string_cat(&body, "<br>");
|
||||
space = 0;
|
||||
}
|
||||
|
||||
void
|
||||
cmd_close(void)
|
||||
{
|
||||
|
@ -252,6 +272,46 @@ cmd_dt(const char *line)
|
|||
free(in);
|
||||
}
|
||||
|
||||
void
|
||||
cmd_em(const char *line)
|
||||
{
|
||||
/* move past "EM" */
|
||||
line += 2;
|
||||
/* move past ' ', if present */
|
||||
if (line[0] == ' ')
|
||||
line++;
|
||||
|
||||
if (space)
|
||||
string_cat(&body, " ");
|
||||
string_cat(&body, "<em>");
|
||||
string_cat(&body, line);
|
||||
string_cat(&body, "</em>");
|
||||
}
|
||||
|
||||
void
|
||||
cmd_fi(const char *line)
|
||||
{
|
||||
char *ind, *src;
|
||||
|
||||
ind = NULL;
|
||||
src = NULL;
|
||||
|
||||
/* move past "FI" */
|
||||
line += 2;
|
||||
/* move past argument, once found it */
|
||||
line += stread_param(line, &src);
|
||||
|
||||
indent_str(&ind);
|
||||
|
||||
string_cat(&body, ind);
|
||||
string_cat(&body, "<figure><img src=\"");
|
||||
string_cat(&body, src);
|
||||
string_cat(&body, "\" alt=\"\"></figure>");
|
||||
imgs_presence = 1;
|
||||
|
||||
free(src);
|
||||
}
|
||||
|
||||
void
|
||||
cmd_h(const char *line)
|
||||
{
|
||||
|
@ -275,6 +335,22 @@ cmd_hr(void)
|
|||
string_cat(&body, "\t\t<hr>");
|
||||
}
|
||||
|
||||
void
|
||||
cmd_i(const char *line)
|
||||
{
|
||||
/* move past "I" */
|
||||
line += 1;
|
||||
/* move past ' ', if present */
|
||||
if (line[0] == ' ')
|
||||
line++;
|
||||
|
||||
if (space)
|
||||
string_cat(&body, " ");
|
||||
string_cat(&body, "<i>");
|
||||
string_cat(&body, line);
|
||||
string_cat(&body, "</i>");
|
||||
}
|
||||
|
||||
void
|
||||
cmd_la(const char *line)
|
||||
{
|
||||
|
@ -379,6 +455,7 @@ cmd_p(void)
|
|||
ind = NULL;
|
||||
|
||||
indent_str(&ind);
|
||||
|
||||
string_cat(&body, ind);
|
||||
string_cat(&body, "<p>");
|
||||
strcpy(closure, "</p>");
|
||||
|
@ -797,6 +874,21 @@ page_head(void)
|
|||
" }\n"
|
||||
);
|
||||
|
||||
if (imgs_presence) {
|
||||
string_cat(&head, "\n" \
|
||||
" figure {\n" \
|
||||
" margin-left: 0;\n" \
|
||||
" margin-right: 0;\n" \
|
||||
" text-align: center;\n" \
|
||||
" }\n" \
|
||||
"\n" \
|
||||
" img {\n" \
|
||||
" max-width: 100%;\n" \
|
||||
" width: 7em;\n" \
|
||||
" }\n"
|
||||
);
|
||||
}
|
||||
|
||||
if (licence_container) {
|
||||
string_cat(&head, "\n" \
|
||||
" .contenitore-licenza {\n" \
|
||||
|
|
Loading…
Reference in New Issue