Implement styles
All checks were successful
CI Pipeline / build (pull_request) Successful in 12s

This commit is contained in:
2025-12-02 12:02:51 +01:00
parent 1fffecf0eb
commit 58492e9ef6
16 changed files with 786 additions and 23 deletions

View File

@@ -4,7 +4,7 @@ module Ezdoc
class Document
include Builder
attr_reader :nodes
attr_reader :nodes, :styles
def self.create(path, &block)
doc = new
@@ -22,6 +22,16 @@ module Ezdoc
@current_row = nil
@num_id_counter = 0
@images = {}
@styles = {}
register_built_in_styles
end
def define_style(name, **properties)
@styles[name] = Style.new(name, **properties)
end
def style(name)
@styles[name]
end
def save(path)
@@ -49,8 +59,27 @@ module Ezdoc
private
def next_image_rid
base = lists.any? ? 2 : 1
# rId1 = styles.xml (always present)
# rId2 = numbering.xml (if lists present)
# rId3+ = images
base = lists.any? ? 3 : 2
"rId#{base + @images.size}"
end
def register_built_in_styles
# Headings
define_style :heading1, size: 24, bold: true
define_style :heading2, size: 18, bold: true
define_style :heading3, size: 14, bold: true
define_style :heading4, size: 12, bold: true
define_style :heading5, size: 11, bold: true, italic: true
define_style :heading6, size: 10, bold: true, italic: true
# Other built-in styles
define_style :title, size: 26, bold: true, align: :center
define_style :subtitle, size: 15, italic: true, color: "666666"
define_style :quote, italic: true, color: "666666", indent: 720
define_style :code, font: "Courier New", size: 10
end
end
end