Skip to content

Commit f8e59e5

Browse files
authored
Add .ftlh extension to Freemarker (#7551)
* Add `.ftlh` and `.ftlx` extensions to Freemarker - Add `.ftlh` and `.ftlx` as extensions for Freemarker - Add samples for `.ftlh` and `.ftlx` * Replace sample files with real world examples * Remove support for ftlx and remove ftlx-sample
1 parent 78c216a commit f8e59e5

File tree

3 files changed

+93
-0
lines changed

3 files changed

+93
-0
lines changed

lib/linguist/languages.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2254,6 +2254,7 @@ FreeMarker:
22542254
- ftl
22552255
extensions:
22562256
- ".ftl"
2257+
- ".ftlh"
22572258
tm_scope: text.html.ftl
22582259
ace_mode: ftl
22592260
language_id: 115
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
<#-- @ftlvariable name="classes" type="String" -->
2+
<#-- @ftlvariable name="url" type="String" -->
3+
<#-- @ftlvariable name="image" type="Object" -->
4+
<#-- @ftlvariable name="image.src" type="String" -->
5+
<#-- @ftlvariable name="image.altText" type="String" -->
6+
<#-- @ftlvariable name="image.width" type="String" -->
7+
<#-- @ftlvariable name="image.height" type="String" -->
8+
<#-- @ftlvariable name="kicker" type="String" -->
9+
<#-- @ftlvariable name="title" type="String" -->
10+
<#-- @ftlvariable name="text" type="String" -->
11+
12+
<div class="blocks-card ${classes!}">
13+
<@linkOrDiv href=url!"" class="blocks-card--card">
14+
<#if image??>
15+
<figure class="blocks-card--image">
16+
<img
17+
src="${image.src}"
18+
alt="${image.altText!}"
19+
<#if image.width??>width="${image.width}"</#if>
20+
<#if image.height??>height="${image.height}"</#if>
21+
/>
22+
</figure>
23+
</#if>
24+
25+
<#if kicker?has_content || title?has_content || text?has_content>
26+
<div class="blocks-card--body html-area">
27+
<#if kicker?has_content>
28+
<small class="blocks-card--kicker">
29+
${kicker}
30+
</small>
31+
</#if>
32+
33+
<#if title?has_content>
34+
<h3 class="blocks-card--title">
35+
${title}
36+
</h3>
37+
</#if>
38+
39+
<#if text?has_content>
40+
<div class="blocks-card--text flow">
41+
${text?no_esc}
42+
</div>
43+
</#if>
44+
</div>
45+
</#if>
46+
</@linkOrDiv>
47+
</div>
48+
49+
<#macro linkOrDiv href class>
50+
<#if href?has_content>
51+
<a href="${href}" class="${class}">
52+
<#nested>
53+
</a>
54+
<#else>
55+
<div class="${class}">
56+
<#nested>
57+
</div>
58+
</#if>
59+
</#macro>

samples/FreeMarker/header.ftlh

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
[#-- @ftlvariable name="locale" type="String" --]
2+
[#-- @ftlvariable name="spaceKey" type="String" --]
3+
[#-- @ftlvariable name="filters" type="java.util.ArrayList" --]
4+
5+
<header class="header">
6+
<h1>
7+
[@localize key="feature-toggles.displayName" locale=locale /]
8+
</h1>
9+
10+
<div class="header--toolbar">
11+
[#if filters?size == 1]
12+
<div class="header--toolbar-text">
13+
[@localize key="feature-toggles.spaceKey" locale=locale /] <em>${spaceKey}</em>
14+
</div>
15+
[#elseif filters?size > 1]
16+
<div class="header--nav-label" id="header-nav-label">
17+
[@localize key="feature-toggles.selectSpace" locale=locale /]
18+
</div>
19+
20+
<nav class="header--filters" aria-labelledby="header-nav-label">
21+
[#list filters as filter]
22+
<a
23+
class="pill"
24+
href="${filter.url}"
25+
[#if filter.text == spaceKey]aria-current="true"[/#if]>
26+
27+
${filter.text}
28+
</a>
29+
[/#list]
30+
</nav>
31+
[/#if]
32+
</div>
33+
</header>

0 commit comments

Comments
 (0)