示例#1
0
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);
}
示例#2
0
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;
}
示例#3
0
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);
}
示例#4
0
char *StringRegion2Utf8(Object *string, int start, int len, char *utf8) {
    return unicode2Utf8(getStringChars(string) + start, len, utf8);
}