Fossil

Diff
Login

Differences From Artifact [733b9a9d3d]:

To Artifact [1f86c4e224]:


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);
}