@@ 350,7 350,7 @@ title, url-slug, body."
(tag (div class "publication-date")
(para (sortable-date-to-readable-date it))))
(whilet line (readline infile-after-options)
- (prn line)))
+ (prn line)))
(when mailing-list-div
(prn mailing-list-div))
(prn-tag-block-for-page options tag-map))
@@ 382,7 382,12 @@ title, url-slug, body."
(def prn-frontpage (entry-filepaths output-folder navbar-div analytics-script config)
(withs (sorted-options (get-sorted-options-for-files entry-filepaths)
- public-sorted-options (keep page-is-public sorted-options))
+ public-sorted-options (keep page-is-public sorted-options)
+ frontpage-blurbs (instring (tostring
+ (prn)
+ (each option public-sorted-options
+ (awhen option!frontpage
+ (prn (make-frontpage-blurb option)))))))
(w/outfile dest (+ output-folder "index.html")
(w/stdout dest
(prn-html-page
@@ 390,32 395,43 @@ title, url-slug, body."
"index"
navbar-div
(obj)
- (instring (tostring
- (prn)
- (each option public-sorted-options
- (awhen option!frontpage
- (prn (make-frontpage-blurb option))))))
+ frontpage-blurbs
analytics-script
config
nil
;;don't put a mailing list on the front page.
nil)))))
+(def link-blurb (blurb url-slug)
+ (with (input-chars (coerce blurb 'cons)
+ output nil)
+ (while input-chars
+ (if (and (is (car input-chars)
+ #\<)
+ (is (cadr input-chars)
+ #\a)
+ (is (car (cddr input-chars))
+ #\>))
+ (do (push (string "<a href=\""
+ url-slug
+ "\" class=\"primary-blurb-link\">")
+ output)
+ (= input-chars
+ (cddr (cdr input-chars))))
+ (push (pop input-chars) output)))
+ (apply string (rev output))))
+
(def make-frontpage-blurb (options)
- (withs (raw-blurb options!frontpage)
- (subst "<a>"
- (string "<a href=\""
- options!url-slug
- "\" class=\"primary-blurb-link\">")
- (if (and (headmatch "<p>" raw-blurb)
- (endmatch "</p>" raw-blurb))
- raw-blurb
- (tostring (tag p
- (awhen options!date
- (tag em
- (pr it))
- (pr " — "))
- (pr raw-blurb)))))))
+ (withs (linked-blurb (link-blurb options!frontpage options!url-slug))
+ (if (and (headmatch "<p>" linked-blurb)
+ (endmatch "</p>" linked-blurb))
+ linked-blurb
+ (tostring (tag p
+ (awhen options!date
+ (tag em
+ (pr it))
+ (pr " — "))
+ (pr linked-blurb))))))
(def prn-codegen-page (title url-slug body-text analytics-script page-specific-headers config)
(prn-page title url-slug body-text analytics-script page-specific-headers config))