Overview
Comment: | Add title-plain for notes; small refactor of note title generation |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
286673cf6040b70dd137560ac89a47af |
User & Date: | joel on 2019-08-19 21:33:37 |
Other Links: | manifest | tags |
Context
2019-08-19
| ||
21:36 | Add RSS feed. Closes [5cca77420922765f] check-in: f06db447 user: joel tags: trunk | |
21:33 | Add title-plain for notes; small refactor of note title generation check-in: 286673cf user: joel tags: trunk | |
2019-08-18
| ||
20:06 | Add notice to index preprocess source check-in: 1346740b user: joel tags: trunk | |
Changes
Modified code-docs/snippets-html.scrbl from [841e7710] to [ca2f5449].
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
Returns a string of HTML for an article as it would appear in a listing context in “short” form (date and title only, with link). @defproc[(html$-page-body-close) non-empty-string?] Returns a string containing the page’s @tt{<footer>} and closing tags. @defproc[(html$-note-title [author string?] [pagenode pagenode?] [parent-title string?]) non-empty-string?] Returns a string containing the HTML for a note’s title. The title is used when the note is displayed in a separate context from its parent article. If @racket[_author] is empty, then @racket[default-authorname] is used. The @racket[_pagenode] and @racket[_parent-title] values are for generating a link to the parent article. @defproc[(html$-note-contents [disposition-mark string?] [elems (listof xexpr?)]) non-empty-string?] Returns a string containing the body-elements of a note converted to HTML. If @racket[_disposition-mark] is not empty, a @tt{<span>} containing it will be inserted as the first element of the first block-level element. @defproc[(html$-note-listing-full [pagenode pagenode?] |
< < < < < < < < < |
91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
Returns a string of HTML for an article as it would appear in a listing context in “short” form (date and title only, with link). @defproc[(html$-page-body-close) non-empty-string?] Returns a string containing the page’s @tt{<footer>} and closing tags. @defproc[(html$-note-contents [disposition-mark string?] [elems (listof xexpr?)]) non-empty-string?] Returns a string containing the body-elements of a note converted to HTML. If @racket[_disposition-mark] is not empty, a @tt{<span>} containing it will be inserted as the first element of the first block-level element. @defproc[(html$-note-listing-full [pagenode pagenode?] |
Modified crystalize.rkt from [43b9fb1b] to [0131cbe3].
69 70 71 72 73 74 75 76 77 78 79 80 81 82 ... 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 ... 348 349 350 351 352 353 354 355 356 357 358 359 360 361 |
listing_excerpt_html ; Not used for now listing_short_html)) ; Date and title only (define table_notes-fields '(pagenode note_id title_html_flow author author_url date disposition content_html series_pagenode listing_full_html ................................................................................ "must be in format \"[symbol] [past-tense-verb]\"" "disposition attr" disposition-attr)) ;; Parse out remaining columns (define author (maybe-attr 'author attrs default-authorname)) (define note-id (build-note-id note-tx)) (define title-html-flow (html$-note-title pagenode parent-title-plain)) (define author-url (maybe-attr 'author-url attrs)) (define-values (disp-mark disp-verb) (disposition-values disposition-attr)) (define content-html (html$-note-contents disp-mark disp-verb (get-elements note-tx))) (define listing-full-html (html$-note-listing-full pagenode note-id title-html-flow note-date content-html author author-url)) (define note-record (list pagenode note-id title-html-flow author author-url note-date disposition-attr content-html (symbol->string (series-pagenode)) listing-full-html ................................................................................ " AND `note_id` = ?2), ~a)") (list->sql-fields table_notes-fields) (list->sql-parameters table_notes-fields))) (apply query! save-note-query note-record) ;; return html$ of note (html$-note-in-article note-id note-date content-html author author-url)) (define (article-plain-title pagenode) (query-value (sqltools:dbc) "SELECT `title_plain` FROM `articles` WHERE `pagenode` = ?1" (symbol->string pagenode))) ;; ~~~ Keyword Index Entries ~~~ ;; (private) Convert an entry key into a list of at most two elements, |
> | > > > > > > > > |
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 ... 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 ... 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 |
listing_excerpt_html ; Not used for now listing_short_html)) ; Date and title only (define table_notes-fields '(pagenode note_id title_html_flow title_plain author author_url date disposition content_html series_pagenode listing_full_html ................................................................................ "must be in format \"[symbol] [past-tense-verb]\"" "disposition attr" disposition-attr)) ;; Parse out remaining columns (define author (maybe-attr 'author attrs default-authorname)) (define note-id (build-note-id note-tx)) (define title-tx (make-note-title pagenode parent-title-plain)) (define title-html-flow (->html title-tx #:splice? #t)) (define title-plain (tx-strs title-tx)) (define author-url (maybe-attr 'author-url attrs)) (define-values (disp-mark disp-verb) (disposition-values disposition-attr)) (define content-html (html$-note-contents disp-mark disp-verb (get-elements note-tx))) (define listing-full-html (html$-note-listing-full pagenode note-id title-html-flow note-date content-html author author-url)) (define note-record (list pagenode note-id title-html-flow title-plain author author-url note-date disposition-attr content-html (symbol->string (series-pagenode)) listing-full-html ................................................................................ " AND `note_id` = ?2), ~a)") (list->sql-fields table_notes-fields) (list->sql-parameters table_notes-fields))) (apply query! save-note-query note-record) ;; return html$ of note (html$-note-in-article note-id note-date content-html author author-url)) (define (make-note-title pagenode parent-title-plain) `(note-title "Re: " (a [[class "cross-reference"] [href ,(format "~a~a" web-root pagenode)]] ,parent-title-plain))) (define (article-plain-title pagenode) (query-value (sqltools:dbc) "SELECT `title_plain` FROM `articles` WHERE `pagenode` = ?1" (symbol->string pagenode))) ;; ~~~ Keyword Index Entries ~~~ ;; (private) Convert an entry key into a list of at most two elements, |
Modified snippets-html.rkt from [1d57c14f] to [2b13836e].
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
..
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
(provide html$-page-head html$-page-body-open html$-article-open html$-article-close html$-article-listing-short html$-page-body-close html$-note-title html$-note-contents html$-note-listing-full html$-note-in-article html$-notes-section html$-paginate-navlinks) (define (html$-page-head [title #f] [close-head? #t]) ................................................................................ (define (html$-page-body-close) ◊string-append{<footer>By Joel Dueck</footer> </main></body>}) ;; Notes ;; (define (html$-note-title pagenode parent-title) (format "Re: <a class=\"cross-reference\" href=\"/~a\">~a</a>" pagenode parent-title)) (define (html$-note-contents disposition-mark disposition-verb elems) (define disposition (cond [(non-empty-string? disposition-mark) `(abbr [[class "disposition-mark-in-note"] [title ,(string-append "The original article is herewith considered " disposition-verb)]] ,disposition-mark)] |
<
<
<
<
<
<
|
17
18
19
20
21
22
23
24
25
26
27
28
29
30
..
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
(provide html$-page-head
html$-page-body-open
html$-article-open
html$-article-close
html$-article-listing-short
html$-page-body-close
html$-note-contents
html$-note-listing-full
html$-note-in-article
html$-notes-section
html$-paginate-navlinks)
(define (html$-page-head [title #f] [close-head? #t])
................................................................................
(define (html$-page-body-close)
◊string-append{<footer>By Joel Dueck</footer>
</main></body>})
;; Notes
;;
(define (html$-note-contents disposition-mark disposition-verb elems)
(define disposition
(cond [(non-empty-string? disposition-mark)
`(abbr [[class "disposition-mark-in-note"]
[title ,(string-append "The original article is herewith considered "
disposition-verb)]]
,disposition-mark)]
|