Browse Source

Add the flags parameter

mingodad 8 years ago
parent
commit
09ba1be810
1 changed files with 37 additions and 3 deletions
  1. 37 3
      SquiLu-ext/sq_markdown.cpp

+ 37 - 3
SquiLu-ext/sq_markdown.cpp

@@ -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;
 }