BlackQuill
| Revision | 7b953e23c1b293f32c1e9d19a711e78f2f11b42f (tree) |
|---|---|
| Time | 2013-06-03 00:30:44 |
| Author | |
| Commiter | Set |
commit
| @@ -8,7 +8,7 @@ bbbbb<-testccccccc | ||
| 8 | 8 | ### TITLE2 |
| 9 | 9 | <link href="test->test" /> |
| 10 | 10 | <!-- これはコメント --> |
| 11 | -<link href="test2->test2" /> | |
| 11 | +<link href="test2-test2" /> | |
| 12 | 12 | <!-- これも |
| 13 | 13 | コメント |
| 14 | 14 | --> |
| @@ -54,12 +54,11 @@ bbbbb<-testccccccc | ||
| 54 | 54 | 6. F |
| 55 | 55 | 7. G |
| 56 | 56 | |
| 57 | - * A | |
| 58 | - * B | |
| 59 | - * C | |
| 60 | - * D | |
| 61 | - * E | |
| 62 | - | |
| 57 | + * A | |
| 58 | + * B | |
| 59 | + * C | |
| 60 | + * D | |
| 61 | + * E | |
| 63 | 62 | ### aaaaa ### |
| 64 | 63 | # aaa1 |
| 65 | 64 | # aaa2 # |
| @@ -69,42 +68,34 @@ bbbbb<-testccccccc | ||
| 69 | 68 | # aaa ## |
| 70 | 69 | aaa5 |
| 71 | 70 | --- |
| 72 | - | |
| 73 | - | |
| 74 | 71 | >abc |
| 75 | 72 | >def |
| 76 | 73 | |
| 77 | 74 | >abc |
| 78 | 75 | >ghi |
| 79 | - | |
| 76 | +aaa | |
| 80 | 77 | >abc |
| 81 | 78 | >jkl |
| 82 | 79 | mno |
| 83 | - | |
| 84 | 80 | >abc *def* |
| 85 | 81 | >ghi **jkl** |
| 86 | 82 | >mno |
| 87 | 83 | |
| 88 | 84 | >abc |
| 89 | -> | |
| 90 | 85 | > * def |
| 91 | 86 | > * ghi |
| 92 | 87 | >jkl |
| 93 | - | |
| 94 | 88 | aaaaaaaaaaaaaaaaaaaaa |
| 95 | 89 | aaaaaaaaaaaaaaaa |
| 96 | 90 | aaaaaaaaaaa |
| 97 | 91 | > bbb |
| 98 | - | |
| 99 | 92 | cccccccccccccc |
| 100 | 93 | cccccccccccccccc |
| 101 | 94 | ccccccccccc |
| 102 | - | |
| 103 | 95 | >aaa |
| 104 | 96 | >bbb |
| 105 | - | |
| 106 | -<!-- >>ccc | |
| 97 | +>>ccc | |
| 107 | 98 | >>ddd |
| 108 | ->eee --> | |
| 99 | +>eee | |
| 109 | 100 | |
| 110 | 101 | あああ |
| \ No newline at end of file |
| @@ -19,8 +19,9 @@ class BQParser { | ||
| 19 | 19 | private val log:Log = LogFactory.getLog(classOf[BQParser]) |
| 20 | 20 | |
| 21 | 21 | private val Syntax = LinkedHashMap( |
| 22 | - "^(.*?\\\\,)((>.*?\\\\,)+?)\\\\,(.*?)$$" -> ("blockquote",surroundByBlockquoteTAG _), | |
| 23 | - "^(.*?\\\\,)>(.*?)\\\\,\\\\,(.*?)$$" -> ("blockquote",surroundByGeneralTAG _), | |
| 22 | + //"^()((>.*?\\\\,)+?)\\\\,(.*?)$$" -> ("blockquote",surroundByBlockquoteTAG _), | |
| 23 | + "^(.*?\\\\,)((>.*?\\\\,)+?)(\\\\,.*?)$$" -> ("blockquote",surroundByBlockquoteTAG _), | |
| 24 | + //"^(.*?\\\\,)>(.*?)\\\\,\\\\,(.*?)$$" -> ("blockquote",surroundByGeneralTAG _), | |
| 24 | 25 | "^(.*?)((\\s+\\d+?\\.\\s.+?\\\\,)+)(.*?)$$" -> ("ol",surroundByListTAG _), |
| 25 | 26 | "^(.*?)((\\s+(?:\\*|\\+|\\-)\\s.+?\\\\,)+)(.*?)$$" -> ("ul",surroundByListTAG _), |
| 26 | 27 | "^(.*?)\\*\\*(.+?)\\*\\*(.*?)$$" -> ("em",surroundByGeneralTAG _), |
| @@ -33,30 +34,47 @@ class BQParser { | ||
| 33 | 34 | private def surroundByBlockquoteTAG(doc:String, regex:String, TAG:String):String = { |
| 34 | 35 | val p = new Regex(regex, "before","inTAG","midInTag","following") |
| 35 | 36 | val m = p findFirstMatchIn(doc) |
| 36 | - | |
| 37 | + log info "[" + doc + "]" | |
| 38 | + | |
| 37 | 39 | var bef = "" |
| 38 | 40 | var fol = "" |
| 39 | 41 | var contentStr = "" |
| 40 | 42 | if(m != None){ |
| 41 | - val mid = m.get.group("inTAG") | |
| 43 | + var mid = m.get.group("inTAG") | |
| 42 | 44 | log info "***-->" + mid |
| 43 | 45 | |
| 44 | - if(m.get.group("before") != None){bef = m.get.group("before")}else{bef = ""} | |
| 46 | + if(m.get.group("before") != None){ | |
| 47 | + bef = m.get.group("before") | |
| 48 | + if(bef.startsWith(">")){ | |
| 49 | + mid = bef + mid | |
| 50 | + bef = "" | |
| 51 | + } | |
| 52 | + }else{bef = ""} | |
| 45 | 53 | if(m.get.group("following") != None){fol = m.get.group("following")}else{fol = ""} |
| 46 | 54 | |
| 47 | 55 | log info "=>" + mid |
| 48 | - if(mid != ""){ | |
| 49 | - val mat = """(>(.+?\\,))+?""".r.findAllMatchIn(mid) | |
| 56 | + if(mid != null){ | |
| 57 | + val mat = """(.+?\\,)+?""".r.findAllMatchIn(mid) | |
| 58 | + | |
| 59 | + var inCurrentBQ = true | |
| 50 | 60 | |
| 51 | 61 | for(mt <- mat){ |
| 52 | - contentStr += mt.group(2) | |
| 62 | + if(!mt.group(1).startsWith(">")||mt.group(1) == "\\\\,"){ | |
| 63 | + inCurrentBQ = false | |
| 64 | + } | |
| 65 | + if(inCurrentBQ){ | |
| 66 | + contentStr += mt.group(1).tail | |
| 67 | + }else{ | |
| 68 | + log info "(" + mt.group(1) + ")" | |
| 69 | + fol += mt.group(1)} | |
| 53 | 70 | log info "^^^" + mt |
| 54 | 71 | } |
| 55 | 72 | } |
| 56 | - | |
| 73 | + log info "bef=" + bef + " mid=" + contentStr + " fol=" + fol | |
| 57 | 74 | log info "-->" + contentStr |
| 58 | 75 | return surroundByBlockquoteTAG(bef, regex, TAG) + |
| 59 | - "<blockquote>" + contentStr + "</blockquote>" + surroundByBlockquoteTAG(fol, regex, TAG) | |
| 76 | + s"<$TAG>\\," + surroundByBlockquoteTAG(contentStr, regex, TAG) + s"</$TAG>\\," + | |
| 77 | + surroundByBlockquoteTAG(fol, regex, TAG) | |
| 60 | 78 | } |
| 61 | 79 | doc |
| 62 | 80 | } |
| @@ -108,7 +126,7 @@ class BQParser { | ||
| 108 | 126 | sign = "\\d+?\\." |
| 109 | 127 | } |
| 110 | 128 | |
| 111 | - log info ":::" + s | |
| 129 | + log debug ":::" + s | |
| 112 | 130 | var docList = List[String]() |
| 113 | 131 | for(elem <- s"""(\\s+?$sign\\s.+?\\\\,)+?""".r.findAllMatchIn(s)){ |
| 114 | 132 | docList = elem.group(1)::docList |
| @@ -120,7 +138,7 @@ class BQParser { | ||
| 120 | 138 | var tree = new TreeNode[String]("") |
| 121 | 139 | if(doc.isEmpty){return tree} |
| 122 | 140 | |
| 123 | - log info "====>" + doc | |
| 141 | + log debug "====>" + doc | |
| 124 | 142 | tree.add(new TreeNode("<" + sp + s""" style=\"list-style-type:${styles(indent)}\">""")) |
| 125 | 143 | var i = indent |
| 126 | 144 | var list = List.empty[Tuple3[String,Int,String]] |
| @@ -154,7 +172,7 @@ class BQParser { | ||
| 154 | 172 | return tree |
| 155 | 173 | } |
| 156 | 174 | |
| 157 | - log info "->" + docList | |
| 175 | + log debug "->" + docList | |
| 158 | 176 | val r1 = s"""(\\s*)${sign}.*?\\\\,""".r |
| 159 | 177 | val wS1 = r1.findFirstMatchIn(s) |
| 160 | 178 | var str = "" |
| @@ -169,7 +187,7 @@ class BQParser { | ||
| 169 | 187 | } |
| 170 | 188 | if(wS == wS2){str += wS.get.group(2)} |
| 171 | 189 | |
| 172 | - log info "!---->" + str | |
| 190 | + log debug "!---->" + str | |
| 173 | 191 | surroundByListTAG(bef,regex,TAG) + str + surroundByListTAG(fol,regex,TAG) |
| 174 | 192 | }else{doc} |
| 175 | 193 | } |