parsav  nym.t at [ac4a630ad5]

File render/nym.t artifact 0d2437aadd part of check-in ac4a630ad5


-- vim: ft=terra
local pstr = lib.mem.ptr(int8)
local terra cs(s: rawstring)
	return pstr { ptr = s, ct = lib.str.sz(s) }
end

local terra 
render_nym(who: &lib.store.actor, scope: uint64)
	var n: lib.str.acc n:init(128)
	var xidsan = lib.html.sanitize(cs(who.xid),false)
	if who.nym ~= nil and who.nym[0] ~= 0 then
		var nymsan = lib.html.sanitize(cs(who.nym),false)
		n:compose('<span class="nym">',nymsan,'</span> [<span class="handle">',
			xidsan,'</span>]')
		nymsan:free()
	else n:compose('<span class="handle">',xidsan,'</span>') end
	xidsan:free()

	if who.epithet ~= nil then
		var episan = lib.html.sanitize(cs(who.epithet),false)
		n:lpush(' <span class="epithet">'):ppush(episan):lpush('</span>')
		episan:free()
	end
	
	-- TODO: if scope == chat room then lookup titles in room member db
	return n:finalize()
end

return render_nym