Overview
| Comment: | Add rough home page, finally close [3514e657bf79a443] | 
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk | 
| Files: | files | file ages | folders | 
| SHA3-256: | a770b9224b2a81cc7d20b2576409e1b0 | 
| User & Date: | joel on 2019-07-28 16:36:45 | 
| Other Links: | manifest | tags | 
Context
| 2019-08-18 | ||
| 19:17 | Makefile: SQLite file to replace zero-byte file in dependency tree. Also rename spritz → zap check-in: ec9ab7ab user: joel tags: trunk | |
| 2019-07-28 | ||
| 16:36 | Add rough home page, finally close [3514e657bf79a443] check-in: a770b922 user: joel tags: trunk | |
| 16:22 | Link to index.html explicitly in header check-in: 174a0398 user: joel tags: trunk | |
Changes
Added index.html.pp version [b1d87bbc].
| > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | 
#lang pollen
◊(require pollen/template db/base racket/list racket/match)
◊(define (fetch-series)
  (define q "SELECT noun_plural, pagenode, title FROM series ORDER BY noun_plural DESC")
  (query-rows (sqltools:dbc) q))
◊(define (series-item->txpr s)
  (match-define (list n pagenode title) s)
  `(li (a [[href ,pagenode]] (i ,title))))
◊(define (series-grouped-list)
  ;; Produces '((("noun1" "p.html" "Title") ("noun1" "q.html" "Title")) (("noun2" ...) ...))
  (define init-group
    (group-by first (map vector->list (fetch-series)) string-ci=?))
  
  (define series-list-items
    (for/list ([group (in-list init-group)])
      `(div (h2 ,(first (first group))) (ul ,@(map series-item->txpr group)))))
  `(section [[class "series-list"] [style "margin-top: 1.3rem"]] ,@series-list-items))
            
<!DOCTYPE html>
<html lang="en">
◊html$-page-head["The Local Yarn" #f]
<style>
  header#front-page {
    text-align: center;
  }
  header#front-page > div {
    display: inline-block;
    width: auto;
    margin: 0 auto;
    overflow: hidden;
  }
  #front-page h1 {
    font-feature-settings: "smcp" on;
    text-transform: lowercase;
    font-weight: normal;
    font-size: 2.5em;
    /* 24fps slide-in from right edge of text, just like in GRAND BUDAPEST HOTEL */
    animation: slideFromRight 1s steps(24);
  }
  @keyframes slideFromRight {
    0%   { margin-right: -200%; }
    100% { margin-right: 0%; }
  }
  #front-page-logo {
    shape-outside: url(web-extra/mark.svg);
    filter: brightness(0) saturate(100%) invert(20%) sepia(16%) saturate(903%) hue-rotate(153deg) brightness(93%) contrast(90%);
    shape-margin: 1rem;
    float: left;
    margin-left: -20vw;
    margin-right: 1rem;
    z-index: -100;
  }
  main {
    background: transparent;
    font-size: 1.3em;
    line-height: 1.2em;
  }
</style>
</head>
<body style="overflow-x:hidden; hyphens: auto">
 <header id="front-page"><div>
 <h1 class="site-title">The Local Yarn</h1>
 </div></header>
 <img id="front-page-logo" src="/web-extra/mark.svg" style="max-width: 60vw; height: auto;">
◊(define front-page-body ◊root{
is the end of the ◊index{thread} that you can pick or pluck, the forked ribbon tracing into the bookshelf,
your own or someone else’s. ◊em{I’ve seen this before} says the voice on the other end. ¶ Everything
(almost) is ◊link[1]{arranged in time order, newest first}. There are also a few arranged into named
collections:
◊url[1]{/blog-pg1.html}
}) 
◊(crystalize-index-entries! '|index.html| front-page-body)
<main> 
  ◊(->html front-page-body #:splice? #t)
  ◊(->html (series-grouped-list))
</main> 
</body>
</html>
 | 
Modified makefile from [23ab73ad] to [557f6398].
| ︙ | ︙ | |||
| 16 17 18 19 20 21 22 | series-sources := $(wildcard series/*.poly.pm) series-html := $(patsubst %.poly.pm, %.html, $(series-sources)) # ~~~ Rules ~~ # # The order of these dependencies is important. They will be processed left to right. | | > | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | series-sources := $(wildcard series/*.poly.pm) series-html := $(patsubst %.poly.pm, %.html, $(series-sources)) # ~~~ Rules ~~ # # The order of these dependencies is important. They will be processed left to right. web: _article_htmls.mark $(articles-html) $(series-html) web: index.html blog-pg1.html keyword-index.html web-extra/martin.css web: ## Rebuild all web content (not PDFs) # The file article_htmls.mark is a zero-byte file that serves only as a marker. If it is older than # any of its dependencies (or missing) all of the articles will be rebuilt. Its dependencies are # also on the Pollen cache watchlist (see pollen.rkt) _article_htmls.mark: $(core-files) $(html-deps) template.html.p raco pollen setup -p articles/ | 
| ︙ | ︙ | |||
| 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | # tidy -quiet -modify -indent --wrap 100 --wrap-attributes no --tidy-mark no $@ || true # Note that if any article is part of a series, it will touch its series .poly.pm file during its # render, triggering this rule for that series. $(series-html): %.html: %.poly.pm raco pollen render $@ # tidy -quiet -modify -indent --wrap 100 --wrap-attributes no --tidy-mark no $@ || true # This target will also rebuild pg2, pg3, etc. as needed blog-pg1.html: $(core-files) $(html-deps) $(articles-html) blog.rkt rm -f blog*.html racket -tm blog.rkt # tidy -quiet -modify -indent --wrap 100 --wrap-attributes no --tidy-mark no blog*.html || true | > > > | 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | # tidy -quiet -modify -indent --wrap 100 --wrap-attributes no --tidy-mark no $@ || true # Note that if any article is part of a series, it will touch its series .poly.pm file during its # render, triggering this rule for that series. $(series-html): %.html: %.poly.pm raco pollen render $@ # tidy -quiet -modify -indent --wrap 100 --wrap-attributes no --tidy-mark no $@ || true index.html: $(core-files) $(html-deps) $(series-html) index.html.pp raco pollen render index.html # This target will also rebuild pg2, pg3, etc. as needed blog-pg1.html: $(core-files) $(html-deps) $(articles-html) blog.rkt rm -f blog*.html racket -tm blog.rkt # tidy -quiet -modify -indent --wrap 100 --wrap-attributes no --tidy-mark no blog*.html || true | 
| ︙ | ︙ |