diff options
author | Arun Isaac | 2023-08-28 23:01:31 +0100 |
---|---|---|
committer | Arun Isaac | 2023-08-29 17:08:47 +0100 |
commit | cea43d7793d31b49b421a27cf29293011fbe72be (patch) | |
tree | 3a4e69183d1ac58b3f2c54de5426b0694bfd1ef9 | |
parent | 2ecf73a5e3085a2b529b10e92a6371cc211dafba (diff) | |
download | skribilo-cea43d7793d31b49b421a27cf29293011fbe72be.tar.gz skribilo-cea43d7793d31b49b421a27cf29293011fbe72be.tar.lz skribilo-cea43d7793d31b49b421a27cf29293011fbe72be.zip |
html: Implement author without HTML tables.
* src/guile/skribilo/engine/html.scm (author): Implement without HTML
tables, using CSS only.
-rw-r--r-- | src/guile/skribilo/engine/html.scm | 93 |
1 files changed, 38 insertions, 55 deletions
diff --git a/src/guile/skribilo/engine/html.scm b/src/guile/skribilo/engine/html.scm index d651de7..96b5565 100644 --- a/src/guile/skribilo/engine/html.scm +++ b/src/guile/skribilo/engine/html.scm @@ -1056,73 +1056,56 @@ ignored, return #f." ;*---------------------------------------------------------------------*/ (markup-writer 'author :options '(:name :title :affiliation :email :url :address :phone :photo :align) - :before (lambda (node engine) - (html-open 'table - `((class . ,(markup-class node)))) - (html-open 'tbody)) :action (lambda (node engine) - (let ((name (markup-option node :name)) - (title (markup-option node :title)) - (affiliation (markup-option node :affiliation)) - (email (markup-option node :email)) - (url (markup-option node :url)) - (address (markup-option node :address)) - (phone (markup-option node :phone)) - (nfn (engine-custom engine 'author-font)) - (align (markup-option node :align))) - (define (row node) - (html-open 'tr) - (html-open 'td - `((align . ,align))) - (output node engine) - (html-close 'td) - (html-close 'tr)) - ;; name - (html-open 'tr) - (html-open 'td - `((align . ,align))) - (if nfn (format #t "<font ~a>\n" nfn)) - (output name engine) - (if nfn (html-close 'font)) - (html-close 'td) - (html-close 'tr) - ;; title - (if title (row title)) - ;; affiliation - (if affiliation (row affiliation)) - ;; address - (if (pair? address) - (for-each row address)) - ;; telephone - (if phone (row phone)) - ;; email - (if email (row email)) - ;; url - (if url (row url)))) - :after "</tbody></table>") + (let ((name (markup-option node :name)) + (title (markup-option node :title)) + (affiliation (markup-option node :affiliation)) + (email (markup-option node :email)) + (url (markup-option node :url)) + (address (markup-option node :address)) + (phone (markup-option node :phone)) + (author-font (engine-custom engine 'author-font)) + (align (markup-option node :align))) + (define (row node) + (output node engine) + (html-open 'br)) + (html-open 'div + `((style . ,(style-declaration + `((text-align . ,align)))))) + ;; name + (when author-font + (html-open 'span + `((style . ,(style-declaration + `((font-family . ,author-font))))))) + (row name) + (when author-font (html-close 'span)) + ;; title + (when title (row title)) + ;; affiliation + (when affiliation (row affiliation)) + ;; address + (when address (for-each row address)) + ;; telephone + (when phone (row phone)) + ;; email + (when email (row email)) + ;; url + (when url (row url)) + (html-close 'div)))) ;*---------------------------------------------------------------------*/ ;* author ... */ ;*---------------------------------------------------------------------*/ (markup-writer 'author :options '(:name :title :affiliation :email :url :address :phone :photo :align) - :predicate (lambda (node engine) (markup-option node :photo)) - :before (lambda (node engine) - (html-open 'table - `((class . ,(markup-class node)))) - (html-open 'tbody) - (html-open 'tr)) + :predicate (lambda (node engine) + (markup-option node :photo)) :action (lambda (node engine) (let ((photo (markup-option node :photo))) - (html-open 'td) (output photo engine) - (html-close 'td) - (html-open 'td) (markup-option-add! node :photo #f) (output node engine) - (markup-option-add! node :photo photo) - (html-close 'td))) - :after "</tr>\n</tbody></table>") + (markup-option-add! node :photo photo)))) ;*---------------------------------------------------------------------*/ ;* toc ... */ |