Overview
Comment: | Use new init script & revise makefile to ensure series info is accurate after a clean rebuild |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
c859888259093b5fb3ec1a25f9d5489f |
User & Date: | joel on 2020-02-20 03:00:14 |
Other Links: | manifest | tags |
Context
2020-02-20
| ||
03:16 | Make cache db connection thread-safe check-in: 37240160 user: joel tags: trunk | |
03:00 | Use new init script & revise makefile to ensure series info is accurate after a clean rebuild check-in: c8598882 user: joel tags: trunk | |
02:58 | CSS for new short-list markup check-in: 6b04a07f user: joel tags: trunk | |
Changes
Modified code-docs/cache.scrbl from [821a1577] to [379418fa].
︙ | ︙ | |||
38 39 40 41 42 43 44 | @defproc[(init-cache-db!) void?]{ Creates and initializes the SQLite database cache file (named @filepath{vitreous.sqlite} and located in the project root folder) by running queries to create tables in the database if they do not exist. | < < < | 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | @defproc[(init-cache-db!) void?]{ Creates and initializes the SQLite database cache file (named @filepath{vitreous.sqlite} and located in the project root folder) by running queries to create tables in the database if they do not exist. } @defparam[current-plain-title title-plain non-empty-string? #:value "void"]{ Contains (or sets) the “plain” title (i.e., with no HTML markup) for the current article based on analysis done by @racket[parse-and-cache-article!]. If the article did not specify a title, a default title is supplied. If the article contained a @racket[note] that used the |
︙ | ︙ |
Modified code-docs/main.scrbl from [662fc0af] to [ddb962d8].
︙ | ︙ | |||
53 54 55 56 57 58 59 | @include-section["tour.scrbl"] @include-section["design.scrbl"] @include-section["pollen.scrbl"] @; pollen.rkt @include-section["dust.scrbl"] @; dust.rkt @include-section["snippets-html.scrbl"] @; you get the idea @include-section["cache.scrbl"] @include-section["crystalize.scrbl"] | > | 53 54 55 56 57 58 59 60 | @include-section["tour.scrbl"] @include-section["design.scrbl"] @include-section["pollen.scrbl"] @; pollen.rkt @include-section["dust.scrbl"] @; dust.rkt @include-section["snippets-html.scrbl"] @; you get the idea @include-section["cache.scrbl"] @include-section["crystalize.scrbl"] @include-section["other-files.scrbl"] |
Added code-docs/other-files.scrbl version [e6f91e53].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | #lang scribble/manual @; SPDX-License-Identifier: BlueOak-1.0.0 @; This file is licensed under the Blue Oak Model License 1.0.0. @(require "scribble-helpers.rkt") @(require (for-label racket/base "../cache.rkt")) @title[#:tag "other-files"]{Other files} @section{Home page (@filepath{index.html.pp})} Simple Pollen preprocessor file that generates the home page. @section{Keyword Index (@filepath{keyword-index.rkt})} Through its provided @tt{main} function, builds the keyword index page by pulling all the index entries directly from the SQLite cache and sorting them by first letter. @section{Blog (@filepath{blog.rkt})} Through its provided @tt{main} function, creates a paginated listing of all @tech{articles} and @tech{notes}. @section{RSS Feed (@filepath{rss-feed.rkt})} Through its provided @tt{main} function, creates the RSS feed in the file @filepath{feed.xml}. Both articles and notes are included. Any article or note with either @racket["all"] or @racket["feed"] in its @racket['conceal] meta is excluded. @section{Cache initialization (@filepath{util/init.rkt})} Creates and initializes the cache database with @racket[init-cache-db!] and @racket[preheat-series!]. @section{New article template (@filepath{util/newpost.rkt})} Prompts for a title, creates an article with a normalized version of the filename and today’s date, and opens the article in an editor. |
Modified index.html.pp from [511f6fe5] to [5d60b9a7].
︙ | ︙ | |||
66 67 68 69 70 71 72 | (almost) is ◊link[1]{arranged in time order, newest first}. There are also a few arranged into named collections: ◊url[1]{/blog-pg1.html} }) ◊; stop for now: (crystalize-index-entries! '|index.html| front-page-body) | < | 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | (almost) is ◊link[1]{arranged in time order, newest first}. There are also a few arranged into named collections: ◊url[1]{/blog-pg1.html} }) ◊; stop for now: (crystalize-index-entries! '|index.html| front-page-body) <main> ◊(->html front-page-body #:splice? #t) ◊(html$-series-list) </main> </body> </html> |
Modified makefile from [ffa5dcb1] to [fae17d31].
︙ | ︙ | |||
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | web: vitreous.sqlite $(articles-html) $(series-html) web: index.html blog-pg1.html keyword-index.html web-extra/martin.css feed.xml web: ## Rebuild all web content (not PDFs) # The file vitreous.sqlite is a cache of the rendered HTML and metadata. 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) vitreous.sqlite: $(core-files) $(html-deps) template.html.p raco pollen setup -p articles/ raco pollen render -p -t html articles/*.poly.pm raco pollen setup -p series/ raco pollen render -p -t html series/*.poly.pm rm -f template.html series/template.html tidy -quiet -modify -indent --wrap 100 --wrap-attributes no --tidy-mark no articles/*.html || true tidy -quiet -modify -indent --wrap 100 --wrap-attributes no --tidy-mark no series/*.html || true # If the rule for vitreous.sqlite was triggered, all the article HTML files will already have been | > > > > > > | 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | web: vitreous.sqlite $(articles-html) $(series-html) web: index.html blog-pg1.html keyword-index.html web-extra/martin.css feed.xml web: ## Rebuild all web content (not PDFs) # The file vitreous.sqlite is a cache of the rendered HTML and metadata. 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) # # After articles are rendered in this way, all the series pages are "touched", to trick Pollen into # re-rendering those pages without relying on its cache. Without this step, it seems those pages # are rendered “transitively” during the article render, and the listings are incomplete. vitreous.sqlite: $(core-files) $(html-deps) template.html.p racket -tm util/init.rkt raco pollen setup -p articles/ raco pollen render -p -t html articles/*.poly.pm touch series/*.poly.pm raco pollen setup -p series/ raco pollen render -p -t html series/*.poly.pm rm -f template.html series/template.html tidy -quiet -modify -indent --wrap 100 --wrap-attributes no --tidy-mark no articles/*.html || true tidy -quiet -modify -indent --wrap 100 --wrap-attributes no --tidy-mark no series/*.html || true # If the rule for vitreous.sqlite was triggered, all the article HTML files will already have been |
︙ | ︙ |
Modified pollen.rkt from [5f7205ca] to [19ce46ba].
︙ | ︙ | |||
38 39 40 41 42 43 44 | (map resolve-module-path (list tags-html.rkt snippets-html.rkt dust.rkt cache.rkt crystalize.rkt)))) | < < < | 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | (map resolve-module-path (list tags-html.rkt snippets-html.rkt dust.rkt cache.rkt crystalize.rkt)))) ;; Macro for defining tag functions that automatically branch based on the ;; current output format and the list of poly-targets in the setup module. ;; Use this macro when you know you will need keyword arguments. ;; (define-syntax (poly-branch-kwargs-tag stx) (syntax-parse stx [(_ TAG:id) |
︙ | ︙ |
Added util/init.rkt version [41c57f81].
> > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #lang racket/base (require racket/file pollen/setup "../cache.rkt" "../snippets-html.rkt") (provide main) (define (main) (init-cache-db!) (preheat-series!) (display-to-file (html$-page-footer) (build-path (current-project-root) "scribbled" "site-footer.html") #:exists 'replace)) |