]> gitweb.factorcode.org Git - factor.git/commitdiff
help.html: simplify (and separate) index generation.
authorJohn Benediktsson <mrjbq7@gmail.com>
Fri, 26 Sep 2014 04:30:36 +0000 (21:30 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Fri, 26 Sep 2014 04:30:36 +0000 (21:30 -0700)
basis/help/html/html.factor

index 5f74221dd975a28968f272692b59b7c467fe9db1..7930f165b68af0669c2a30b02201e26fc894f526 100644 (file)
@@ -47,7 +47,7 @@ M: vocab-author topic>filename* name>> "author" ;
 M: f topic>filename* drop \ f topic>filename* ;
 
 : topic>filename ( topic -- filename )
-    topic>filename* dup [
+    topic>filename* [
         [
             % "-" %
             dup array?
@@ -55,7 +55,7 @@ M: f topic>filename* drop \ f topic>filename* ;
             [ escape-filename ]
             if % ".html" %
         ] "" make
-    ] [ 2drop f ] if ;
+    ] [ drop f ] if* ;
 
 M: topic url-of topic>filename ;
 
@@ -111,16 +111,26 @@ M: pathname url-of
     ] { } make ;
 
 : serialize-index ( index file -- )
-    [ [ [ topic>filename ] dip ] { } assoc-map-as object>bytes ] dip
-    binary set-file-contents ;
+    binary [
+        [ [ topic>filename ] dip ] { } assoc-map-as serialize
+    ] with-file-writer ;
 
-: generate-indices ( -- )
-    articles get keys [ [ >link ] [ article-title ] bi ] { } map>assoc "articles.idx" serialize-index
-    all-words [ dup name>> ] { } map>assoc "words.idx" serialize-index
-    all-vocabs-really [ dup vocab-name ] { } map>assoc "vocabs.idx" serialize-index ;
+: generate-article-index ( -- )
+    articles get [ [ >link ] [ article-title ] bi* ] assoc-map
+    "articles.idx" serialize-index ;
+
+: generate-word-index ( -- )
+    all-words [ dup name>> ] { } map>assoc
+    "words.idx" serialize-index ;
 
-: (generate-help-files) ( -- )
-    all-topics [ '[ _ generate-help-file ] try ] each ;
+: generate-vocab-index ( -- )
+    all-vocabs-really [ dup vocab-name ] { } map>assoc
+    "vocabs.idx" serialize-index ;
+
+: generate-indices ( -- )
+    generate-article-index
+    generate-word-index
+    generate-vocab-index ;
 
 : generate-help-files ( -- )
     H{
@@ -128,7 +138,9 @@ M: pathname url-of
         { recent-words f }
         { recent-articles f }
         { recent-vocabs f }
-    } [ (generate-help-files) ] with-variables ;
+    } [
+        all-topics [ '[ _ generate-help-file ] try ] each
+    ] with-variables ;
 
 : generate-help ( -- )
     "docs" cache-file