diff --git a/stdlib/doc.lsp b/stdlib/doc.lsp index 6ee6b1a..3322457 100644 --- a/stdlib/doc.lsp +++ b/stdlib/doc.lsp @@ -8,10 +8,10 @@ (string-substr s 1 (- (string-len s) 2)) s)) -(defun doc::read-doc-file () +(defun doc::read-doc-file (filename) (do (define parse-line (lambda (ln) (if (string-regex? ln "^|.*|") - (do (define tokens (tail (string-split (string-trim ln) "\|"))) ; first element is "" + (do (define tokens (tail (string-split (string-rltrim ln " \n\r\t" "trim") "\|"))) ; first element is "" (if (= (len tokens) 4) (insert tokens 0 (string-replace-re (first (string-split (first tokens) "\s+|\)")) "`|\(" "")) nil) @@ -19,19 +19,20 @@ nil) )) - (define lines (string-split (read-file "doc/Doc.md") "\n") ) + (define lines (string-split (read-file filename) "\n") ) (define lines (map (lambda (ln) (parse-line ln)) lines)) (define lines (filter (lambda (e) (!= e nil)) lines)) (set! doc::doc_entries lines) + "doc loaded" )) (defun doc::print (entry) (do (print (term-green (doc::strip-backticks (second entry))) "-" (third entry)) - (print (last entry) "\n") + ; (print (last entry) "\n") ; doc section (if (> (string-len (fourth entry)) 2) (do (define examp (doc::strip-backticks (fourth entry))) (define pos (string-find examp "=>" 0)) - (if (> pos 0) + (if (and pos (> pos 0)) (print (term-magenta (+ (string-substr examp 0 (- pos 1)) "\n => " @@ -39,6 +40,7 @@ ))) ) ) + nil )) (defun doc::man (what)