OSDN Git Service

Backslash Escape
authorSet <set.minami@gmail.com>
Thu, 20 Jun 2013 09:30:28 +0000 (18:30 +0900)
committerSet <set.minami@gmail.com>
Thu, 20 Jun 2013 09:30:28 +0000 (18:30 +0900)
mdTest/test13.bq
src/main/scala/org/blackquill/engine/BQParser.scala

index dafc333..6150fa7 100644 (file)
@@ -1,2 +1,4 @@
 aaaaa<http://example.example.com>bbbbb
-aaaa<example@example.com>bbb
\ No newline at end of file
+aaaa<example@example.com>bbb
+
+\*
\ No newline at end of file
index e4c72b6..3a89baf 100644 (file)
@@ -646,13 +646,24 @@ class BQParser {
                for(k <- Syntax keys){
                 md = Syntax(k)._2(md, k, Syntax(k)._1)
                }
+
+               md = backslashEscape(md)
                log info urlDefMap
                val header = constructHEADER(markdown)
                s"${docType}\n${header}\n<${htmlTAG}>\n<${bodyTAG}>\n${md.replaceAll("\\\\,","\n")}\n</${bodyTAG}>\n</${htmlTAG}>"
        }
 
-       def private backslashEscape(doc:String):String = {
-               
+       private def backslashEscape(doc:String):String = {
+               val escapeCharSet = Set("\\","`","*","_","{","}","[","]","(",")","#","+","-","!")
+               var bef = ""
+               for(e <- doc){
+                       if(escapeCharSet.contains(e.toString) && bef.reverse.head.toString == "\\"){
+                               bef = bef.init + e
+                       }else{
+                               bef += e
+                       }
+               }
+               return bef
        }
 
 }
\ No newline at end of file