-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathopen-graph.vm
123 lines (101 loc) · 3.84 KB
/
open-graph.vm
1
2
3
4
5
6
7
8
9
10
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
## Open Graph and Twitter Cards for SiteVision
## https://github.com/limepark/open-graph
##
## MIT License
##
## Copyright © 2018 Limepark AB <[email protected]>
## Settings
#set ($titleOrder = ['OG.Title', 'SV.Title'])
#set ($renderTitleMeta = true)
#set ($preambleOrder = ['OG.Description', 'SV.Description'])
#set ($renderPreambleMeta = true)
#set ($renderPreambleAsDescription = false)
#set ($maxPreambleLength = 0)
#set ($imageOrder = ['OG.Image', 'SV.Image'])
#set ($renderImageMeta = true)
#set ($imageFallbackUrl = 'https://example.com/webdav/images/logotype.png')
#set ($imageFallbackWidth = '200')
#set ($imageFallbackHeight = '200')
## End of settings
#set ($utils = $request.getAttribute('sitevision.utils'))
#set ($nodeTreeUtil = $utils.nodeTreeUtil)
#set ($propertyUtil = $utils.propertyUtil)
#set ($currentPage = $utils.portletContextUtil.currentPage)
#set ($endecUtil = $utils.endecUtil)
#set ($imageUrl = '')
#set ($preambleText = '')
#set ($titleText = '')
#set ($imageWidth = '')
#set ($imageHeight = '')
#set ($imageMimeType = '')
#if ($renderImageMeta)
#foreach ($meta in $imageOrder)
#if ($imageUrl == '')
#set ($imageNode = $propertyUtil.getNode($currentPage, $meta))
#if ($imageNode)
#set ($imageWidth = $propertyUtil.getInt($imageNode, 'width', 0))
#set ($imageHeight = $propertyUtil.getInt($imageNode, 'height', 0))
#set ($imageMimeType = $propertyUtil.getStringEscaped($imageNode, 'mimeType', ''))
#if ($imageWidth >= 200 && $imageHeight >= 200)
#set ($imageUrl = $propertyUtil.getString($imageNode, 'URL', ''))
#end
#end
#end
#end
#if ($imageUrl == '')
#if ($imageFallbackUrl != '')
#if ($imageFallbackUrl.substring(0, 1) == '/')
#set ($sitePageUrl = $propertyUtil.getString($utils.resourceLocatorUtil.sitePage, 'URL'))
#set ($sitePageUri = $propertyUtil.getString($utils.resourceLocatorUtil.sitePage, 'URI'))
#set ($dollar = '$')
#set ($imageFallbackUrl = $sitePageUrl.replaceAll("$!{sitePageUri}$!{dollar}", '') + $imageFallbackUrl)
#end
#set ($imageUrl = $imageFallbackUrl)
#set ($imageWidth = $imageFallbackWidth)
#set ($imageHeight = $imageFallbackHeight)
#end
#end
#if ($imageUrl != '')
<meta property="og:image" content="$!imageUrl" />
#if ($imageWidth)
<meta property="og:image:width" content="$!imageWidth" />
#end
#if ($imageHeight)
<meta property="og:image:height" content="$!imageHeight" />
#end
#if ($imageMimeType != "")
<meta property="og:image:type" content="$!imageMimeType" />
#end
#end
#end
#if ($renderPreambleMeta)
#foreach ($meta in $preambleOrder)
#if ($preambleText == '')
#set ($preambleText = $propertyUtil.getString($currentPage, $meta, ''))
#end
#end
#set ($preambleText = $preambleText.trim())
#if ($maxPreambleLength > 0 && $preambleText.length() > $maxPreambleLength)
#set ( $preambleText = $preambleText.substring(0, $maxPreambleLength) + '...')
#end
#if ($preambleText != '')
#set ($preambleText = $endecUtil.escapeXML($preambleText))
<meta property="og:description" content="$!preambleText" />
#if ($renderPreambleAsDescription)
<meta name="description" content="$!preambleText" />
#end
#end
#end
#if ($renderTitleMeta)
#foreach ($meta in $titleOrder)
#if ($titleText == '')
#set ($titleText = $propertyUtil.getStringEscaped($currentPage, $meta, ''))
#end
#end
#set ($titleText = $titleText.trim())
#if ($titleText != '')
<meta property="og:title" content="$!titleText" />
#end
#end
<meta name="twitter:card" content="summary" />
<meta property="og:url" content="$propertyUtil.getString($currentPage, 'URL', '')" />