module Asciidoctor::RFC::V3::Table
Public Instance Methods
table(node)
click to toggle source
Syntax:
[[id]] .Title |=== |col | col |===
# File lib/asciidoctor/rfc/v3/table.rb, line 10 def table(node) noko do |xml| has_body = false # TODO iref belongs here table_attributes = { anchor: node.id, } xml.table **attr_code(table_attributes) do |xml_table| [:head, :body, :foot].reject { |tblsec| node.rows[tblsec].empty? }.each do |tblsec| has_body = true if tblsec == :body end warn "asciidoctor: WARNING (#{current_location(node)}): tables must have at least one body row" unless has_body xml_table.name node.title if node.title? table_head_body_and_foot node, xml_table end end end
Private Instance Methods
table_head_body_and_foot(node, xml)
click to toggle source
# File lib/asciidoctor/rfc/v3/table.rb, line 33 def table_head_body_and_foot(node, xml) [:head, :body, :foot].reject { |tblsec| node.rows[tblsec].empty? }.each do |tblsec| tblsec_tag = "t#{tblsec}" # "anchor" attribute from tblsec.id not supported xml.send tblsec_tag do |xml_tblsec| node.rows[tblsec].each_with_index do |row, i| # id not supported on row xml_tblsec.tr do |xml_tr| rowlength = 0 row.each do |cell| cell_attributes = { anchor: cell.id, colspan: cell.colspan, rowspan: cell.rowspan, align: cell.attr("halign"), } cell_tag = (tblsec == :head || cell.style == :header ? "th" : "td") rowlength += cell.text.size xml_tr.send cell_tag, **attr_code(cell_attributes) do |thd| thd << (cell.style == :asciidoc ? cell.content : cell.text) end end warn "asciidoctor: WARNING (#{current_location(node)}): row #{i} of table (count including header rows) is longer than 72 ascii characters" if rowlength > 72 end end end end end