Implement spacing before/after for paragraphs
All checks were successful
CI Pipeline / build (push) Successful in 47s
All checks were successful
CI Pipeline / build (push) Successful in 47s
This commit is contained in:
@@ -2,8 +2,10 @@
|
||||
|
||||
module Notare
|
||||
module Builder
|
||||
def p(text = nil, style: nil, &block)
|
||||
para = Nodes::Paragraph.new(style: resolve_style(style))
|
||||
def p(text = nil, style: nil, spacing_before: nil, spacing_after: nil, &block)
|
||||
para = Nodes::Paragraph.new(style: resolve_style(style),
|
||||
spacing_before: spacing_before,
|
||||
spacing_after: spacing_after)
|
||||
if block
|
||||
with_target(para, &block)
|
||||
elsif text
|
||||
|
||||
@@ -3,12 +3,14 @@
|
||||
module Notare
|
||||
module Nodes
|
||||
class Paragraph < Base
|
||||
attr_reader :runs, :style
|
||||
attr_reader :runs, :style, :spacing_before, :spacing_after
|
||||
|
||||
def initialize(runs = [], style: nil)
|
||||
def initialize(runs = [], style: nil, spacing_before: nil, spacing_after: nil)
|
||||
super()
|
||||
@runs = runs
|
||||
@style = style
|
||||
@spacing_before = spacing_before
|
||||
@spacing_after = spacing_after
|
||||
end
|
||||
|
||||
def add_run(run)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Notare
|
||||
VERSION = "0.0.7"
|
||||
VERSION = "0.0.8"
|
||||
end
|
||||
|
||||
@@ -52,9 +52,18 @@ module Notare
|
||||
|
||||
def render_paragraph(xml, para)
|
||||
xml["w"].p do
|
||||
if para.style
|
||||
has_style = para.style
|
||||
has_spacing = para.spacing_before || para.spacing_after
|
||||
|
||||
if has_style || has_spacing
|
||||
xml["w"].pPr do
|
||||
xml["w"].pStyle("w:val" => para.style.style_id)
|
||||
xml["w"].pStyle("w:val" => para.style.style_id) if has_style
|
||||
if has_spacing
|
||||
spacing_attrs = {}
|
||||
spacing_attrs["w:before"] = para.spacing_before.to_s if para.spacing_before
|
||||
spacing_attrs["w:after"] = para.spacing_after.to_s if para.spacing_after
|
||||
xml["w"].spacing(spacing_attrs)
|
||||
end
|
||||
end
|
||||
end
|
||||
para.runs.each { |run| render_run(xml, run) }
|
||||
|
||||
Reference in New Issue
Block a user