Better line match to avoid cutting off verses that contain line breaks.
This commit is contained in:
		| @@ -1,6 +1,6 @@ | ||||
| # Package | ||||
|  | ||||
| version       = "0.2.1" | ||||
| version       = "0.2.2" | ||||
| author        = "Jonathan Bernard" | ||||
| description   = "Simple Nim CLI wrapper around the ESV API (api.esv.org)" | ||||
| license       = "MIT" | ||||
|   | ||||
| @@ -7,15 +7,15 @@ import std/[httpclient, json, logging, os, re, strutils, uri, wordwrap] | ||||
| import cliutils, docopt, zero_functional | ||||
|  | ||||
| proc formatMarkdown(raw: string): string = | ||||
|   let rawLines = raw.splitLines --> map(it.strip) | ||||
|   let wrapped = (rawLines --> | ||||
|     filter(not isEmptyOrWhitespace(it.strip) and match(it, re"^\[\d+\].*")). | ||||
|     map(it.multiReplace([(re"\((\d+)\)", ""), (re"\[(\d+)\]", "**$1**")])). | ||||
|   let rawLines = raw.splitLines | ||||
|   let wrapped = (raw.splitLines --> | ||||
|     filter(match(it, re"^\s+(\[\d+\]|\w).*")). | ||||
|     map(it.strip.multiReplace([(re"\((\d+)\)", ""), (re"\[(\d+)\]", "**$1**")])). | ||||
|     map(wrapWords(it, maxLineWidth = 74, newLine = "\p"))). | ||||
|     join("\p") | ||||
|  | ||||
|   result = (wrapped.splitLines --> map("> " & it)).join("\p") & | ||||
|     "\p>\p> -- *" & rawLines[0] & " (ESV)*" | ||||
|     "\p>\p> -- *" & rawLines[0].strip & " (ESV)*" | ||||
|  | ||||
| when isMainModule: | ||||
|   const USAGE = """Usage: | ||||
| @@ -44,7 +44,7 @@ Options: | ||||
|  | ||||
|   try: | ||||
|     # Parse arguments | ||||
|     let args = docopt(USAGE, version = "0.2.1") | ||||
|     let args = docopt(USAGE, version = "0.2.2") | ||||
|  | ||||
|     if args["--debug"]: | ||||
|       consoleLogger.levelThreshold = lvlDebug | ||||
|   | ||||
		Reference in New Issue
	
	Block a user