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
|
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
|
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
|
(define DBFILE (build-path (current-project-root) "vitreous.sqlite"))
(define cache-conn (make-parameter (sqlite3-connect #:database DBFILE #:mode 'create)))
(define-schema cache:article #:table "articles"
([id id/f #:primary-key #:auto-increment]
[page symbol/f]
[title-plain string/f]
[title-html-flow string/f]
[title-specified? boolean/f]
[published string/f]
[updated string/f]
[author string/f]
[title-plain string/f #:nullable]
[title-html-flow string/f #:nullable]
[title-specified? boolean/f #:nullable]
[published string/f #:nullable]
[updated string/f #:nullable]
[author string/f #:nullable]
[conceal string/f]
[series-page symbol/f]
[noun-singular string/f]
[note-count integer/f]
[content-html string/f]
[disposition string/f]
[disp-html-anchor string/f]
[listing-full-html string/f] ; full content but without notes
[listing-excerpt-html string/f] ; Not used for now
[listing-short-html string/f])) ; Date and title only
[series-page symbol/f #:nullable]
[noun-singular string/f #:nullable]
[note-count integer/f #:nullable]
[content-html string/f #:nullable]
[disposition string/f #:nullable]
[disp-html-anchor string/f #:nullable]
[listing-full-html string/f #:nullable] ; full content but without notes
[listing-excerpt-html string/f #:nullable] ; Not used for now
[listing-short-html string/f #:nullable])) ; Date and title only
(define-schema cache:note #:table "notes"
([id id/f #:primary-key #:auto-increment]
[page symbol/f]
[html-anchor string/f]
[title-html-flow string/f] ; No block-level HTML elements
[title-plain string/f]
|