Overview
Comment: | Minor code doc edits |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
e538e325814725c180d92dd6e77d08fa |
User & Date: | joel on 2020-02-22 00:04:28 |
Other Links: | manifest | tags |
Context
2020-02-24
| ||
07:35 | Variadic make-tag-predicate check-in: 3ed11073 user: joel tags: trunk | |
2020-02-22
| ||
00:04 | Minor code doc edits check-in: e538e325 user: joel tags: trunk | |
2020-02-21
| ||
22:43 | Build up listing schema, use for RSS feed ([2f082139]) check-in: d3755213 user: joel tags: trunk | |
Changes
Modified code-docs/cache.scrbl from [1876eb41] to [bc87f6f5].
︙ | ︙ | |||
160 161 162 163 164 165 166 | Delete a particular article, or all notes for a particular article, respectively. } @section{Schema} | | > > | > | > > > > | 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 | Delete a particular article, or all notes for a particular article, respectively. } @section{Schema} The cache database has four tables: @tt{articles}, @tt{notes}, @tt{index_entries} and @tt{series}. Each of these has a corresponding schema, shown below. In addition, there is a “virtual” schema, @tt{listing}, for use with queries which may or may not combine articles and notes intermingled. The work of picking apart an article’s exported @tt{doc} and @tt{metas} into rows in these tables is done by @racket[parse-and-cache-article!]. The below are shown as @code{struct} forms but are actually defined with deta’s @racket[define-schema]. Each schema has an associated struct with the same name and a smart constructor called @tt{make-@emph{id}}. The struct’s “dumb” constructor is hidden so that invalid entities cannot be created. For every defined field there is an associated functional setter and updater named @tt{set-@emph{id}-field} and @tt{update-@emph{id}-field}, respectively. @defstruct*[cache:article ([id id/f] [page symbol/f] [title-plain string/f] [title-html-flow string/f] [title-specified boolean/f] [published string/f] |
︙ | ︙ | |||
243 244 245 246 247 248 249 | [author string/f] [published string/f] [updated string/f] [html string/f]) #:constructor-name make-listing]{ This is a “virtual” schema targeted by @racket[articles] and @racket[articles+notes] using deta’s | | | > | 250 251 252 253 254 255 256 257 258 259 260 261 | [author string/f] [published string/f] [updated string/f] [html string/f]) #:constructor-name make-listing]{ This is a “virtual” schema targeted by @racket[articles] and @racket[articles+notes] using deta’s @racket[project-onto]. It supplies the minimum set of fields needed to build the RSS feed, and which are common to both articles and notes; most times (e.g., on @tech{series} pages) only the @tt{html} field is used, via @racket[fenced-listing] or @racket[listing-htmls]. } |