website/layouts/docs/single.html
TheYoungManLi 0ab9d3344a feature: add subscribe Form in blog page and quick-start
Signed-off-by: TheYoungManLi <1512298456@qq.com>
2021-08-31 10:50:15 +08:00

416 lines
18 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="{{ with .Site.LanguageCode }}{{ . }}{{ else }}en-US{{ end }}">
<head>
{{- partial "head.html" . -}}
</head>
<body>
{{ if .Site.Params.addGoogleTag }}
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W9FLX4R" height="0" width="0"
style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
{{ end }}
{{- partial "header.html" . -}}
<main class='main-section padding'>
<section class='section-1 bg-cover'>
<div class="common-layout">
{{ partial "breadcrumb.html" . }}
<div class="title-div">
{{ $sections := .FirstSection.Sections.ByWeight }}
{{ $secondSection := .FirstSection }}
{{ $page := . }}
{{ range $sections }}
{{ if $page.IsDescendant . }}
{{ $secondSection = . }}
{{ end }}
{{ end }}
<p><a href="{{ $secondSection.RelPermalink }}">{{ $secondSection.LinkTitle }}</a></p>
<div class="menu section-control">
<div></div>
<div></div>
<div></div>
</div>
</div>
<div class="search-div">
{{ partial "searchInput" . }}
</div>
</div>
</section>
<section class="section-menu">
{{ with (.GetPage "/docs") }}
<div class="common-layout">
{{ partial "section" . }}
</div>
{{ end }}
</section>
<section class="section-2">
<div class="common-layout">
<div class="left-div left-tree">
<div class="inner-tree">
{{ partial "tree.html" . }}
<!-- <div class="download-div">
<span class="download-icon"></span>
<span>{{ i18n "Download this page (PDF)" }}</span>
</div> -->
</div>
</div>
<div class="second-section-menu">
<div></div>
<div></div>
<div></div>
</div>
<div class="middle-div">
<div class="top-div common-flex-layout">
<div class="contributor-div">
<span>{{ i18n "Last updated" }}:</span>
<span class="update-time"></span>
<a href="{{ .Site.Params.githubBlobUrl }}/{{ .Site.Language.Lang }}/{{ .File.Path }}"
target="_blank" rel="noopener noreferrer">
<ul class="contributor-avatar"></ul>
</a>
<span class="more-contributor"></span>
</div>
<div class="mutual-div common-flex-layout">
<div class="edit-div">
<a href="{{ .Site.Params.githubEditUrl }}/{{ .Site.Language.Lang }}/{{ .File.Path }}"
target="_blank" rel="noopener noreferrer">
<span class="icon-span"></span>
<span>{{ i18n "edit" }}</span>
</a>
</div>
<div class="feedback-div">
<a href="{{ .Site.Params.githubUrl }}/issues/new" target="_blank"
rel="noopener noreferrer">
<span class="icon-span"></span>
<span>{{ i18n "feedback" }}</span>
</a>
</div>
<div class="share-div">
<div>
<span class="icon-span"></span>
<span>{{ i18n "share" }}</span>
</div>
<ul>
<li>
<img src="/images/docs/twitter.svg" alt="twitter">
<a href="https://twitter.com/intent/tweet?url={{ .Permalink }}&text={{ .Title }}"
target="_blank" rel="noopener noreferrer">twitter</a>
</li>
<li>
<img src="/images/docs/linkedIn.svg" alt="linkedIn">
<a href="http://www.linkedin.com/shareArticle?mini=true&url={{ .Permalink }}"
target="_blank" rel="noopener noreferrer">linkedIn</a>
</li>
<li>
<img src="/images/docs/facebook.svg" alt="facebook">
<a href="http://www.facebook.com/sharer.php?u={{ .Permalink }}" target="_blank"
rel="noopener noreferrer">facebook</a>
</li>
<li>
<img src="/images/docs/reddit.svg" alt="reddit">
<a href="http://reddit.com/submit?url={{ .Permalink }}&title={{ .Title }}"
target="_blank" rel="noopener noreferrer">reddit</a>
</li>
<li>
<img src="/images/docs/email.svg" alt="email">
<a href="mailto:info@kubesphere.io" target="_blank"
rel="noopener noreferrer">email</a>
</li>
</ul>
</div>
</div>
</div>
<div class="content-div main-div">
<div class="md-body">
<h1>{{ .Title }}</h1>
{{ .Content }}
<section class="feedback-section">
<p class="title">{{ i18n "feedback"}}</p>
<p>{{i18n "Was this page Helpful?"}}</p>
<button class="Yes">{{ i18n "Yes" }}</button>
<button class="No">{{ i18n "No" }}</button>
</section>
{{if eq .Site.LanguageCode "en-US"}}
{{if .Params.showSubscribe }}
<div class="SubscribeForm">
<div class="innerBox">
<p class="description">
Sign up for latest tutorials and Kubernetes tips
</p>
<div>
<form action="{{ .Site.Params.mailchimpSubscribeUrl }}" method="post"
target="_blank" novalidate>
<input name="EMAIL" id="email-input" type="text"
placeholder='{{ i18n "Please enter your email address" }}'>
<button type="submit" id="email-submit">{{ i18n "Subscribe" }}</button>
</form>
</div>
<span id="message" data-message1='{{ i18n "email is required" }}'
data-message2='{{ i18n "Please enter a valid email address." }}'></span>
</div>
</div>
{{end}}
{{end}}
<br>
<p class="msg-thank">{{ i18n "Msg-Thank" }}</p>
</div>
</div>
{{ if .IsPage }}
<div class="page-div common-flex-layout">
{{ with .Next }}
<!-- {{ if .IsDescendant (.GetPage "/docs")}} -->
<a class="last" href="{{.RelPermalink}}">
<img src="/images/docs/last.svg" alt="{{ i18n " Previous" }}">
{{ i18n "Previous" }}
<span>: {{.LinkTitle}}</span>
</a>
<!-- {{ end }} -->
{{ end }}
{{ with .Prev }}
<!-- {{ if .IsDescendant (.GetPage "/docs")}} -->
<a class="next" href="{{.RelPermalink}}">
{{ i18n "Next" }}
<span>: {{.LinkTitle}}</span>
<img src="/images/docs/next.svg" alt="{{ i18n " Next" }}">
</a>
<!-- {{ end }} -->
{{ end }}
</div>
{{ end }}
<div></div>
</div>
{{ if .IsPage }}
<div class="aside">
<div class="inner-div">
<div class='title'>
{{ i18n "Whats on this Page" }}
</div>
<div class='tabs'>
{{ .TableOfContents }}
</div>
</div>
</div>
{{ end }}
</div>
</section>
{{ $aside := resources.Get "js/aside.js" }}
{{ $asideJS := $aside | resources.Fingerprint "sha512" }}
<script type="text/javascript" src="{{ $asideJS.RelPermalink }}"
integrity="{{ $asideJS.Data.Integrity }}"></script>
{{ $tab := resources.Get "js/markdown-tab.js" }}
{{ $tabJS := $tab | resources.Fingerprint "sha512" }}
<script type="text/javascript" src="{{ $tabJS.RelPermalink }}" integrity="{{ $tabJS.Data.Integrity }}"></script>
<script>
var languageCode = '{{.Site.Language.Lang}}'
var filePath = '{{ .File.Path }}'
var githubUrl = '{{ .Site.Params.githubUrl }}'
// var filePath = 'README.md'
var Yes = $('button.Yes');
var No = $('button.No');
var msg = $('p.msg-thank')
msg.hide()
Yes.click(function () {
Yes.css("background-color", " #55BC8A");
Yes.css("opacity", '0.5');
Yes.css("pointer-events", "none");
No.css("pointer-events", "none");
msg.show()
})
No.click(function () {
No.css("background-color", " #55BC8A");
No.css("opacity", '0.5');
Yes.css("pointer-events", "none");
No.css("pointer-events", "none");
msg.show()
})
var getLatestTime = function (data) {
var commit = data[0].commit
return commit.author.date.replace("T", " ").replace("Z", "")
}
var filterData = function (data) {
var arr = []
var length = data.length
for (var i = 0; i < length; i++) {
var author = data[i].author
if (author) {
var avatar_url = author.avatar_url
if (avatar_url && !arr.includes(avatar_url)) {
arr.push(avatar_url)
}
}
}
return arr
}
var getFileContributors = function () {
var url = 'https://api.github.com/repos/kubesphere/website/commits?path=content/' + languageCode + '/' + filePath
$.getJSON(url, function (data) {
if (!data || data.length === 0) {
$('.contributor-div').hide()
return
}
var newData = filterData(data)
var time = getLatestTime(data)
renderLatestTime(time)
renderContributors(newData)
})
}
var renderContributors = function (data) {
var contributor = $('.contributor-avatar')
var length = data.length
var len = 5
$.each(data.slice(0, len), function (index, item) {
var img = $("<img />", {
"src": item
})
$("<li />", {
"html": img
}).appendTo(contributor);
});
var t = length - len
if (t > 0) {
$('.more-contributor').html('+' + t)
}
}
var renderLatestTime = function (time) {
$('.update-time').html(time)
}
var bindClickMenu = function () {
var sectionMenu = $(".section-menu")
$('.section-control').on('mouseenter', function (e) {
if (sectionMenu.is(":hidden")) {
sectionMenu.show();
}
})
sectionMenu.on('mouseleave', function () {
sectionMenu.hide();
})
$(document).on("click", function () {
sectionMenu.hide()
});
sectionMenu.on("click", function (e) {
e.stopPropagation();
})
}
var bindClickSecondMenu = function () {
var sectionMenu = $(".section-2 .left-div")
$('.second-section-menu').on('click', function (e) {
sectionMenu.css("left", "0")
$(document).one("click", function () {
sectionMenu.css("left", "-274px")
});
e.stopPropagation()
})
sectionMenu.on("click", function (e) {
e.stopPropagation();
})
}
var bindSubmit = function () {
var input = $('#email-input')
$('#email-submit').click(function (event) {
event.stopPropagation()
var email = input.val()
var message1 = $('#message').data('message1')
var message2 = $('#message').data('message2')
if (!email) {
event.preventDefault()
showMessage(message1)
} else if (!validateEmail(email)) {
event.preventDefault()
showMessage(message2)
}
})
}
var validateEmail = function (email) {
var reg = /^[A-Za-z0-9]+([_\.][A-Za-z0-9]+)*@([A-Za-z0-9\-]+\.)+[A-Za-z]{2,6}$/
return reg.test(email)
}
var showMessage = function (message) {
$('#message').html(message).show()
}
var bindHideMessage = function () {
$(window).click(function () {
$('#message').hide()
})
}
var bindClose = function () {
$('.formBox .close').click(function (e) {
e.stopPropagation()
$('.formBox').fadeOut()
})
}
var useViewer = function () {
var viewer = new Viewer(document.querySelector('.md-body'), {
url: 'src'
})
}
var __main = function () {
getFileContributors()
bindClickMenu()
bindClickSecondMenu()
useViewer()
bindSubmit()
bindClose()
bindHideMessage()
}
__main()
</script>
</main>
<footer>
<div class="down-main">
<div class='img-div'>
<a class='wechat' href="javascript:void(0);">
{{ "/static/images/footer/wechat.svg" | readFile | safeHTML }}
<div class="hide-div">
<p>Follow the official account</p>
<img src="/images/footer/wechat_code.svg" alt="">
</div>
</a>
<a class='facebook-a' href="https://www.facebook.com/kubesphere" target="_blank"></a>
<a class='twitter-a' href="{{ .Site.Params.twitterLink }}" target="_blank"
rel="noopener noreferrer"></a>
<a class='linkedin-a' href="{{ .Site.Params.linkedinLink }}" target="_blank"
rel="noopener noreferrer"></a>
<a class='youtube-a' href="{{ .Site.Params.youtubeLink }}" target="_blank"
rel="noopener noreferrer"></a>
<a class='slack-a' href="{{ .Site.Params.slackLink }}" target="_blank" rel="noopener noreferrer"></a>
<a class='github-a' href="{{ .Site.Params.githubLink }}" target="_blank" rel="noopener noreferrer"></a>
<a class='medium-a' href="{{ .Site.Params.mediumLink }}" target="_blank" rel="noopener noreferrer"></a>
</div>
<p class='p1'>{{ i18n "KubeSphere® 2021 All Rights Reserved." }}</p>
</div>
</footer>
</body>
</html>