Commits

Phil Hargett  committed 2b4f839

Added basic documentation generator, backed by a template (no docs yet)

  • Participants
  • Parent commits 081cdb7

Comments (0)

Files changed (4)

File documentation.lisp

+;; Copyright (c) 2011 Phil Hargett
+
+;; Permission is hereby granted, free of charge, to any person obtaining a copy
+;; of this software and associated documentation files (the "Software"), to deal
+;; in the Software without restriction, including without limitation the rights
+;; to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+;; copies of the Software, and to permit persons to whom the Software is
+;; furnished to do so, subject to the following conditions:
+
+;; The above copyright notice and this permission notice shall be included in
+;; all copies or substantial portions of the Software.
+
+;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+;; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+;; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+;; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+;; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+;; THE SOFTWARE.
+
+(in-package :hh-web-tags)
+
+
+(deftemplates :tag-library-packages ( "hh-web-tags" )
+  :template-packages ( "hh-web-tags")
+  :templates ((wt-package-docs-index "wt_package_docs_index.lisp")))
+
+(defun generate-package-documentation ()
+  (flet ((report (&rest args)
+	   (apply #'format *standard-output* args)))
+    (let* ((documentation-path (asdf:system-relative-pathname 
+				(asdf:find-system :hh-web-tags) 
+				(make-pathname :directory `(:relative "docs"))))
+	   (index-path (merge-pathnames (make-pathname :name "index" :type "html")
+					(make-pathname :host (pathname-host documentation-path)
+						       :directory (pathname-directory documentation-path)))))
+      (report "Generating documentation to directory ~s~%" documentation-path)
+      (ensure-directories-exist documentation-path)
+      (with-open-file (os index-path :direction :output :if-does-not-exist :create)
+	(report "Generating index at ~s~%" index-path)
+	(write-string (wt-package-docs-index) os)))))

File hh-web-tags.asd

 	       (:file "taglibraries")
 	       (:file "templates")
 	       (:file "images")
+	       (:file "documentation")
 	       )
   :depends-on (
 	       ;; external packages

File templates/wt_package_docs_index.lisp

+;; Copyright (c) 2011 Phil Hargett
+
+;; Permission is hereby granted, free of charge, to any person obtaining a copy
+;; of this software and associated documentation files (the "Software"), to deal
+;; in the Software without restriction, including without limitation the rights
+;; to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+;; copies of the Software, and to permit persons to whom the Software is
+;; furnished to do so, subject to the following conditions:
+
+;; The above copyright notice and this permission notice shall be included in
+;; all copies or substantial portions of the Software.
+
+;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+;; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+;; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+;; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+;; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+;; THE SOFTWARE.
+
+(+tag-library :html)
+(+tag-library :script)
+
+(page 
+ (+title "Documentation for hh-web-tags")
+ (p "Documentation forthcoming"))
 (deftemplates :tag-library-packages ( "hh-web-tags" )
   :template-packages ( "hh-web-tags")
   :templates (
-	      (test-page "wt_tags_tests1.lisp")
-	      (test-html "wt_tags_tests2.lisp")
+	      (test-page1 "wt_tags_tests1.lisp")
+	      (test-html1 "wt_tags_tests2.lisp")
 	      ))
 
 ;;----------------------------------------
 ;; Tests
 
 (define-test template-tests
-  (assert-true (string= (test-page) "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\">
+  (assert-true (string= (test-page1) "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\">
 <html xmlns=\"http://www.w3.org/1999/xhtml\">
 <head>
 </head>
 ")))
 
 (define-test html-tests
-  (assert-true (string= (test-html) "<p>
+  (assert-true (string= (test-html1) "<p>
 hello</p>
 ")))