|
|
@@ -3,7 +3,7 @@
|
|
|
#include <string.h>
|
|
|
#include <stdio.h>
|
|
|
#include "sqstdblobimpl.h"
|
|
|
-extern "C" {
|
|
|
+extern "C" {
|
|
|
#include "markdown.h"
|
|
|
}
|
|
|
|
|
|
@@ -18,9 +18,10 @@ static SQRESULT sq_markdown2html(HSQUIRRELVM v)
|
|
|
SQ_FUNC_VARS(v);
|
|
|
SQ_GET_STRING(v, 2, str);
|
|
|
SQ_OPT_INTEGER(v, 3, len, str_size);
|
|
|
+ SQ_OPT_INTEGER(v, 4, flags, 0);
|
|
|
if(len > str_size || len < 0) return sq_throwerror(v, _SC("invalid parameter value (%d)"), len);
|
|
|
SQBlob b(0, 8192);
|
|
|
- markdown_str(mkd_string(str, len, 0), &b ,mywrite, 0);
|
|
|
+ markdown_str(mkd_string(str, len, 0), &b ,mywrite, flags);
|
|
|
sq_pushstring(v, (SQChar*)b.GetBuf(), b.Len());
|
|
|
return 1;
|
|
|
}
|
|
|
@@ -32,7 +33,40 @@ extern "C" {
|
|
|
|
|
|
SQRESULT sqext_register_markdown(HSQUIRRELVM v)
|
|
|
{
|
|
|
- sq_insertfunc(v, _SC("markdown2html"), sq_markdown2html, -2, _SC(".si"), SQTrue);
|
|
|
+ sq_insertfunc(v, _SC("markdown2html"), sq_markdown2html, -2, _SC(".sii"), SQTrue);
|
|
|
+ sq_pushconsttable(v);
|
|
|
+#define INT_CONST(num) sq_pushstring(v,_SC(#num),-1);sq_pushinteger(v,num);sq_newslot(v,-3,SQTrue);
|
|
|
+ INT_CONST(MKD_NOLINKS);
|
|
|
+ INT_CONST(MKD_NOIMAGE);
|
|
|
+ INT_CONST(MKD_NOPANTS);
|
|
|
+ INT_CONST(MKD_NOHTML);
|
|
|
+ INT_CONST(MKD_STRICT);
|
|
|
+ INT_CONST(MKD_TAGTEXT);
|
|
|
+ INT_CONST(MKD_NO_EXT);
|
|
|
+ INT_CONST(MKD_CDATA);
|
|
|
+ INT_CONST(MKD_NOSUPERSCRIPT);
|
|
|
+ INT_CONST(MKD_NORELAXED);
|
|
|
+ INT_CONST(MKD_NOTABLES);
|
|
|
+ INT_CONST(MKD_NOSTRIKETHROUGH);
|
|
|
+ INT_CONST(MKD_TOC);
|
|
|
+ INT_CONST(MKD_1_COMPAT);
|
|
|
+ INT_CONST(MKD_AUTOLINK);
|
|
|
+ INT_CONST(MKD_SAFELINK);
|
|
|
+ INT_CONST(MKD_NOHEADER);
|
|
|
+ INT_CONST(MKD_TABSTOP);
|
|
|
+ INT_CONST(MKD_NODIVQUOTE);
|
|
|
+ INT_CONST(MKD_NOALPHALIST);
|
|
|
+ INT_CONST(MKD_NODLIST);
|
|
|
+ INT_CONST(MKD_EXTRA_FOOTNOTE);
|
|
|
+ INT_CONST(MKD_NOSTYLE);
|
|
|
+ INT_CONST(MKD_NODLDISCOUNT);
|
|
|
+ INT_CONST(MKD_DLEXTRA);
|
|
|
+ INT_CONST(MKD_FENCEDCODE);
|
|
|
+ INT_CONST(MKD_IDANCHOR);
|
|
|
+ INT_CONST(MKD_GITHUBTAGS);
|
|
|
+ INT_CONST(MKD_URLENCODEDANCHOR);
|
|
|
+
|
|
|
+ sq_poptop(v); //remove const table
|
|
|
return 0;
|
|
|
}
|
|
|
|