char *String2Utf8(Object *string) { int len = getStringLen(string); unsigned short *unicode = getStringChars(string); char *utf8 = (char*)sysMalloc(utf8CharLen(unicode, len) + 1); return unicode2Utf8(unicode, len, utf8); }
BOOL convMd2Html(LPCTSTR outpath, const CString& csspath) { struct buf *ob; int ret; FILE *outf = NULL; unsigned int extensions = 0xff; char hHead[] = "<!DOCTYPE html>\n<html>\n<head>\n<meta charset=""utf-8"">\n"; char hSym[] = "<link href=""%s"" rel=""stylesheet""></link>\n</head>\n<body>\n"; char hTail[] = "</body>\n</html>"; char *hCSS = NULL; struct sd_callbacks callbacks; struct html_renderopt options; struct sd_markdown *markdown; char *cssbuf = unicode2Utf8((LPCTSTR)csspath, csspath.GetLength()); int aclen = strlen(cssbuf) + strlen(hSym); hCSS = (char*)malloc(aclen+1); memset(hCSS, 0, aclen); sprintf(hCSS, "<link href=""%s"" rel=""stylesheet""></link>\n</head>\n<body>\n", cssbuf); free(cssbuf); /* performing markdown parsing */ ob = bufnew(OUTPUT_UNIT); //extensions = MKDEXT_TABLES|MKDEXT_FENCED_CODE|MKDEXT_AUTOLINK|MKDEXT_STRIKETHROUGH|MKDEXT_SUPERSCRIPT|MKDEXT_LAX_SPACING; sdhtml_renderer(&callbacks, &options, 0); markdown = sd_markdown_new(extensions, 16, &callbacks, &options); sd_markdown_render(ob, mib_utf8->data, mib_utf8->size, markdown); sd_markdown_free(markdown); outf = _tfopen(outpath, _T("w")); if(outf != NULL) { fwrite(hHead, 1, strlen(hHead), outf); fwrite(hCSS, 1, strlen(hCSS), outf); /* writing the result to stdout */ ret = fwrite(ob->data, 1, ob->size, outf); fwrite(hTail, 1, strlen(hTail), outf); fclose(outf); } /* cleanup */ free(hCSS); bufrelease(mib_utf8); bufrelease(ob); mib_utf8 = NULL; return TRUE; }
void createDefaultCSSFile(const CString& cssPath, const CString& cssData) { char *cssbuf = unicode2Utf8((LPCTSTR)cssData, cssData.GetLength()); if(cssbuf == NULL) return; FILE *fp = _tfopen(cssPath, _T("w")); if(fp != NULL) { fwrite(cssbuf, 1, strlen(cssbuf), fp); fclose(fp); } free(cssbuf); }
char *StringRegion2Utf8(Object *string, int start, int len, char *utf8) { return unicode2Utf8(getStringChars(string) + start, len, utf8); }