Speed up mungedoc TOC by pre-compiling a regex

Brings the time to run the TOC over the docs directory from .7 seconds
to .1 seconds
This commit is contained in:
Eric Paris 2015-07-20 11:02:03 -05:00
parent 853ea5bab2
commit 22fd8ac32d

View File

@ -57,12 +57,13 @@ func buildTOC(markdown []byte) ([]byte, error) {
buffer.WriteString("\n") buffer.WriteString("\n")
scanner := bufio.NewScanner(bytes.NewReader(markdown)) scanner := bufio.NewScanner(bytes.NewReader(markdown))
inBlockQuotes := false inBlockQuotes := false
for scanner.Scan() { blockQuoteRegex, err := regexp.Compile("^```")
line := scanner.Text()
match, err := regexp.Match("^```", []byte(line))
if err != nil { if err != nil {
return nil, err return nil, err
} }
for scanner.Scan() {
line := scanner.Text()
match := blockQuoteRegex.Match([]byte(line))
if match { if match {
inBlockQuotes = !inBlockQuotes inBlockQuotes = !inBlockQuotes
continue continue