abstract class StoragePageLayout include Lucky::HTMLBuilder getter view = IO::Memory.new abstract def content def render html_doctype html do head do body do content end end end def render_to_string String.build do |io| @view = io render end end end class Thing::IndexPage < StoragePage def render h1 "hi" end end Thing::IndexPage.new.render_to_string