– scan the Part for any tags it defines, attaching them to a copied Part – go into sub-parts and do the same
use(require(“atomy”))
data = require(“anatomy/data”)
def(pass(a & Array, part)):
a collect [x]: pass(x, part)
def(pass(c & data CollectElement, part)):
c action[part]
def(pass(p & data Paragraph, part)):
p dup tap [x]: x content = pass(p content, part)
def(pass(nil, _)): nil
def(pass(s & String, _)): s
def(pass(e & data Element, part)):
e dup tap [x]: x content = pass(e content, part)
def(pass(b & data Block, part)):
b dup tap [x]: x content = pass(b content, part)
def(over(part)):
part body = pass(part body, part) part parts each [sub]: over(sub) part