(defun ls2html () (let ((lines nil) (dname nil)) (with-open-stream (instream (popen "pwd")) (setf dname (strip-left-from-string "code" (read-line instream)))) (with-open-stream (instream (popen "ls -1F")) (loop (if (peek-char nil instream) (setf lines (append lines (list (read-line instream)))) (return)))) (with-open-file (outstream "index.html" :direction :output) (format outstream "~%") (format outstream "~%") (format outstream "~a~%" dname) (format outstream "~%") (format outstream "~%") (format outstream "~%") (format outstream "

UCLA Xlisp-Stat Archive

~%") (format outstream "

~%


~%

~%") (format outstream "

~a

~%

~%" dname) (format outstream "

Files

~%") (format outstream "
~%") (dolist (str lines) (format outstream "
~%") (cond ((char-equal #\/ (last-char str)) (format outstream "~a~%" str (but-last-char str))) ((char-equal #\~ (last-char str))) ((char-equal #\# (last-char str))) (t (format outstream "~a~%" str))) (format outstream "
~%") (format outstream "
Text goes here
~%")) (format outstream "
~%") (format outstream "

~%

~%


~%") (format outstream "
Jan de Leeuw
~%UCLA Statistics Program
~%deleeuw@stat.ucla.edu~%
~%") (format outstream "~%") (format outstream "~%")) ) ) (defun last-char (str) (elt str (1- (length str)))) (defun but-last-char (str) (select str (iseq (1- (length str))))) (defun strip-left-from-string (str1 str2) "Args: str1 str2 Looks for str1 in str2, then removes str1 and everything preceding str1 from str2." (let ((indx (search str1 str2)) (nlgt (length str1))) (if indx (subseq str2 (+ indx nlgt)) str2)) )