Add docstrings; Fix names
This commit is contained in:
parent
7f9b14b3c7
commit
2673da3566
1 changed files with 34 additions and 3 deletions
37
src/tbl.lisp
37
src/tbl.lisp
|
@ -5,11 +5,26 @@
|
|||
(in-package :ml-sbt/tbl)
|
||||
|
||||
(defun format-cell-content (content)
|
||||
"Format cell content for HTML table display.
|
||||
If CONTENT is a number, format it to 9 decimal places.
|
||||
Otherwise, return CONTENT as-is (Spinneret will handle escaping).
|
||||
|
||||
- CONTENT: The cell content (can be a number or any other type)
|
||||
|
||||
Returns:
|
||||
- If CONTENT is a number, a string representation with 9 decimal places.
|
||||
- Otherwise, the original CONTENT."
|
||||
(if (numberp content)
|
||||
(format nil "~,9f" content)
|
||||
content))
|
||||
|
||||
(defun render-tbl-header (headers)
|
||||
"Render the header of an HTML table using Spinneret.
|
||||
|
||||
- HEADERS: A list of header cell contents
|
||||
|
||||
Example:
|
||||
(render-tbl-header '(\"Name\" \"Age\" \"City\"))"
|
||||
(spinneret:with-html
|
||||
(:thead
|
||||
(:tr
|
||||
|
@ -17,15 +32,31 @@
|
|||
do (:th :scope "col" (format-cell-content header)))))))
|
||||
|
||||
(defun render-tbl-body (rows)
|
||||
"Render the body of an HTML table using Spinneret.
|
||||
|
||||
- ROWS: A list of rows, where each row is a list of cell contents
|
||||
|
||||
Example:
|
||||
(render-tbl-body '((\"John\" 30 \"New York\") (\"Jane\" 25 \"San Francisco\")))"
|
||||
(spinneret:with-html
|
||||
(:tbody
|
||||
(loop for row in rows
|
||||
do (:tr
|
||||
(loop for cell in row
|
||||
do (:td (escape-cell-content cell))))))))
|
||||
do (:td (format-cell-content cell))))))))
|
||||
|
||||
(defun render-tbl (headers rows &key (class "table"))
|
||||
"Render a complete HTML table using Spinneret.
|
||||
|
||||
- HEADERS: A list of header cell contents
|
||||
- ROWS: A list of rows, where each row is a list of cell contents
|
||||
- CLASS: CSS class for the table (default: \"table\")
|
||||
|
||||
Example:
|
||||
(render-tbl '(\"Name\" \"Age\" \"City\")
|
||||
'((\"John\" 30 \"New York\") (\"Jane\" 25 \"San Francisco\"))
|
||||
:class \"table table-striped\")"
|
||||
(spinneret:with-html
|
||||
(:table :class class
|
||||
(render-table-header headers)
|
||||
(render-table-body rows))))
|
||||
(render-tbl-header headers)
|
||||
(render-tbl-body rows))))
|
||||
|
|
Loading…
Add table
Reference in a new issue