Add escapeTaskList method, it escapse '- [] ' characters

This commit is contained in:
bati11
2014-04-05 20:31:30 +09:00
parent c128086778
commit ce79eaada8
2 changed files with 70 additions and 0 deletions

View File

@@ -9,6 +9,7 @@ import org.pegdown.ast._
import org.pegdown.LinkRenderer.Rendering import org.pegdown.LinkRenderer.Rendering
import java.text.Normalizer import java.text.Normalizer
import java.util.Locale import java.util.Locale
import java.util.regex.Pattern
import scala.collection.JavaConverters._ import scala.collection.JavaConverters._
import service.{RequestCache, WikiService} import service.{RequestCache, WikiService}
@@ -149,4 +150,8 @@ object GitBucketHtmlSerializer {
val noSpecialChars = StringUtil.urlEncode(normalized) val noSpecialChars = StringUtil.urlEncode(normalized)
noSpecialChars.toLowerCase(Locale.ENGLISH) noSpecialChars.toLowerCase(Locale.ENGLISH)
} }
def escapeTaskList(text: String): String = {
Pattern.compile("""^ *- \[([x| ])\] """, Pattern.MULTILINE).matcher(text).replaceAll("task:$1: ")
}
} }

View File

@@ -25,4 +25,69 @@ class GitBucketHtmlSerializerSpec extends Specification {
after mustEqual "foo%21bar%40baz%3e9000" after mustEqual "foo%21bar%40baz%3e9000"
} }
} }
"escapeTaskList" should {
"convert '- [ ] ' to 'task: :'" in {
val before = "- [ ] aaaa"
val after = escapeTaskList(before)
after mustEqual "task: : aaaa"
}
"convert ' - [ ] ' to 'task: :'" in {
val before = " - [ ] aaaa"
val after = escapeTaskList(before)
after mustEqual "task: : aaaa"
}
"convert only first '- [ ] '" in {
val before = " - [ ] aaaa - [ ] bbb"
val after = escapeTaskList(before)
after mustEqual "task: : aaaa - [ ] bbb"
}
"convert '- [x] ' to 'task: :'" in {
val before = " - [x] aaaa"
val after = escapeTaskList(before)
after mustEqual "task:x: aaaa"
}
"convert multi lines" in {
val before = """
tasks
- [x] aaaa
- [ ] bbb
"""
val after = escapeTaskList(before)
after mustEqual """
tasks
task:x: aaaa
task: : bbb
"""
}
"no convert if inserted before '- [ ] '" in {
val before = " a - [ ] aaaa"
val after = escapeTaskList(before)
after mustEqual " a - [ ] aaaa"
}
"no convert '- [] '" in {
val before = " - [] aaaa"
val after = escapeTaskList(before)
after mustEqual " - [] aaaa"
}
"no convert '- [ ]a'" in {
val before = " - [ ]a aaaa"
val after = escapeTaskList(before)
after mustEqual " - [ ]a aaaa"
}
"no convert '-[ ] '" in {
val before = " -[ ] aaaa"
val after = escapeTaskList(before)
after mustEqual " -[ ] aaaa"
}
}
} }