11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# File 'lib/tags/member.rb', line 11
def render(context)
args = parse_arguments_with_quotes(@markup)
member_input = args[0]
property_input = args[1] || "'name'"
property = property_input.gsub(/^['"]|['"]$/, '')
is_quoted = member_input && member_input.match(/^['"]/)
if is_quoted
member_id = member_input.gsub(/^['"]|['"]$/, '')
else
member_id = resolve_member_id(context, member_input)
end
return '' unless member_id
site = context.registers[:site]
member = find_member(site, member_id)
return '' unless member
case property
when 'name'
(member.data['member'] && member.data['member']['name']) || ''
when 'url'
site_url = site.config['url'] || ''
site_url + member.url
when 'path'
member.url
when 'image'
member_id_clean = member.id.gsub('/team/', '')
"/assets/images/team/#{member_id_clean}/profile.jpg"
when 'image-tag'
member_id_clean = member.id.gsub('/team/', '')
image_path = "/assets/images/team/#{member_id_clean}/profile.jpg"
image_options = parse_image_options(args[2..-1])
if !image_options['alt'] && member.data['member'] && member.data['member']['name']
image_options['alt'] = member.data['member']['name']
end
image_markup = build_image_markup(image_path, image_options)
template_content = "{% uj_image #{image_markup} %}"
template = Liquid::Template.parse(template_content)
template.render!(context)
else
(member.data['member'] && member.data['member'][property]) || member.data[property] || ''
end
end
|