X-Git-Url: https://code.consxy.com/gitweb/gitweb.cgi?p=honey;a=blobdiff_plain;f=src%2Fmain%2Fparse.lisp;h=61f37e8e32cd3d5b50501862926890f131b0a50d;hp=74745bc750e392efe53821b680855b58081d5ebe;hb=65394a3;hpb=00c7e5bc45caa890553519610a96a0159be8e179 diff --git a/src/main/parse.lisp b/src/main/parse.lisp index 74745bc..61f37e8 100644 --- a/src/main/parse.lisp +++ b/src/main/parse.lisp @@ -49,8 +49,8 @@ DESCRIPTION: (append (list prev - (funcall function-to-call (subseq (cdr lines) 0 (or pos (length lines))))) - (parse-lines (nthcdr (1+ pos) (cdr lines)))))) + (funcall function-to-call (subseq (cdr lines) 0 (or pos (1- (length lines)))))) + (parse-lines (nthcdr (if pos (1+ pos) (length lines)) (cdr lines)))))) (t (cons prev (parse-lines (cdr lines) parsed-line)))))))) (defun parse-texts (line) @@ -163,7 +163,17 @@ DESCRIPTION: (defline-parser "### *(.*)" inline-h3) (defline-parser "## *(.*)" inline-h2) (defline-parser "# *(.*)" inline-h1) + +; Ignore codefence +(defline-parser "(```.*```.*)" default) + (defline-parser "```(.*)" codefence) + +; If we start with a space after the asterisk, we really do want a list +(defline-parser " *\\* (.*)" list-item) +; Ignore list-tiem +(defline-parser "(\\*\\*.*\\*\\*.*)" default) +(defline-parser "(\\*.*\\*.*)" default) (defline-parser " *\\* *(.*)" list-item) (defline-parser " *" emptiness) (defline-parser "(.*)" default) @@ -177,6 +187,11 @@ DESCRIPTION: (defun md-link (before text md-link after) (list before (a :href md-link (parse-texts text)) after)) +(defun inline-code (before during after) + (list before (code during) after)) + (definline-parser "(.*)\\[([^\\]]*)\\]\\(([^)]*)\\)(.*)" md-link) (definline-parser "(.*)\\*\\*(.*)\\*\\*(.*)" strength) (definline-parser "(.*)\\*(.*)\\*(.*)" emphasis) +(definline-parser "(.*)_(.*)_(.*)" emphasis) +(definline-parser "(.*)```(.*)```(.*)" inline-code)