--- a/news-items.lisp
+++ b/news-items.lisp
@@ -1,50 +1,54 @@
-(defun convert-news ()
-  (with-open-file (news-i (merge-pathnames "NEWS" *root*) :direction :input
+(in-package :sbcl-page)
+
+(defun convert-news (pathname)
+  (with-open-file (news-i pathname
+                          :direction :input
 			  :external-format :iso-8859-1)
     (with-open-file (news-o (merge-pathnames "news.lisp-expr" *root*)
                             :direction :output
                             :if-exists :supersede
 			    :external-format :iso-8859-1)
+      (format news-o "(cl:in-package :sbcl-page)")
       (loop for line = (read-line news-i nil nil)
-            with level = 0
-            with need-close-string = nil
-            while line
-            do
-            (progn
-              (setf line (regex-replace-all "\\\\" line "\\\\\\\\"))
-              (setf line (regex-replace-all "\"" line "\\\""))
-              (or
-               (when (scan "^(?i)changes in sbcl-([0-9a-zA-Z.]+) .*$" line)
-                 (when need-close-string
-                   (write-string "\"" news-o)
-                   (setf need-close-string nil))
-                 (dotimes (i level)
-                   (write-string ")" news-o))
-                 (setf level 1)
-                 (setf line (regex-replace-all "^(?i)changes in sbcl-([0-9a-zA-Z.]+) .*$"
-                                               line
-                                               "(define-news \"\\1\"")))
-               (when (and
-		      (scan "^\\s*(\\*+)\\s*\\S.+$" line)
-		      (not (scan "^\\s*\\*[-a-zA-Z0-9]+\\*.*$" line)))
-                 (when need-close-string
-                   (write-string "\"" news-o))
-                 (let ((c (length
-                           (elt
-                            (nth-value 1
-                                       (scan-to-strings "^(?i)\\s*(\\*+).+$" line)) 0))))
-                   (dotimes (i (- level c))
-                     (write-string ")" news-o))
-                   (setf level (1+ c))
-                   (write-string "(" news-o))
-                 (setf need-close-string t)
-                 (setf line (regex-replace-all "^\\s*\\*+\\s*(\\S.+)$" line "\"\\1"))))
-              (write-string line news-o)
-              (terpri news-o))
-            finally
-            (progn
+         with level = 0
+         with need-close-string = nil
+         while line
+         do
+         (progn
+           (setf line (regex-replace-all "\\\\" line "\\\\\\\\"))
+           (setf line (regex-replace-all "\"" line "\\\""))
+           (or
+            (when (scan "^(?i)changes in sbcl-([0-9a-zA-Z.]+) .*$" line)
               (when need-close-string
                 (write-string "\"" news-o)
                 (setf need-close-string nil))
               (dotimes (i level)
-                (write-string ")" news-o)))))))
+                (write-string ")" news-o))
+              (setf level 1)
+              (setf line (regex-replace-all "^(?i)changes in sbcl-([0-9a-zA-Z.]+) .*$"
+                                            line
+                                            "(define-news \"\\1\"")))
+            (when (and
+                   (scan "^\\s*(\\*+)\\s*\\S.+$" line)
+                   (not (scan "^\\s*\\*[-a-zA-Z0-9]+\\*.*$" line)))
+              (when need-close-string
+                (write-string "\"" news-o))
+              (let ((c (length
+                        (elt
+                         (nth-value 1
+                                    (scan-to-strings "^(?i)\\s*(\\*+).+$" line)) 0))))
+                (dotimes (i (- level c))
+                  (write-string ")" news-o))
+                (setf level (1+ c))
+                (write-string "(" news-o))
+              (setf need-close-string t)
+              (setf line (regex-replace-all "^\\s*\\*+\\s*(\\S.+)$" line "\"\\1"))))
+           (write-string line news-o)
+           (terpri news-o))
+         finally
+         (progn
+           (when need-close-string
+             (write-string "\"" news-o)
+             (setf need-close-string nil))
+           (dotimes (i level)
+             (write-string ")" news-o)))))))