406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
|
void markdown_to_html(
struct Blob *input_markdown, /* Markdown content to be rendered */
struct Blob *output_title, /* Put title here. May be NULL */
struct Blob *output_body /* Put document body here. */
){
blob_reset(output_body);
char * markdown_string = blob_str(input_markdown);
char *cmark_result = cmark_markdown_to_html(markdown_string, blob_size(input_markdown), 0 );
if( output_title ) {
blob_reset(output_title);
if (strlen(markdown_string) > 0 && markdown_string[0] == '#' ) {
if (strlen(markdown_string + 1) > 0) {
char * title_start = markdown_string + 1;
int i = 0;
while (markdown_string[i]!='\0' &&
(markdown_string[i]!='\n' && markdown_string[i]!='\r') ) {
i++;
}
blob_append(output_title, title_start, i);
}
}
}
html_prolog(output_body,0);
blob_append(output_body, cmark_result, strlen(cmark_result));
html_epilog(output_body,0);
free(cmark_result);
}
|
<
|
|
|
|
|
|
|
|
|
|
>
|
|
>
|
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
|
void markdown_to_html(
struct Blob *input_markdown, /* Markdown content to be rendered */
struct Blob *output_title, /* Put title here. May be NULL */
struct Blob *output_body /* Put document body here. */
){
blob_reset(output_body);
char * markdown_string = blob_str(input_markdown);
if( output_title ) {
blob_reset(output_title);
if (strlen(markdown_string) > 0 && markdown_string[0] == '#' ) {
if (strlen(markdown_string + 1) > 0) {
char * title_start = markdown_string + 1;
int i = 0;
while (markdown_string[i]!='\0' &&
(markdown_string[i]!='\n' && markdown_string[i]!='\r') ) {
i++;
}
blob_append(output_title, title_start, i);
markdown_string = markdown_string+i;
}
}
}
char *cmark_result = cmark_markdown_to_html(markdown_string, strlen(markdown_string), 0 );
html_prolog(output_body,0);
blob_append(output_body, cmark_result, strlen(cmark_result));
html_epilog(output_body,0);
free(cmark_result);
}
|