lib/isodoc/ieee/word_authority.rb in metanorma-ieee-0.0.2 vs lib/isodoc/ieee/word_authority.rb in metanorma-ieee-0.0.3

- old
+ new

@@ -51,13 +51,13 @@ end def officeholder_style(para) n = para.next_element p = para.previous_element - n && n.name == "p" && n["type"] == "officeholder" and + n && n.name == "p" && n["type"] != "officeholder" and klass = "IEEEStdsNamesCtrCxSpLast" - p && p.name == "p" && p["type"] == "officeholder" and + p && p.name == "p" && p["type"] != "officeholder" and klass = "IEEEStdsNamesCtrCxSpFirst" para["class"] = klass || "IEEEStdsNamesCtrCxSpMiddle" end SECTIONBREAK = <<~BREAK.freeze @@ -66,11 +66,12 @@ EN-US;mso-fareast-language:JA;mso-bidi-language:AR-SA'><br clear="all" style='page-break-before:auto;mso-break-type:section-break'></span> BREAK def officemember_style(docxml) - docxml.xpath("//p[@type = 'officemember']").each do |p| + docxml.xpath("//p[@type = 'officemember' or @type = 'officeorgmember']") + .each do |p| p["class"] = "IEEEStdsNamesList" end docxml.xpath("//p[@type = 'emeritus_sign']").each do |p| p["class"] = "IEEEStdsParaMemEmeritus" end @@ -83,9 +84,10 @@ three_column_officemembers_render(div, ret) end def three_column_officemembers_split(div) prev = false + div.xpath(".//div").each { |d| d.replace(d.children) } div.elements.each_with_object([[]]) do |e, m| member = e.name == "p" && e["type"] == "officemember" (prev == member and m[-1] << e.to_xml) or m << [e.to_xml] prev = member end.map(&:join)