使用C折扣库解析降价

Parsing markdown with C discount library

本文关键字:使用      更新时间:2023-10-16

我正在编写一个降价编辑器(C++/Qt),并为此使用折扣库。

文件:http://www.pell.portland.or.us/~orc/代码/折扣/

我写这段代码是为了将HTML转换为markdown。

#include <mkdio.h>
#include <stdio.h>
#include <string.h>
int main()
{
    FILE *out;
    out = fopen("/home/abdeljalil/test.html","w");
    const char* mkdown= "__hello__";
    MMIOT *doc;
    int flags = MKD_TOC|MKD_SAFELINK|MKD_EXTRA_FOOTNOTE;
    doc = mkd_string(mkdown,strlen(mkdown),flags);
    mkd_compile(doc,flags);
    mkd_generatehtml(doc,out);
    mkd_cleanup(doc);
}

使用输出文件是一种有效的方法吗?(每次在编辑器中更改markdown时,我都会更新GUI)我可以直接将HTML写入字符串而不是文件吗?(找不到这样的函数)是否还有其他注释可以优化代码?

Markdown有点臭名昭著,因为它有点被黑在一起、不标准和矛盾。任何试图将Markdown写入视觉系统的人(包括我自己)都可以告诉你它有多令人困惑/抓狂。我不知道"折扣",但请参阅CommonMark.org,了解StackOverflow Jeff和其他人的一些当前思维状态。

在每次编辑时对文档进行完全重新格式化(在进入空闲状态时,以免阻止用户输入)以生成降价预览对于中等大小的文档来说可能是可以的。还没有研究过StackOverflow JavaScript,但它可能正是这样做的。

你的图书馆文件上写着:

markdown库中有17个公共函数,分为三类:

这些函数是基于文件的。据我所知,你不会发现任何独立于平台的便利层允许你传递std::stringstream或以其他方式作为C流FILE *:

cstio流与iostream流?

您可以查看fmemopen以避免创建文件并写入缓冲区,不过:

http://www.gnu.org/software/libc/manual/html_node/String-Streams.html

所以也许可以调查一下。

查找fmemopen 创建的文件的大小

更普遍地说,我可能建议从头开始在Qt编辑器中包装一个随机的基于C的FILE流Markdown库有点愚蠢。要么接受像CuteMarkEd这样的现有项目,要么嵌入JavaScript引擎来运行常见的降价代码,或者。。。某物