使用C折扣库解析降价
Parsing markdown with C discount library
我正在编写一个降价编辑器(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引擎来运行常见的降价代码,或者。。。某物
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- C++:TypeDef使用元组
- 使用std::multimap迭代器创建std::list
- 从不同线程使用int64的不同字节安全吗
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 为什么在全局范围内使用"extern int a"似乎不行?
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 如何使用Google Mock来模拟gettimeofday()
- 如何使用默认参数等选择模板专业化
- 为什么使用 "this" 指针调用派生成员函数?
- 使用新行和不使用新行读取文件
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 如何确定我已使用非编码文件到达 EOF?
- 如何在cuSparse中使用cusparseXcoo2csr从coo转换为csc
- 使用CMake创建QML插件
- 使用strcpy将char数组的元素复制到另一个数组
- 在c++中使用nlohmann从类到json的转换
- 使用指针从C++中的数组中获取最大值
- 使用不带参数的函数访问结构元素