This is an automated email from the ASF dual-hosted git repository. kamilbregula pushed a commit to branch aip-11 in repository https://gitbox.apache.org/repos/asf/airflow-site.git
The following commit(s) were added to refs/heads/aip-11 by this push: new 47bfe5d Add footer and sticky suggest a change button (#98) 47bfe5d is described below commit 47bfe5d635c5e77eb5ae07ad8fb25644e97a66a2 Author: Kamil Gabryjelski <kamil.gabryjel...@gmail.com> AuthorDate: Wed Oct 30 00:36:58 2019 +0100 Add footer and sticky suggest a change button (#98) --- landing-pages/site/assets/icons/github-white.svg | 3 + landing-pages/site/assets/icons/jira.svg | 7 ++ landing-pages/site/assets/icons/slack.svg | 20 +++ landing-pages/site/assets/icons/stackoverflow.svg | 6 + landing-pages/site/assets/icons/twitter-white.svg | 5 + landing-pages/site/assets/icons/youtube.svg | 3 + landing-pages/site/assets/scss/_base-layout.scss | 7 +- landing-pages/site/assets/scss/_buttons.scss | 7 -- landing-pages/site/assets/scss/_footer.scss | 134 +++++++++++++++++++++ landing-pages/site/assets/scss/main-custom.scss | 1 + landing-pages/site/config.toml | 69 ++++++----- landing-pages/site/layouts/_default/baseof.html | 2 +- landing-pages/site/layouts/blog/baseof.html | 4 +- .../site/layouts/case-studies/baseof.html | 2 +- landing-pages/site/layouts/community/baseof.html | 2 +- landing-pages/site/layouts/install/baseof.html | 2 +- landing-pages/site/layouts/meetups/baseof.html | 2 +- landing-pages/site/layouts/partials/footer.html | 58 +++++++++ .../site/layouts/partials/lang-selector.html | 28 +++++ 19 files changed, 313 insertions(+), 49 deletions(-) diff --git a/landing-pages/site/assets/icons/github-white.svg b/landing-pages/site/assets/icons/github-white.svg new file mode 100644 index 0000000..3bf8a77 --- /dev/null +++ b/landing-pages/site/assets/icons/github-white.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="46.14" height="45" viewBox="0 0 46.14 45"> + <path id="Path_207" d="M228.962 1078.578a23.072 23.072 0 0 0-7.29 44.96c1.154.212 1.574-.5 1.574-1.112 0-.548-.02-2-.031-3.924-6.417 1.394-7.771-3.093-7.771-3.093a6.109 6.109 0 0 0-2.562-3.375c-2.095-1.431.159-1.4.159-1.4a4.846 4.846 0 0 1 3.533 2.377c2.058 3.525 5.4 2.507 6.714 1.917a4.926 4.926 0 0 1 1.464-3.084c-5.123-.582-10.508-2.562-10.508-11.4a8.919 8.919 0 0 1 2.374-6.191 8.3 8.3 0 0 1 .226-6.105s1.937-.62 6.344 2.365a21.857 21.857 0 0 1 11.551 0c4.4-2.985 6.338-2.365 6.338-2 [...] +</svg> diff --git a/landing-pages/site/assets/icons/jira.svg b/landing-pages/site/assets/icons/jira.svg new file mode 100644 index 0000000..ae705ad --- /dev/null +++ b/landing-pages/site/assets/icons/jira.svg @@ -0,0 +1,7 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="45" height="45" viewBox="0 0 45 45"> + <g id="Group_210" data-name="Group 210" transform="translate(-339.789 -1315.282)"> + <path id="Path_218" d="M394.82 1315.282h-21.671a9.784 9.784 0 0 0 9.784 9.778h3.986v3.857a9.784 9.784 0 0 0 9.784 9.771v-21.523a1.884 1.884 0 0 0-1.883-1.883z" fill="#fff" data-name="Path 218" transform="translate(-11.914)"/> + <path id="Path_219" d="M378.14 1332.072h-21.671a9.778 9.778 0 0 0 9.778 9.778h4.018v3.857a9.784 9.784 0 0 0 9.752 9.778v-21.536a1.877 1.877 0 0 0-1.877-1.877z" fill="#fff" data-name="Path 219" transform="translate(-5.957 -5.996)"/> + <path id="Path_220" d="M361.46 1348.862h-21.671a9.778 9.778 0 0 0 9.778 9.778h3.992v3.857a9.778 9.778 0 0 0 9.778 9.778v-21.529a1.883 1.883 0 0 0-1.877-1.884z" fill="#fff" data-name="Path 220" transform="translate(0 -11.993)"/> + </g> +</svg> diff --git a/landing-pages/site/assets/icons/slack.svg b/landing-pages/site/assets/icons/slack.svg new file mode 100644 index 0000000..c804682 --- /dev/null +++ b/landing-pages/site/assets/icons/slack.svg @@ -0,0 +1,20 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="45.073" height="45.073" viewBox="0 0 45.073 45.073"> + <g id="Group_208" data-name="Group 208" transform="translate(-661.145 -806.287)"> + <g id="Group_204" data-name="Group 204" transform="translate(661.145 830.01)"> + <path id="Path_208" d="M670.634 856.859a4.744 4.744 0 1 1-4.744-4.744h4.744z" fill="#fff" data-name="Path 208" transform="translate(-661.145 -852.115)"/> + <path id="Path_209" d="M684.059 856.859a4.744 4.744 0 0 1 9.489 0v11.861a4.744 4.744 0 1 1-9.489 0z" fill="#fff" data-name="Path 209" transform="translate(-672.198 -852.115)"/> + </g> + <g id="Group_205" data-name="Group 205" transform="translate(661.145 806.287)"> + <path id="Path_210" d="M688.8 815.776a4.744 4.744 0 1 1 4.744-4.745v4.745z" fill="#fff" data-name="Path 210" transform="translate(-672.198 -806.287)"/> + <path id="Path_211" d="M677.751 829.2a4.744 4.744 0 0 1 0 9.489H665.89a4.744 4.744 0 1 1 0-9.489z" fill="#fff" data-name="Path 211" transform="translate(-661.145 -817.34)"/> + </g> + <g id="Group_206" data-name="Group 206" transform="translate(684.868 806.287)"> + <path id="Path_212" d="M729.887 833.945a4.744 4.744 0 1 1 4.745 4.745h-4.745z" fill="#fff" data-name="Path 212" transform="translate(-718.026 -817.34)"/> + <path id="Path_213" d="M716.462 822.893a4.744 4.744 0 1 1-9.489 0v-11.862a4.744 4.744 0 0 1 9.489 0z" fill="#fff" data-name="Path 213" transform="translate(-706.973 -806.287)"/> + </g> + <g id="Group_207" data-name="Group 207" transform="translate(684.868 830.01)"> + <path id="Path_214" d="M711.718 875.029a4.744 4.744 0 1 1-4.745 4.744v-4.744z" fill="#fff" data-name="Path 214" transform="translate(-706.973 -863.168)"/> + <path id="Path_215" d="M711.718 861.6a4.744 4.744 0 1 1 0-9.489h11.861a4.744 4.744 0 0 1 0 9.489z" fill="#fff" data-name="Path 215" transform="translate(-706.973 -852.115)"/> + </g> + </g> +</svg> diff --git a/landing-pages/site/assets/icons/stackoverflow.svg b/landing-pages/site/assets/icons/stackoverflow.svg new file mode 100644 index 0000000..e4dc7da --- /dev/null +++ b/landing-pages/site/assets/icons/stackoverflow.svg @@ -0,0 +1,6 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="37.647" height="44.6" viewBox="0 0 37.647 44.6"> + <g id="Group_209" data-name="Group 209" transform="translate(-645.2 -975.455)"> + <path id="Path_216" d="M677.028 1043.1v-11.948h3.966v15.914H645.2v-15.914h3.966v11.948z" fill="#fff" data-name="Path 216" transform="translate(0 -27.014)"/> + <path id="Path_217" d="M661.012 1003.008l19.467 4.069.824-3.914-19.467-4.069zm2.575-9.27l18.025 8.395 1.648-3.605-18.025-8.446zm5-8.858l15.3 12.721 2.524-3.039-15.3-12.721zm9.888-9.425l-3.193 2.369 11.845 15.965 3.193-2.369zm-17.875 36.617h19.879v-3.966H660.6z" fill="#fff" data-name="Path 217" transform="translate(-7.469)"/> + </g> +</svg> diff --git a/landing-pages/site/assets/icons/twitter-white.svg b/landing-pages/site/assets/icons/twitter-white.svg new file mode 100644 index 0000000..ba99e0b --- /dev/null +++ b/landing-pages/site/assets/icons/twitter-white.svg @@ -0,0 +1,5 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="44.355" height="44.355" viewBox="0 0 44.355 44.355"> + <g id="Group_211" data-name="Group 211" transform="translate(-503 -1382.2)"> + <path id="Path_221" d="M541.811 1382.2h-33.267a5.546 5.546 0 0 0-5.544 5.544v33.266a5.547 5.547 0 0 0 5.544 5.545h33.267a5.546 5.546 0 0 0 5.544-5.545v-33.266a5.546 5.546 0 0 0-5.544-5.544zm-5.611 16.533c.011.244.011.488.011.732 0 7.507-5.722 16.178-16.179 16.178a16.173 16.173 0 0 1-8.7-2.539 10.92 10.92 0 0 0 1.353.078 11.4 11.4 0 0 0 7.064-2.44 5.685 5.685 0 0 1-5.311-3.947 5.725 5.725 0 0 0 2.561-.1 5.7 5.7 0 0 1-4.557-5.578v-.078a5.752 5.752 0 0 0 2.572.71 5.709 5.709 0 0 1-1 [...] + </g> +</svg> diff --git a/landing-pages/site/assets/icons/youtube.svg b/landing-pages/site/assets/icons/youtube.svg new file mode 100644 index 0000000..94917db --- /dev/null +++ b/landing-pages/site/assets/icons/youtube.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="49.594" height="34.941" viewBox="0 0 49.594 34.941"> + <path id="Path_223" d="M1124.557 1230a6.232 6.232 0 0 0-4.385-4.413c-3.867-1.043-19.376-1.043-19.376-1.043s-15.508 0-19.376 1.043a6.232 6.232 0 0 0-4.385 4.413c-1.036 3.893-1.036 12.014-1.036 12.014s0 8.122 1.036 12.015a6.232 6.232 0 0 0 4.385 4.413c3.867 1.043 19.376 1.043 19.376 1.043s15.509 0 19.376-1.043a6.232 6.232 0 0 0 4.385-4.413c1.036-3.893 1.036-12.015 1.036-12.015s.001-8.123-1.036-12.014zm-28.833 19.388v-14.748l12.962 7.374z" fill="#fff" data-name="Path 223" transform="tra [...] +</svg> diff --git a/landing-pages/site/assets/scss/_base-layout.scss b/landing-pages/site/assets/scss/_base-layout.scss index e09d0e3..5fe0023 100644 --- a/landing-pages/site/assets/scss/_base-layout.scss +++ b/landing-pages/site/assets/scss/_base-layout.scss @@ -24,11 +24,12 @@ &--button { display: flex; + position: sticky; + right: 60px; + bottom: 40px; justify-content: flex-end; - margin-right: 45px; - margin-top: 80px + z-index: 1; } - } @media (max-width: $mobile) { diff --git a/landing-pages/site/assets/scss/_buttons.scss b/landing-pages/site/assets/scss/_buttons.scss index 4aa76fc..7d7d7c3 100644 --- a/landing-pages/site/assets/scss/_buttons.scss +++ b/landing-pages/site/assets/scss/_buttons.scss @@ -94,13 +94,6 @@ button { } } - &.button-fixed { - position: fixed; - right: 60px; - bottom: 40px; - z-index: 1; - } - &.with-box-shadow { box-shadow: 0 2px 6px 0 rgba(0, 0, 0, .12); } diff --git a/landing-pages/site/assets/scss/_footer.scss b/landing-pages/site/assets/scss/_footer.scss new file mode 100644 index 0000000..511f1db --- /dev/null +++ b/landing-pages/site/assets/scss/_footer.scss @@ -0,0 +1,134 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +@import "colors"; +@import "media"; + +footer { + min-height: unset; + + .footer-section { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + align-items: center; + + span { + @extend .bodytext__medium--white; + } + + &__media-section { + padding: 60px 60px 30px; + background-color: map-get($colors, greyish-brown); + + &--link { + margin-right: 30px; + } + + &--button-with-text { + display: flex; + align-items: center; + } + + &--text { + margin-right: 20px; + } + } + + &__policies-section { + padding: 30px 60px; + background-color: map-get($colors, slate-grey); + + &--policies { + display: flex; + } + + &--policy-item { + &::before { + content: "\00a0\00a0"; + } + &::after { + content: "\00a0\00a0|"; + color: white; + } + } + } + } + + .dropdown-toggle { + &::after { + color: white; + vertical-align: middle; + } + } +} + +@media (max-width: $mobile) { + footer { + .footer-section { + flex-direction: column-reverse; + align-items: flex-start; + + span { + font-size: 14px !important; + line-height: 1.57 !important; + } + + &__media-section { + padding: 30px 40px; + + svg { + height: 31px; + width: auto; + } + + &--link { + margin-right: 20px; + } + + &--button-with-text { + flex-direction: column; + align-items: flex-start; + margin-bottom: 47px; + } + + &--text { + margin-right: 0; + margin-bottom: 16px; + } + } + + &__policies-section { + padding: 30px 40px; + &--policies { + flex-direction: column; + } + + &--policy-item { + &::before, &::after { + content: ""; + } + } + + &--language-toggle{ + margin: 17px 0 35px; + } + } + } + } +} diff --git a/landing-pages/site/assets/scss/main-custom.scss b/landing-pages/site/assets/scss/main-custom.scss index f69bb75..893539e 100644 --- a/landing-pages/site/assets/scss/main-custom.scss +++ b/landing-pages/site/assets/scss/main-custom.scss @@ -40,3 +40,4 @@ @import "meetups"; @import "community-page"; @import "install-page"; +@import "footer"; diff --git a/landing-pages/site/config.toml b/landing-pages/site/config.toml index 961a8ef..2980fae 100644 --- a/landing-pages/site/config.toml +++ b/landing-pages/site/config.toml @@ -74,7 +74,7 @@ time_format_blog = "02.01.2006" # Everything below this are Site Params [params] -copyright = "The Docsy Authors" +copyright = "The Apache Software Foundation" privacy_policy = "https://policies.google.com/privacy" # First one is picked as the Twitter card image if not set on page. @@ -119,38 +119,43 @@ yes = 'Glad to hear it! Please <a href="https://github.com/USERNAME/REPOSITORY/i no = 'Sorry to hear that. Please <a href="https://github.com/USERNAME/REPOSITORY/issues/new">tell us how we can improve</a>.' [params.links] -# End user relevant links. These will show up on left side of footer and in the community page if you have one. -[[params.links.user]] - name = "User mailing list" - url = "https://example.org/mail" - icon = "fa fa-envelope" - desc = "Discussion and help from your fellow users" -[[params.links.user]] - name ="Twitter" - url = "https://example.org/twitter" - icon = "fab fa-twitter" - desc = "Follow us on Twitter to get the latest news!" -[[params.links.user]] - name = "Stack Overflow" - url = "https://example.org/stack" - icon = "fab fa-stack-overflow" - desc = "Practical questions and curated answers" -# Developer relevant links. These will show up on right side of footer and in the community page if you have one. -[[params.links.developer]] - name = "GitHub" - url = "https://github.com/google/docsy" - icon = "fab fa-github" - desc = "Development takes place here!" -[[params.links.developer]] +[[params.links.media]] + name = "Github" + url = "https://github.com" + iconName = "github-white.svg" +[[params.links.media]] + name = "Jira" + url = "https://jira.atlassian.com/" + iconName = "jira.svg" +[[params.links.media]] name = "Slack" - url = "https://example.org/slack" - icon = "fab fa-slack" - desc = "Chat with other project developers" -[[params.links.developer]] - name = "Developer mailing list" - url = "https://example.org/mail" - icon = "fa fa-envelope" - desc = "Discuss development issues around the project" + url = "https://slack.com" + iconName = "slack.svg" +[[params.links.media]] + name = "Stack Overflow" + url = "https://stackoverflow.com" + iconName = "stackoverflow.svg" +[[params.links.media]] + name = "Twitter" + url = "https://twitter.com" + iconName = "twitter-white.svg" +[[params.links.media]] + name = "Youtube" + url = "https://youtube.com" + iconName = "youtube.svg" + +[[params.links.policies]] + name = "AIP" + url = "/" +[[params.links.policies]] + name = "Season of Docs" + url = "/docs" +[[params.links.policies]] + name = "Privacy policy & terms" + url = "/" +[[params.links.policies]] + name = "Cookies" + url = "/" [related] threshold = 50.0 diff --git a/landing-pages/site/layouts/_default/baseof.html b/landing-pages/site/layouts/_default/baseof.html index b83b82f..78ffb77 100644 --- a/landing-pages/site/layouts/_default/baseof.html +++ b/landing-pages/site/layouts/_default/baseof.html @@ -35,8 +35,8 @@ </a> </div> </main> - {{ partial "footer.html" . }} </div> +{{ partialCached "footer.html" . }} {{ partialCached "scripts.html" . }} </body> {{ $script := .Site.Data.webpack.main }} diff --git a/landing-pages/site/layouts/blog/baseof.html b/landing-pages/site/layouts/blog/baseof.html index b83b82f..f73b028 100644 --- a/landing-pages/site/layouts/blog/baseof.html +++ b/landing-pages/site/layouts/blog/baseof.html @@ -31,12 +31,12 @@ {{ block "main" . }}{{ end }} <div class="base-layout--button"> <a href="https://github.com"> - {{ partial "buttons/button-with-icon" (dict "text" "Suggest a change on this page" "class" "button-fixed") }} + {{ partial "buttons/button-with-icon" (dict "text" "Suggest a change on this page") }} </a> </div> </main> - {{ partial "footer.html" . }} </div> +{{ partialCached "footer.html" . }} {{ partialCached "scripts.html" . }} </body> {{ $script := .Site.Data.webpack.main }} diff --git a/landing-pages/site/layouts/case-studies/baseof.html b/landing-pages/site/layouts/case-studies/baseof.html index b83b82f..78ffb77 100644 --- a/landing-pages/site/layouts/case-studies/baseof.html +++ b/landing-pages/site/layouts/case-studies/baseof.html @@ -35,8 +35,8 @@ </a> </div> </main> - {{ partial "footer.html" . }} </div> +{{ partialCached "footer.html" . }} {{ partialCached "scripts.html" . }} </body> {{ $script := .Site.Data.webpack.main }} diff --git a/landing-pages/site/layouts/community/baseof.html b/landing-pages/site/layouts/community/baseof.html index b83b82f..78ffb77 100644 --- a/landing-pages/site/layouts/community/baseof.html +++ b/landing-pages/site/layouts/community/baseof.html @@ -35,8 +35,8 @@ </a> </div> </main> - {{ partial "footer.html" . }} </div> +{{ partialCached "footer.html" . }} {{ partialCached "scripts.html" . }} </body> {{ $script := .Site.Data.webpack.main }} diff --git a/landing-pages/site/layouts/install/baseof.html b/landing-pages/site/layouts/install/baseof.html index b83b82f..78ffb77 100644 --- a/landing-pages/site/layouts/install/baseof.html +++ b/landing-pages/site/layouts/install/baseof.html @@ -35,8 +35,8 @@ </a> </div> </main> - {{ partial "footer.html" . }} </div> +{{ partialCached "footer.html" . }} {{ partialCached "scripts.html" . }} </body> {{ $script := .Site.Data.webpack.main }} diff --git a/landing-pages/site/layouts/meetups/baseof.html b/landing-pages/site/layouts/meetups/baseof.html index b83b82f..78ffb77 100644 --- a/landing-pages/site/layouts/meetups/baseof.html +++ b/landing-pages/site/layouts/meetups/baseof.html @@ -35,8 +35,8 @@ </a> </div> </main> - {{ partial "footer.html" . }} </div> +{{ partialCached "footer.html" . }} {{ partialCached "scripts.html" . }} </body> {{ $script := .Site.Data.webpack.main }} diff --git a/landing-pages/site/layouts/partials/footer.html b/landing-pages/site/layouts/partials/footer.html new file mode 100644 index 0000000..38a7baa --- /dev/null +++ b/landing-pages/site/layouts/partials/footer.html @@ -0,0 +1,58 @@ +{{/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +*/}} + +{{ $links := .Site.Params.links }} +<footer> + <div class="footer-section footer-section__media-section"> + <div class="d-flex align-items-center"> + {{ with $links }} + {{ with index . "media"}} + {{ range . }} + <a class="footer-section__media-section--link" target="_blank" href="{{ .url }}"> + {{ with resources.Get (print "icons/" .iconName) }}{{ .Content | safeHTML }}{{ end }} + </a> + {{ end }} + {{ end }} + {{ end }} + </div> + <div class="footer-section__media-section--button-with-text"> + <span class="footer-section__media-section--text">Want to be a part of Apache Airflow?</span> + <a href="/community"> + {{ partial "buttons/button-filled" (dict "text" "Join community") }} + </a> + </div> + </div> + <div class="footer-section footer-section__policies-section"> + {{ with .Site.Params.copyright }}<span>© {{ . }}</span>{{ end }} + <div class="footer-section__policies-section--policies"> + {{ with $links }} + {{ with index . "policies"}} + {{ range . }} + <a href="{{ .url }}" class="footer-section__policies-section--policy-item"> + <span>{{ .name }}</span> + </a> + {{ end }} + {{ end }} + {{ end }} + <div class="footer-section__policies-section--language-toggle"> + {{ partial "lang-selector" . }} + </div> + </div> + </div> +</footer> diff --git a/landing-pages/site/layouts/partials/lang-selector.html b/landing-pages/site/layouts/partials/lang-selector.html new file mode 100644 index 0000000..b50cbce --- /dev/null +++ b/landing-pages/site/layouts/partials/lang-selector.html @@ -0,0 +1,28 @@ +{{/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +*/}} + +{{ $langPage := cond (gt (len .Translations) 0) . .Site.Home }} +<a class="dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> + <span>{{ $langPage.Language.LanguageName }}</span> +</a> +<div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink"> + {{ range $langPage.Translations }} + <a class="dropdown-item" href="{{ .RelPermalink }}">{{ .Language.LanguageName }}</a> + {{ end }} +</div>