chore: migrate mail themes to shared framework and locked upstream inputs
Release / Validate Templates (push) Canceled after 0s
Release / Package & Release (push) Canceled after 0s
Release / Update Latest Release Documentation (push) Canceled after 0s

This commit is contained in:
KenanZhu committed 2026-10-09 18:34:36 +08:00
1 parent 5c0589f6f6
commit fec3ace600
225 files changed
+4718 -15807

No files matched your search

-149
View File
@@ -1,149 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>
{{.locale.Tr "mail.team_invite.subject" (.Inviter.DisplayName|DotEscape) (.Organization.DisplayName|DotEscape)}}
</title>
<style type="text/css">
/* Base */
body,.ExternalClass,.ReadMsgBody { background-color:#0d1117 }
.email-wrap { max-width:600px;margin:40px auto;font-family:'JetBrains Mono','Fira Code','Consolas','Courier New',monospace }
/* Header */
.email-logo { display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5 }
.email-brand { font-size:16px;font-weight:700;color:#00ff41;letter-spacing:0.5px }
.email-header { padding:24px 28px 16px;text-align:left;border-bottom:2px solid #30363d;background:#161b22 }
/* Card */
.email-card { padding:28px 28px 20px;background:#161b22;color:#c9d1d9 }
.email-heading { margin:0 0 12px;font-size:15px;font-weight:400;color:#58a6ff;line-height:1.6 }
.email-text { margin:0 0 8px;font-size:14px;line-height:1.6;color:#c9d1d9;font-weight:400 }
.email-subtext { margin:0 0 20px;font-size:14px;line-height:1.6;color:#8b949e;font-weight:400 }
/* Divider */
.email-divider { height:2px;background:#30363d;margin:0 }
/* Button */
.email-btn-row { padding:28px 28px 20px;text-align:left;background:#161b22 }
.email-btn { display:inline-block;padding:11px 24px;font-size:14px;font-weight:700;color:#0d1117!important;text-decoration:none;background-color:#00ff41;border:2px solid #00ff41;font-family:'JetBrains Mono','Fira Code','Consolas',monospace;letter-spacing:0.5px }
.email-btn-table { margin:24px 0 20px;border-collapse:separate }
/* Fallback link */
.email-link-box { background:#0d1117;border:1px solid #30363d;margin:20px 0 12px }
.email-link-label { margin:0 0 6px;font-size:12px;color:#8b949e;font-weight:400 }
.email-link-url { margin:0;font-size:12px;color:#58a6ff;word-break:break-all;line-height:1.6 }
/* Footer */
.email-footer { padding:16px 28px 20px;text-align:left;border-top:1px solid #30363d;background:#0d1117 }
.email-footer-text { margin:0;font-size:12px;color:#484f58;font-weight:400 }
.email-footer-link { color:#58a6ff;text-decoration:none;font-weight:400 }
/* Typography utilities */
.card-body h1,.card-body h2,.card-body h3,.card-body h4,.card-body h5,.card-body h6 { color:#58a6ff!important }
.card-body a,.card-body a:link,.card-body a:visited { color:#58a6ff!important;text-decoration:underline!important }
.card-body a:hover,.card-body a:active { color:#79c0ff!important }
.card-body li { color:#c9d1d9!important }
/* Responsive */
@media only screen and (max-width:480px) {
.email-card { padding:20px 16px!important }
.email-btn-row { padding:20px 16px!important }
.email-heading { font-size:14px!important }
}
</style>
</head>
<body style="margin:0;padding:0;background:#0d1117;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="email-wrap">
<!-- Floating Title -->
<tr>
<td class="email-header">
<span class="email-brand">&gt; {{AppName}}</span>
</td>
</tr>
<!-- Card -->
<tr>
<td class="email-card card-body">
<p class="email-heading">
{{.locale.Tr "mail.hi_user_x" .Invite.Email}}
</p>
<p class="email-text">
{{.locale.Tr "mail.team_invite.text_1" (DotEscape .Inviter.DisplayName) (DotEscape .Team.Name) (DotEscape .Organization.DisplayName)}}
</p>
<p class="email-subtext">
{{.locale.Tr "mail.team_invite.text_2"}}
</p>
</td>
</tr>
<!-- Divider -->
<tr>
<td class="email-divider"></td>
</tr>
<!-- Button & Link -->
<tr>
<td class="email-btn-row">
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="email-btn-table">
<tr>
<td align="left">
<a href="{{.InviteURL}}" class="email-btn">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="email-link-box">
<tr>
<td style="padding:14px 16px;">
<p class="email-link-label">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p class="email-link-url">
┌─<br>
│ {{.InviteURL}}<br>
└─
</p>
</td>
</tr>
</table>
<p class="email-subtext" style="margin-top:16px;">
{{.locale.Tr "mail.team_invite.text_3" .Invite.Email}}
</p>
</td>
</tr>
<!-- Footer -->
<tr>
<td class="email-footer">
<p class="email-footer-text">
<span style="color:#8b949e;">#</span> &copy;
<a href="{{AppUrl}}" class="email-footer-link">{{AppName}}</a>
</p>
<p class="email-footer-text" style="margin:4px 0 0;font-size:11px;">
<span style="color:#8b949e;">#</span> if (!$expecting) { ignore(); }
</p>
</td>
</tr>
</table>
</center>
</body>
</html>
@@ -1,150 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>
{{.Subject}}
</title>
<style type="text/css">
/* Base */
body,.ExternalClass,.ReadMsgBody { background-color:#0d1117 }
.email-wrap { max-width:600px;margin:40px auto;font-family:'JetBrains Mono','Fira Code','Consolas','Courier New',monospace }
/* Header */
.email-logo { display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5 }
.email-brand { font-size:16px;font-weight:700;color:#00ff41;letter-spacing:0.5px }
.email-header { padding:24px 28px 16px;text-align:left;border-bottom:2px solid #30363d;background:#161b22 }
/* Card */
.email-card { padding:28px 28px 20px;background:#161b22;color:#c9d1d9 }
.email-heading { margin:0 0 12px;font-size:15px;font-weight:400;color:#58a6ff;line-height:1.6 }
.email-text { margin:0 0 8px;font-size:14px;line-height:1.6;color:#c9d1d9;font-weight:400 }
.email-subtext { margin:0 0 20px;font-size:14px;line-height:1.6;color:#8b949e;font-weight:400 }
/* Divider */
.email-divider { height:2px;background:#30363d;margin:0 }
/* Button */
.email-btn-row { padding:28px 28px 20px;text-align:left;background:#161b22 }
.email-btn { display:inline-block;padding:11px 24px;font-size:14px;font-weight:700;color:#0d1117!important;text-decoration:none;background-color:#00ff41;border:2px solid #00ff41;font-family:'JetBrains Mono','Fira Code','Consolas',monospace;letter-spacing:0.5px }
.email-btn-table { margin:24px 0 20px;border-collapse:separate }
/* Fallback link */
.email-link-box { background:#0d1117;border:1px solid #30363d;margin:20px 0 12px }
.email-link-label { margin:0 0 6px;font-size:12px;color:#8b949e;font-weight:400 }
.email-link-url { margin:0;font-size:12px;color:#58a6ff;word-break:break-all;line-height:1.6 }
/* Footer */
.email-footer { padding:16px 28px 20px;text-align:left;border-top:1px solid #30363d;background:#0d1117 }
.email-footer-text { margin:0;font-size:12px;color:#484f58;font-weight:400 }
.email-footer-link { color:#58a6ff;text-decoration:none;font-weight:400 }
/* Typography utilities */
.card-body h1,.card-body h2,.card-body h3,.card-body h4,.card-body h5,.card-body h6 { color:#58a6ff!important }
.card-body a,.card-body a:link,.card-body a:visited { color:#58a6ff!important;text-decoration:underline!important }
.card-body a:hover,.card-body a:active { color:#79c0ff!important }
.card-body li { color:#c9d1d9!important }
/* Responsive */
@media only screen and (max-width:480px) {
.email-card { padding:20px 16px!important }
.email-btn-row { padding:20px 16px!important }
.email-heading { font-size:14px!important }
}
</style>
</head>
<body style="margin:0;padding:0;background:#0d1117;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="email-wrap">
<!-- Floating Title -->
<tr>
<td class="email-header">
<span class="email-brand">&gt; {{AppName}}</span>
</td>
</tr>
<!-- Card -->
<tr>
<td class="email-card card-body">
<p class="email-heading"></p>
<p class="email-text">
<h2>{{.Repo.FullName}} :: {{.Run.WorkflowID}} &mdash; {{.RunStatusText}}</h2>
<ul style="list-style:none;padding:0;margin:0 0 24px 0;">
{{range $job := .Jobs}}
<li style="background-color:#0d1117!important;border:1px solid #30363d;padding:12px 16px;margin-bottom:8px;">
<a href="{{$job.HTMLURL}}" style="color:#58a6ff;text-decoration:none;font-weight:700;font-size:14px;display:block;">
[{{$job.Status}}] {{$job.Name}}{{if gt $job.Attempt 1}} (retry #{{$job.Attempt}}){{end}} &mdash; {{$job.Duration}}
</a>
</li>
{{end}}
</ul>
</p>
<p class="email-subtext"></p>
</td>
</tr>
<!-- Divider -->
<tr>
<td class="email-divider"></td>
</tr>
<!-- Button & Link -->
<tr>
<td class="email-btn-row">
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="email-btn-table">
<tr>
<td align="left">
<a href="{{.Run.HTMLURL}}" class="email-btn">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="email-link-box">
<tr>
<td style="padding:14px 16px;">
<p class="email-link-label">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p class="email-link-url">
┌─<br>
│ {{.Run.HTMLURL}}<br>
└─
</p>
</td>
</tr>
</table>
</td>
</tr>
<!-- Footer -->
<tr>
<td class="email-footer">
<p class="email-footer-text">
<span style="color:#8b949e;">#</span> &copy;
<a href="{{AppUrl}}" class="email-footer-link">{{AppName}}</a>
</p>
<p class="email-footer-text" style="margin:4px 0 0;font-size:11px;">
<span style="color:#8b949e;">#</span> if (!$expecting) { ignore(); }
</p>
</td>
</tr>
</table>
</center>
</body>
</html>
-141
View File
@@ -1,141 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>
{{.Subject}}
</title>
<style type="text/css">
/* Base */
body,.ExternalClass,.ReadMsgBody { background-color:#0d1117 }
.email-wrap { max-width:600px;margin:40px auto;font-family:'JetBrains Mono','Fira Code','Consolas','Courier New',monospace }
/* Header */
.email-logo { display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5 }
.email-brand { font-size:16px;font-weight:700;color:#00ff41;letter-spacing:0.5px }
.email-header { padding:24px 28px 16px;text-align:left;border-bottom:2px solid #30363d;background:#161b22 }
/* Card */
.email-card { padding:28px 28px 20px;background:#161b22;color:#c9d1d9 }
.email-heading { margin:0 0 12px;font-size:15px;font-weight:400;color:#58a6ff;line-height:1.6 }
.email-text { margin:0 0 20px;font-size:14px;line-height:1.6;color:#c9d1d9;font-weight:400 }
.email-subtext { margin:0 0 20px;font-size:14px;line-height:1.6;color:#8b949e;font-weight:400 }
/* Divider */
.email-divider { height:2px;background:#30363d;margin:0 }
/* Button */
.email-btn-row { padding:28px 28px 20px;text-align:left;background:#161b22 }
.email-btn { display:inline-block;padding:11px 24px;font-size:14px;font-weight:700;color:#0d1117!important;text-decoration:none;background-color:#00ff41;border:2px solid #00ff41;font-family:'JetBrains Mono','Fira Code','Consolas',monospace;letter-spacing:0.5px }
.email-btn-table { margin:24px 0 20px;border-collapse:separate }
/* Fallback link */
.email-link-box { background:#0d1117;border:1px solid #30363d;margin:20px 0 12px }
.email-link-label { margin:0 0 6px;font-size:12px;color:#8b949e;font-weight:400 }
.email-link-url { margin:0;font-size:12px;color:#58a6ff;word-break:break-all;line-height:1.6 }
/* Footer */
.email-footer { padding:16px 28px 20px;text-align:left;border-top:1px solid #30363d;background:#0d1117 }
.email-footer-text { margin:0;font-size:12px;color:#484f58;font-weight:400 }
.email-footer-link { color:#58a6ff;text-decoration:none;font-weight:400 }
/* Typography utilities */
.card-body h1,.card-body h2,.card-body h3,.card-body h4,.card-body h5,.card-body h6 { color:#58a6ff!important }
.card-body a,.card-body a:link,.card-body a:visited { color:#58a6ff!important;text-decoration:underline!important }
.card-body a:hover,.card-body a:active { color:#79c0ff!important }
.card-body li { color:#c9d1d9!important }
/* Responsive */
@media only screen and (max-width:480px) {
.email-card { padding:20px 16px!important }
.email-btn-row { padding:20px 16px!important }
.email-heading { font-size:14px!important }
}
</style>
</head>
<body style="margin:0;padding:0;background:#0d1117;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="email-wrap">
<!-- Floating Title -->
<tr>
<td class="email-header">
<span class="email-brand">&gt; {{AppName}}</span>
</td>
</tr>
<!-- Card -->
<tr>
<td class="email-card card-body">
<p class="email-heading"></p>
<p class="email-text">
{{.locale.Tr "mail.repo.collaborator.added.text"}} <code>{{.RepoName}}</code>.
</p>
<p class="email-subtext"></p>
</td>
</tr>
<!-- Divider -->
<tr>
<td class="email-divider"></td>
</tr>
<!-- Button & Link -->
<tr>
<td class="email-btn-row">
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="email-btn-table">
<tr>
<td align="left">
<a href="{{.Link}}" class="email-btn">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="email-link-box">
<tr>
<td style="padding:14px 16px;">
<p class="email-link-label">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p class="email-link-url">
┌─<br>
│ {{.Link}}<br>
└─
</p>
</td>
</tr>
</table>
</td>
</tr>
<!-- Footer -->
<tr>
<td class="email-footer">
<p class="email-footer-text">
<span style="color:#8b949e;">#</span> &copy;
<a href="{{AppUrl}}" class="email-footer-link">{{AppName}}</a>
</p>
<p class="email-footer-text" style="margin:4px 0 0;font-size:11px;">
<span style="color:#8b949e;">#</span> if (!$expecting) { ignore(); }
</p>
</td>
</tr>
</table>
</center>
</body>
</html>
@@ -1,147 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>
{{.Subject}}
</title>
<style type="text/css">
/* Base */
body,.ExternalClass,.ReadMsgBody { background-color:#0d1117 }
.email-wrap { max-width:600px;margin:40px auto;font-family:'JetBrains Mono','Fira Code','Consolas','Courier New',monospace }
/* Header */
.email-logo { display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5 }
.email-brand { font-size:16px;font-weight:700;color:#00ff41;letter-spacing:0.5px }
.email-header { padding:24px 28px 16px;text-align:left;border-bottom:2px solid #30363d;background:#161b22 }
/* Card */
.email-card { padding:28px 28px 20px;background:#161b22;color:#c9d1d9 }
.email-heading { margin:0 0 12px;font-size:15px;font-weight:400;color:#58a6ff;line-height:1.6 }
.email-text { margin:0 0 20px;font-size:14px;line-height:1.6;color:#c9d1d9;font-weight:400 }
.email-subtext { margin:0 0 20px;font-size:14px;line-height:1.6;color:#8b949e;font-weight:400 }
/* Divider */
.email-divider { height:2px;background:#30363d;margin:0 }
/* Button */
.email-btn-row { padding:28px 28px 20px;text-align:left;background:#161b22 }
.email-btn { display:inline-block;padding:11px 24px;font-size:14px;font-weight:700;color:#0d1117!important;text-decoration:none;background-color:#00ff41;border:2px solid #00ff41;font-family:'JetBrains Mono','Fira Code','Consolas',monospace;letter-spacing:0.5px }
.email-btn-table { margin:24px 0 20px;border-collapse:separate }
/* Fallback link */
.email-link-box { background:#0d1117;border:1px solid #30363d;margin:20px 0 12px }
.email-link-label { margin:0 0 6px;font-size:12px;color:#8b949e;font-weight:400 }
.email-link-url { margin:0;font-size:12px;color:#58a6ff;word-break:break-all;line-height:1.6 }
/* Footer */
.email-footer { padding:16px 28px 20px;text-align:left;border-top:1px solid #30363d;background:#0d1117 }
.email-footer-text { margin:0;font-size:12px;color:#484f58;font-weight:400 }
.email-footer-link { color:#58a6ff;text-decoration:none;font-weight:400 }
/* Typography utilities */
.card-body h1,.card-body h2,.card-body h3,.card-body h4,.card-body h5,.card-body h6 { color:#58a6ff!important }
.card-body a,.card-body a:link,.card-body a:visited { color:#58a6ff!important;text-decoration:underline!important }
.card-body a:hover,.card-body a:active { color:#79c0ff!important }
.card-body li { color:#c9d1d9!important }
/* Responsive */
@media only screen and (max-width:480px) {
.email-card { padding:20px 16px!important }
.email-btn-row { padding:20px 16px!important }
.email-heading { font-size:14px!important }
}
</style>
</head>
<body style="margin:0;padding:0;background:#0d1117;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="email-wrap">
<!-- Floating Title -->
<tr>
<td class="email-header">
<span class="email-brand">&gt; {{AppName}}</span>
</td>
</tr>
<!-- Card -->
<tr>
<td class="email-card card-body">
<p class="email-heading"></p>
<p class="email-text">
{{$repo_url := HTMLFormat "<a href=\047%s\047>%s</a>" .Issue.Repo.HTMLURL .Issue.Repo.FullName}}
{{$link := HTMLFormat "<a href=\047%s\047>#%d</a>" .Link .Issue.Index}}
{{if .IsPull}}
{{.locale.Tr "mail.issue_assigned.pull" .Doer.Name $link $repo_url}}
{{else}}
{{.locale.Tr "mail.issue_assigned.issue" .Doer.Name $link $repo_url}}
{{end}}
</p>
<p class="email-subtext"></p>
</td>
</tr>
<!-- Divider -->
<tr>
<td class="email-divider"></td>
</tr>
<!-- Button & Link -->
<tr>
<td class="email-btn-row">
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="email-btn-table">
<tr>
<td align="left">
<a href="{{.Link}}" class="email-btn">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="email-link-box">
<tr>
<td style="padding:14px 16px;">
<p class="email-link-label">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p class="email-link-url">
┌─<br>
│ {{.Link}}<br>
└─
</p>
</td>
</tr>
</table>
</td>
</tr>
<!-- Footer -->
<tr>
<td class="email-footer">
<p class="email-footer-text">
<span style="color:#8b949e;">#</span> &copy;
<a href="{{AppUrl}}" class="email-footer-link">{{AppName}}</a>
</p>
<p class="email-footer-text" style="margin:4px 0 0;font-size:11px;">
<span style="color:#8b949e;">#</span> if (!$expecting) { ignore(); }
</p>
</td>
</tr>
</table>
</center>
</body>
</html>
@@ -1,208 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>
{{.Subject}}
</title>
<style type="text/css">
/* Base */
body,.ExternalClass,.ReadMsgBody { background-color:#0d1117 }
.email-wrap { max-width:600px;margin:40px auto;font-family:'JetBrains Mono','Fira Code','Consolas','Courier New',monospace }
/* Header */
.email-logo { display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5 }
.email-brand { font-size:16px;font-weight:700;color:#00ff41;letter-spacing:0.5px }
.email-header { padding:24px 28px 16px;text-align:left;border-bottom:2px solid #30363d;background:#161b22 }
/* Card */
.email-card { padding:28px 28px 20px;background:#161b22;color:#c9d1d9 }
.email-heading { margin:0 0 12px;font-size:15px;font-weight:400;color:#58a6ff;line-height:1.6 }
.email-text { margin:0 0 8px;font-size:14px;line-height:1.6;color:#c9d1d9;font-weight:400 }
.email-subtext { margin:0 0 20px;font-size:14px;line-height:1.6;color:#8b949e;font-weight:400 }
/* Divider */
.email-divider { height:2px;background:#30363d;margin:0 }
/* Button */
.email-btn-row { padding:28px 28px 20px;text-align:left;background:#161b22 }
.email-btn { display:inline-block;padding:11px 24px;font-size:14px;font-weight:700;color:#0d1117!important;text-decoration:none;background-color:#00ff41;border:2px solid #00ff41;font-family:'JetBrains Mono','Fira Code','Consolas',monospace;letter-spacing:0.5px }
.email-btn-table { margin:24px 0 20px;border-collapse:separate }
/* Fallback link */
.email-link-box { background:#0d1117;border:1px solid #30363d;margin:20px 0 12px }
.email-link-label { margin:0 0 6px;font-size:12px;color:#8b949e;font-weight:400 }
.email-link-url { margin:0;font-size:12px;color:#58a6ff;word-break:break-all;line-height:1.6 }
/* Footer */
.email-footer { padding:16px 28px 20px;text-align:left;border-top:1px solid #30363d;background:#0d1117 }
.email-footer-text { margin:0;font-size:12px;color:#484f58;font-weight:400 }
.email-footer-link { color:#58a6ff;text-decoration:none;font-weight:400 }
/* Typography utilities */
.card-body h1,.card-body h2,.card-body h3,.card-body h4,.card-body h5,.card-body h6 { color:#58a6ff!important }
.card-body a,.card-body a:link,.card-body a:visited { color:#58a6ff!important;text-decoration:underline!important }
.card-body a:hover,.card-body a:active { color:#79c0ff!important }
.card-body li { color:#c9d1d9!important }
.card-body blockquote { padding-left:1em;margin:1em 0;border-left:2px solid #30363d;color:#8b949e }
.card-body pre { background:#0d1117;padding:12px;overflow-x:auto;font-size:13px;line-height:1.5;color:#c9d1d9;border:1px solid #30363d }
.card-body hr { border:none;border-top:1px solid #30363d;margin:20px 0 }
.card-body img { border:0;max-width:100% }
/* Responsive */
@media only screen and (max-width:480px) {
.email-card { padding:20px 16px!important }
.email-btn-row { padding:20px 16px!important }
.email-heading { font-size:14px!important }
}
</style>
</head>
<body style="margin:0;padding:0;background:#0d1117;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="email-wrap">
<!-- Floating Title -->
<tr>
<td class="email-header">
<span class="email-brand">&gt; {{AppName}}</span>
</td>
</tr>
<!-- Card -->
<tr>
<td class="email-card card-body">
<p class="email-heading"></p>
<p class="email-text">
{{if .IsMention}}
<p>{{.locale.Tr "mail.issue.x_mentioned_you" .Doer.Name}}</p>
{{end}}
{{if eq .ActionName "push"}}
<p>
{{if .Comment.IsForcePush}}
{{$oldCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.OldCommit}}
{{$oldShortSha := ShortSha .Comment.OldCommit}}
{{$oldCommitLink := HTMLFormat "<a href=\047%[1]s\047>%[2]s</a>" $oldCommitUrl $oldShortSha}}
{{$newCommitUrl := printf "%s/commit/%s" .Comment.Issue.PullRequest.BaseRepo.HTMLURL .Comment.NewCommit}}
{{$newShortSha := ShortSha .Comment.NewCommit}}
{{$newCommitLink := HTMLFormat "<a href=\047%[1]s\047>%[2]s</a>" $newCommitUrl $newShortSha}}
{{.locale.Tr "mail.issue.action.force_push" .Doer.Name .Comment.Issue.PullRequest.HeadBranch $oldCommitLink $newCommitLink}}
{{else}}
{{.locale.TrN (len .Comment.Commits) "mail.issue.action.push_1" "mail.issue.action.push_n" .Doer.Name .Comment.Issue.PullRequest.HeadBranch (len .Comment.Commits)}}
{{end}}
</p>
{{end}}
<p>
{{if eq .ActionName "close"}}
{{.locale.Tr "mail.issue.action.close" .Doer.Name .Issue.Index}}
{{else if eq .ActionName "reopen"}}
{{.locale.Tr "mail.issue.action.reopen" .Doer.Name .Issue.Index}}
{{else if eq .ActionName "merge"}}
{{.locale.Tr "mail.issue.action.merge" .Doer.Name .Issue.Index .Issue.PullRequest.BaseBranch}}
{{else if eq .ActionName "approve"}}
{{.locale.Tr "mail.issue.action.approve" .Doer.Name}}
{{else if eq .ActionName "reject"}}
{{.locale.Tr "mail.issue.action.reject" .Doer.Name}}
{{else if eq .ActionName "review"}}
{{.locale.Tr "mail.issue.action.review" .Doer.Name}}
{{else if eq .ActionName "review_dismissed"}}
{{.locale.Tr "mail.issue.action.review_dismissed" .Doer.Name .Comment.Review.Reviewer.Name}}
{{else if eq .ActionName "ready_for_review"}}
{{.locale.Tr "mail.issue.action.ready_for_review" .Doer.Name}}
{{end}}
{{- if eq .Body ""}}
{{if eq .ActionName "new"}}
{{.locale.Tr "mail.issue.action.new" .Doer.Name .Issue.Index}}
{{end}}
{{else}}
<span>{{.Body}}</span>
{{end -}}
</p>
{{- range .ReviewComments}}
<hr>
<p>{{$.locale.Tr "mail.issue.in_tree_path" .TreePath}}</p>
<pre>{{.Patch}}</pre>
<div>{{.RenderedContent}}</div>
{{end -}}
{{if eq .ActionName "push"}}
<ul>
{{range .Comment.Commits}}
<li>
<a href="{{$.Comment.Issue.PullRequest.BaseRepo.HTMLURL}}/commit/{{.UserCommit.GitCommit.ID}}">{{ShortSha .UserCommit.GitCommit.ID.String}}</a> - {{.UserCommit.GitCommit.MessageTitle}}
</li>
{{end}}
</ul>
{{end}}
</p>
<p class="email-subtext"></p>
</td>
</tr>
<!-- Divider -->
<tr>
<td class="email-divider"></td>
</tr>
<!-- Button & Link -->
<tr>
<td class="email-btn-row">
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="email-btn-table">
<tr>
<td align="left">
<a href="{{.Link}}" class="email-btn">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="email-link-box">
<tr>
<td style="padding:14px 16px;">
<p class="email-link-label">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p class="email-link-url">
┌─<br>
│ {{.Link}}<br>
└─
</p>
</td>
</tr>
</table>
</td>
</tr>
<!-- Footer -->
<tr>
<td class="email-footer">
<p class="email-footer-text">
<span style="color:#8b949e;">#</span> &copy;
<a href="{{AppUrl}}" class="email-footer-link">{{AppName}}</a>
{{if .CanReply}}&nbsp;{{.locale.Tr "mail.reply"}}{{end}}
</p>
<p class="email-footer-text" style="margin:4px 0 0;font-size:11px;">
<span style="color:#8b949e;">#</span> if (!$expecting) { ignore(); }
</p>
</td>
</tr>
</table>
</center>
</body>
</html>
-165
View File
@@ -1,165 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>
{{.Subject}}
</title>
<style type="text/css">
/* Base */
body,.ExternalClass,.ReadMsgBody { background-color:#0d1117 }
.email-wrap { max-width:600px;margin:40px auto;font-family:'JetBrains Mono','Fira Code','Consolas','Courier New',monospace }
/* Header */
.email-logo { display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5 }
.email-brand { font-size:16px;font-weight:700;color:#00ff41;letter-spacing:0.5px }
.email-header { padding:24px 28px 16px;text-align:left;border-bottom:2px solid #30363d;background:#161b22 }
/* Card */
.email-card { padding:28px 28px 20px;background:#161b22;color:#c9d1d9 }
.email-heading { margin:0 0 12px;font-size:15px;font-weight:400;color:#58a6ff;line-height:1.6 }
.email-text { margin:0 0 8px;font-size:14px;line-height:1.6;color:#c9d1d9;font-weight:400 }
.email-subtext { margin:0 0 20px;font-size:14px;line-height:1.6;color:#8b949e;font-weight:400 }
/* Divider */
.email-divider { height:2px;background:#30363d;margin:0 }
/* Button */
.email-btn-row { padding:28px 28px 20px;text-align:left;background:#161b22 }
.email-btn { display:inline-block;padding:11px 24px;font-size:14px;font-weight:700;color:#0d1117!important;text-decoration:none;background-color:#00ff41;border:2px solid #00ff41;font-family:'JetBrains Mono','Fira Code','Consolas',monospace;letter-spacing:0.5px }
.email-btn-table { margin:24px 0 20px;border-collapse:separate }
/* Fallback link */
.email-link-box { background:#0d1117;border:1px solid #30363d;margin:20px 0 12px }
.email-link-label { margin:0 0 6px;font-size:12px;color:#8b949e;font-weight:400 }
.email-link-url { margin:0;font-size:12px;color:#58a6ff;word-break:break-all;line-height:1.6 }
/* Footer */
.email-footer { padding:16px 28px 20px;text-align:left;border-top:1px solid #30363d;background:#0d1117 }
.email-footer-text { margin:0;font-size:12px;color:#484f58;font-weight:400 }
.email-footer-link { color:#58a6ff;text-decoration:none;font-weight:400 }
/* Typography utilities */
.card-body h1,.card-body h2,.card-body h3,.card-body h4,.card-body h5,.card-body h6 { color:#58a6ff!important }
.card-body a,.card-body a:link,.card-body a:visited { color:#58a6ff!important;text-decoration:underline!important }
.card-body a:hover,.card-body a:active { color:#79c0ff!important }
.card-body li { color:#c9d1d9!important }
/* Responsive */
@media only screen and (max-width:480px) {
.email-card { padding:20px 16px!important }
.email-btn-row { padding:20px 16px!important }
.email-heading { font-size:14px!important }
}
</style>
</head>
<body style="margin:0;padding:0;background:#0d1117;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="email-wrap">
<!-- Floating Title -->
<tr>
<td class="email-header">
<span class="email-brand">&gt; {{AppName}}</span>
</td>
</tr>
<!-- Card -->
<tr>
<td class="email-card card-body">
<p class="email-heading"></p>
<p class="email-text">
{{$release_url := HTMLFormat "<a href=\047%s\047>%s</a>" .Release.HTMLURL .Release.TagName}}
{{$repo_url := HTMLFormat "<a href=\047%s\047>%s</a>" .Release.Repo.HTMLURL .Release.Repo.FullName}}
{{.locale.Tr "mail.release.new.text" .Release.Publisher.Name $release_url $repo_url}}
<h4>{{.locale.Tr "mail.release.title" .Release.Title}}</h4>
<p>$ {{.locale.Tr "mail.release.note"}}</p>
{{if .Release.RenderedNote}}
<div style="margin:12px 0 16px;font-size:14px;line-height:1.6;color:#c9d1d9;">
{{.Release.RenderedNote}}
</div>
{{end}}
<p style="font-weight:700;color:#58a6ff;">{{.locale.Tr "mail.release.downloads"}}</p>
<ul>
{{if not .DisableDownloadSourceArchives}}
<li><a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.zip">{{.locale.Tr "mail.release.download.zip"}}</a></li>
<li><a href="{{.Release.Repo.HTMLURL}}/archive/{{.Release.TagName | PathEscapeSegments}}.tar.gz">{{.locale.Tr "mail.release.download.targz"}}</a></li>
{{end}}
{{if .Release.Attachments}}
{{range .Release.Attachments}}
<li><a href="{{.DownloadURL}}">{{.Name}} ({{.Size | FormatByteSize}})</a></li>
{{end}}
{{end}}
</ul>
</p>
<p class="email-subtext"></p>
</td>
</tr>
<!-- Divider -->
<tr>
<td class="email-divider"></td>
</tr>
<!-- Button & Link -->
<tr>
<td class="email-btn-row">
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="email-btn-table">
<tr>
<td align="left">
<a href="{{.Link}}" class="email-btn">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="email-link-box">
<tr>
<td style="padding:14px 16px;">
<p class="email-link-label">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p class="email-link-url">
┌─<br>
│ {{.Link}}<br>
└─
</p>
</td>
</tr>
</table>
</td>
</tr>
<!-- Footer -->
<tr>
<td class="email-footer">
<p class="email-footer-text">
<span style="color:#8b949e;">#</span> &copy;
<a href="{{AppUrl}}" class="email-footer-link">{{AppName}}</a>
</p>
<p class="email-footer-text" style="margin:4px 0 0;font-size:11px;">
<span style="color:#8b949e;">#</span> if (!$expecting) { ignore(); }
</p>
</td>
</tr>
</table>
</center>
</body>
</html>
-142
View File
@@ -1,142 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>
{{.Subject}}
</title>
<style type="text/css">
/* Base */
body,.ExternalClass,.ReadMsgBody { background-color:#0d1117 }
.email-wrap { max-width:600px;margin:40px auto;font-family:'JetBrains Mono','Fira Code','Consolas','Courier New',monospace }
/* Header */
.email-logo { display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5 }
.email-brand { font-size:16px;font-weight:700;color:#00ff41;letter-spacing:0.5px }
.email-header { padding:24px 28px 16px;text-align:left;border-bottom:2px solid #30363d;background:#161b22 }
/* Card */
.email-card { padding:28px 28px 20px;background:#161b22;color:#c9d1d9 }
.email-heading { margin:0 0 12px;font-size:15px;font-weight:400;color:#58a6ff;line-height:1.6 }
.email-text { margin:0 0 20px;font-size:14px;line-height:1.6;color:#c9d1d9;font-weight:400 }
.email-subtext { margin:0 0 20px;font-size:14px;line-height:1.6;color:#8b949e;font-weight:400 }
/* Divider */
.email-divider { height:2px;background:#30363d;margin:0 }
/* Button */
.email-btn-row { padding:28px 28px 20px;text-align:left;background:#161b22 }
.email-btn { display:inline-block;padding:11px 24px;font-size:14px;font-weight:700;color:#0d1117!important;text-decoration:none;background-color:#00ff41;border:2px solid #00ff41;font-family:'JetBrains Mono','Fira Code','Consolas',monospace;letter-spacing:0.5px }
.email-btn-table { margin:24px 0 20px;border-collapse:separate }
/* Fallback link */
.email-link-box { background:#0d1117;border:1px solid #30363d;margin:20px 0 12px }
.email-link-label { margin:0 0 6px;font-size:12px;color:#8b949e;font-weight:400 }
.email-link-url { margin:0;font-size:12px;color:#58a6ff;word-break:break-all;line-height:1.6 }
/* Footer */
.email-footer { padding:16px 28px 20px;text-align:left;border-top:1px solid #30363d;background:#0d1117 }
.email-footer-text { margin:0;font-size:12px;color:#484f58;font-weight:400 }
.email-footer-link { color:#58a6ff;text-decoration:none;font-weight:400 }
/* Typography utilities */
.card-body h1,.card-body h2,.card-body h3,.card-body h4,.card-body h5,.card-body h6 { color:#58a6ff!important }
.card-body a,.card-body a:link,.card-body a:visited { color:#58a6ff!important;text-decoration:underline!important }
.card-body a:hover,.card-body a:active { color:#79c0ff!important }
.card-body li { color:#c9d1d9!important }
/* Responsive */
@media only screen and (max-width:480px) {
.email-card { padding:20px 16px!important }
.email-btn-row { padding:20px 16px!important }
.email-heading { font-size:14px!important }
}
</style>
</head>
<body style="margin:0;padding:0;background:#0d1117;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="email-wrap">
<!-- Floating Title -->
<tr>
<td class="email-header">
<span class="email-brand">&gt; {{AppName}}</span>
</td>
</tr>
<!-- Card -->
<tr>
<td class="email-card card-body">
<p class="email-heading"></p>
<p class="email-text">
{{$url := HTMLFormat "<a href=\047%[1]s\047>%[2]s</a>" .Link .Repo}}
{{.Subject}}. {{.locale.Tr "mail.repo.transfer.body" $url}}
</p>
<p class="email-subtext"></p>
</td>
</tr>
<!-- Divider -->
<tr>
<td class="email-divider"></td>
</tr>
<!-- Button & Link -->
<tr>
<td class="email-btn-row">
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="email-btn-table">
<tr>
<td align="left">
<a href="{{.Link}}" class="email-btn">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="email-link-box">
<tr>
<td style="padding:14px 16px;">
<p class="email-link-label">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p class="email-link-url">
┌─<br>
│ {{.Link}}<br>
└─
</p>
</td>
</tr>
</table>
</td>
</tr>
<!-- Footer -->
<tr>
<td class="email-footer">
<p class="email-footer-text">
<span style="color:#8b949e;">#</span> &copy;
<a href="{{AppUrl}}" class="email-footer-link">{{AppName}}</a>
</p>
<p class="email-footer-text" style="margin:4px 0 0;font-size:11px;">
<span style="color:#8b949e;">#</span> if (!$expecting) { ignore(); }
</p>
</td>
</tr>
</table>
</center>
</body>
</html>
@@ -1,143 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>
{{.locale.Tr "mail.activate_account.title" (.DisplayName|DotEscape)}}
</title>
<style type="text/css">
/* Base */
body,.ExternalClass,.ReadMsgBody { background-color:#0d1117 }
.email-wrap { max-width:600px;margin:40px auto;font-family:'JetBrains Mono','Fira Code','Consolas','Courier New',monospace }
/* Header */
.email-logo { display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5 }
.email-brand { font-size:16px;font-weight:700;color:#00ff41;letter-spacing:0.5px }
.email-header { padding:24px 28px 16px;text-align:left;border-bottom:2px solid #30363d;background:#161b22 }
/* Card */
.email-card { padding:28px 28px 20px;background:#161b22;color:#c9d1d9 }
.email-heading { margin:0 0 12px;font-size:15px;font-weight:400;color:#58a6ff;line-height:1.6 }
.email-text { margin:0 0 8px;font-size:14px;line-height:1.6;color:#c9d1d9;font-weight:400 }
.email-subtext { margin:0 0 20px;font-size:14px;line-height:1.6;color:#8b949e;font-weight:400 }
/* Divider */
.email-divider { height:2px;background:#30363d;margin:0 }
/* Button */
.email-btn-row { padding:28px 28px 20px;text-align:left;background:#161b22 }
.email-btn { display:inline-block;padding:11px 24px;font-size:14px;font-weight:700;color:#0d1117!important;text-decoration:none;background-color:#00ff41;border:2px solid #00ff41;font-family:'JetBrains Mono','Fira Code','Consolas',monospace;letter-spacing:0.5px }
.email-btn-table { margin:24px 0 20px;border-collapse:separate }
/* Fallback link */
.email-link-box { background:#0d1117;border:1px solid #30363d;margin:20px 0 12px }
.email-link-label { margin:0 0 6px;font-size:12px;color:#8b949e;font-weight:400 }
.email-link-url { margin:0;font-size:12px;color:#58a6ff;word-break:break-all;line-height:1.6 }
/* Footer */
.email-footer { padding:16px 28px 20px;text-align:left;border-top:1px solid #30363d;background:#0d1117 }
.email-footer-text { margin:0;font-size:12px;color:#484f58;font-weight:400 }
.email-footer-link { color:#58a6ff;text-decoration:none;font-weight:400 }
/* Typography utilities */
.card-body h1,.card-body h2,.card-body h3,.card-body h4,.card-body h5,.card-body h6 { color:#58a6ff!important }
.card-body a,.card-body a:link,.card-body a:visited { color:#58a6ff!important;text-decoration:underline!important }
.card-body a:hover,.card-body a:active { color:#79c0ff!important }
.card-body li { color:#c9d1d9!important }
/* Responsive */
@media only screen and (max-width:480px) {
.email-card { padding:20px 16px!important }
.email-btn-row { padding:20px 16px!important }
.email-heading { font-size:14px!important }
}
</style>
</head>
<body style="margin:0;padding:0;background:#0d1117;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="email-wrap">
<!-- Floating Title -->
<tr>
<td class="email-header">
<span class="email-brand">&gt; {{AppName}}</span>
</td>
</tr>
<!-- Card -->
<tr>
<td class="email-card card-body">
<p class="email-text">
{{.locale.Tr "mail.activate_account.text_1" (.DisplayName|DotEscape) AppName}}
</p>
<p class="email-subtext">
{{.locale.Tr "mail.activate_account.text_2" .ActiveCodeLives}}
</p>
</td>
</tr>
<!-- Divider -->
<tr>
<td class="email-divider"></td>
</tr>
<!-- Button & Link -->
<tr>
<td class="email-btn-row">
{{$activate_url := printf "%suser/activate?code=%s" AppUrl (QueryEscape .Code)}}
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="email-btn-table">
<tr>
<td align="left">
<a href="{{$activate_url}}" class="email-btn">{{.locale.Tr "mail.activate_account"}}</a>
</td>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="email-link-box">
<tr>
<td style="padding:14px 16px;">
<p class="email-link-label">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p class="email-link-url">
┌─<br>
│ {{$activate_url}}<br>
└─
</p>
</td>
</tr>
</table>
</td>
</tr>
<!-- Footer -->
<tr>
<td class="email-footer">
<p class="email-footer-text">
<span style="color:#8b949e;">#</span> &copy;
<a href="{{AppUrl}}" class="email-footer-link">{{AppName}}</a>
</p>
<p class="email-footer-text" style="margin:4px 0 0;font-size:11px;">
<span style="color:#8b949e;">#</span> if (!$expecting) { ignore(); }
</p>
</td>
</tr>
</table>
</center>
</body>
</html>
@@ -1,145 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>
{{.locale.Tr "mail.activate_email.title" (.DisplayName|DotEscape)}}
</title>
<style type="text/css">
/* Base */
body,.ExternalClass,.ReadMsgBody { background-color:#0d1117 }
.email-wrap { max-width:600px;margin:40px auto;font-family:'JetBrains Mono','Fira Code','Consolas','Courier New',monospace }
/* Header */
.email-logo { display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5 }
.email-brand { font-size:16px;font-weight:700;color:#00ff41;letter-spacing:0.5px }
.email-header { padding:24px 28px 16px;text-align:left;border-bottom:2px solid #30363d;background:#161b22 }
/* Card */
.email-card { padding:28px 28px 20px;background:#161b22;color:#c9d1d9 }
.email-heading { margin:0 0 12px;font-size:15px;font-weight:400;color:#58a6ff;line-height:1.6 }
.email-text { margin:0 0 20px;font-size:14px;line-height:1.6;color:#c9d1d9;font-weight:400 }
.email-subtext { margin:0 0 20px;font-size:14px;line-height:1.6;color:#8b949e;font-weight:400 }
/* Divider */
.email-divider { height:2px;background:#30363d;margin:0 }
/* Button */
.email-btn-row { padding:28px 28px 20px;text-align:left;background:#161b22 }
.email-btn { display:inline-block;padding:11px 24px;font-size:14px;font-weight:700;color:#0d1117!important;text-decoration:none;background-color:#00ff41;border:2px solid #00ff41;font-family:'JetBrains Mono','Fira Code','Consolas',monospace;letter-spacing:0.5px }
.email-btn-table { margin:24px 0 20px;border-collapse:separate }
/* Fallback link */
.email-link-box { background:#0d1117;border:1px solid #30363d;margin:20px 0 12px }
.email-link-label { margin:0 0 6px;font-size:12px;color:#8b949e;font-weight:400 }
.email-link-url { margin:0;font-size:12px;color:#58a6ff;word-break:break-all;line-height:1.6 }
/* Footer */
.email-footer { padding:16px 28px 20px;text-align:left;border-top:1px solid #30363d;background:#0d1117 }
.email-footer-text { margin:0;font-size:12px;color:#484f58;font-weight:400 }
.email-footer-link { color:#58a6ff;text-decoration:none;font-weight:400 }
/* Typography utilities */
.card-body h1,.card-body h2,.card-body h3,.card-body h4,.card-body h5,.card-body h6 { color:#58a6ff!important }
.card-body a,.card-body a:link,.card-body a:visited { color:#58a6ff!important;text-decoration:underline!important }
.card-body a:hover,.card-body a:active { color:#79c0ff!important }
.card-body li { color:#c9d1d9!important }
/* Responsive */
@media only screen and (max-width:480px) {
.email-card { padding:20px 16px!important }
.email-btn-row { padding:20px 16px!important }
.email-heading { font-size:14px!important }
}
</style>
</head>
<body style="margin:0;padding:0;background:#0d1117;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="email-wrap">
<!-- Floating Title -->
<tr>
<td class="email-header">
<span class="email-brand">&gt; {{AppName}}</span>
</td>
</tr>
<!-- Card -->
<tr>
<td class="email-card card-body">
<p class="email-heading">
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
</p>
<p class="email-text">
{{.locale.Tr "mail.activate_email.text" .ActiveCodeLives}}
</p>
<p class="email-subtext"></p>
</td>
</tr>
<!-- Divider -->
<tr>
<td class="email-divider"></td>
</tr>
<!-- Button & Link -->
<tr>
<td class="email-btn-row">
{{$activate_url := printf "%suser/activate_email?code=%s&email=%s" AppUrl (QueryEscape .Code) (QueryEscape .Email)}}
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="email-btn-table">
<tr>
<td align="left">
<a href="{{$activate_url}}" class="email-btn">{{.locale.Tr "mail.activate_email"}}</a>
</td>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="email-link-box">
<tr>
<td style="padding:14px 16px;">
<p class="email-link-label">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p class="email-link-url">
┌─<br>
│ {{$activate_url}}<br>
└─
</p>
</td>
</tr>
</table>
</td>
</tr>
<!-- Footer -->
<tr>
<td class="email-footer">
<p class="email-footer-text">
<span style="color:#8b949e;">#</span> &copy;
<a href="{{AppUrl}}" class="email-footer-link">{{AppName}}</a>
</p>
<p class="email-footer-text" style="margin:4px 0 0;font-size:11px;">
<span style="color:#8b949e;">#</span> if (!$expecting) { ignore(); }
</p>
</td>
</tr>
</table>
</center>
</body>
</html>
@@ -1,150 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>
{{.locale.Tr "mail.register_notify.title" (.DisplayName|DotEscape) AppName}}
</title>
<style type="text/css">
/* Base */
body,.ExternalClass,.ReadMsgBody { background-color:#0d1117 }
.email-wrap { max-width:600px;margin:40px auto;font-family:'JetBrains Mono','Fira Code','Consolas','Courier New',monospace }
/* Header */
.email-logo { display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5 }
.email-brand { font-size:16px;font-weight:700;color:#00ff41;letter-spacing:0.5px }
.email-header { padding:24px 28px 16px;text-align:left;border-bottom:2px solid #30363d;background:#161b22 }
/* Card */
.email-card { padding:28px 28px 20px;background:#161b22;color:#c9d1d9 }
.email-heading { margin:0 0 12px;font-size:15px;font-weight:400;color:#58a6ff;line-height:1.6 }
.email-text { margin:0 0 8px;font-size:14px;line-height:1.6;color:#c9d1d9;font-weight:400 }
.email-subtext { margin:0 0 20px;font-size:14px;line-height:1.6;color:#8b949e;font-weight:400 }
/* Divider */
.email-divider { height:2px;background:#30363d;margin:0 }
/* Button */
.email-btn-row { padding:28px 28px 20px;text-align:left;background:#161b22 }
.email-btn { display:inline-block;padding:11px 24px;font-size:14px;font-weight:700;color:#0d1117!important;text-decoration:none;background-color:#00ff41;border:2px solid #00ff41;font-family:'JetBrains Mono','Fira Code','Consolas',monospace;letter-spacing:0.5px }
.email-btn-table { margin:24px 0 20px;border-collapse:separate }
/* Fallback link */
.email-link-box { background:#0d1117;border:1px solid #30363d;margin:20px 0 12px }
.email-link-label { margin:0 0 6px;font-size:12px;color:#8b949e;font-weight:400 }
.email-link-url { margin:0;font-size:12px;color:#58a6ff;word-break:break-all;line-height:1.6 }
/* Footer */
.email-footer { padding:16px 28px 20px;text-align:left;border-top:1px solid #30363d;background:#0d1117 }
.email-footer-text { margin:0;font-size:12px;color:#484f58;font-weight:400 }
.email-footer-link { color:#58a6ff;text-decoration:none;font-weight:400 }
/* Typography utilities */
.card-body h1,.card-body h2,.card-body h3,.card-body h4,.card-body h5,.card-body h6 { color:#58a6ff!important }
.card-body a,.card-body a:link,.card-body a:visited { color:#58a6ff!important;text-decoration:underline!important }
.card-body a:hover,.card-body a:active { color:#79c0ff!important }
.card-body li { color:#c9d1d9!important }
/* Responsive */
@media only screen and (max-width:480px) {
.email-card { padding:20px 16px!important }
.email-btn-row { padding:20px 16px!important }
.email-heading { font-size:14px!important }
}
</style>
</head>
<body style="margin:0;padding:0;background:#0d1117;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="email-wrap">
<!-- Floating Title -->
<tr>
<td class="email-header">
<span class="email-brand">&gt; {{AppName}}</span>
</td>
</tr>
<!-- Card -->
<tr>
<td class="email-card card-body">
<p class="email-heading">
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
</p>
<p class="email-text">
{{.locale.Tr "mail.register_notify.text_1" AppName}}
</p>
<p class="email-text">
{{.locale.Tr "mail.register_notify.text_2" .Username}}
</p>
<p class="email-subtext">
{{$set_pwd_url := printf "%suser/forgot_password" AppUrl}}
{{.locale.Tr "mail.register_notify.text_3" $set_pwd_url}}
</p>
</td>
</tr>
<!-- Divider -->
<tr>
<td class="email-divider"></td>
</tr>
<!-- Button & Link -->
<tr>
<td class="email-btn-row">
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="email-btn-table">
<tr>
<td align="left">
<a href="{{AppUrl}}user/login" class="email-btn">{{.locale.Tr "mail.view_it_on" AppName}}</a>
</td>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="email-link-box">
<tr>
<td style="padding:14px 16px;">
<p class="email-link-label">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p class="email-link-url">
┌─<br>
│ {{AppUrl}}user/login<br>
└─
</p>
</td>
</tr>
</table>
</td>
</tr>
<!-- Footer -->
<tr>
<td class="email-footer">
<p class="email-footer-text">
<span style="color:#8b949e;">#</span> &copy;
<a href="{{AppUrl}}" class="email-footer-link">{{AppName}}</a>
</p>
<p class="email-footer-text" style="margin:4px 0 0;font-size:11px;">
<span style="color:#8b949e;">#</span> if (!$expecting) { ignore(); }
</p>
</td>
</tr>
</table>
</center>
</body>
</html>
@@ -1,145 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="x-apple-disable-message-reformatting" />
<title>
{{.locale.Tr "mail.reset_password.title" (.DisplayName|DotEscape)}}
</title>
<style type="text/css">
/* Base */
body,.ExternalClass,.ReadMsgBody { background-color:#0d1117 }
.email-wrap { max-width:600px;margin:40px auto;font-family:'JetBrains Mono','Fira Code','Consolas','Courier New',monospace }
/* Header */
.email-logo { display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5 }
.email-brand { font-size:16px;font-weight:700;color:#00ff41;letter-spacing:0.5px }
.email-header { padding:24px 28px 16px;text-align:left;border-bottom:2px solid #30363d;background:#161b22 }
/* Card */
.email-card { padding:28px 28px 20px;background:#161b22;color:#c9d1d9 }
.email-heading { margin:0 0 12px;font-size:15px;font-weight:400;color:#58a6ff;line-height:1.6 }
.email-text { margin:0 0 20px;font-size:14px;line-height:1.6;color:#c9d1d9;font-weight:400 }
.email-subtext { margin:0 0 20px;font-size:14px;line-height:1.6;color:#8b949e;font-weight:400 }
/* Divider */
.email-divider { height:2px;background:#30363d;margin:0 }
/* Button */
.email-btn-row { padding:28px 28px 20px;text-align:left;background:#161b22 }
.email-btn { display:inline-block;padding:11px 24px;font-size:14px;font-weight:700;color:#0d1117!important;text-decoration:none;background-color:#00ff41;border:2px solid #00ff41;font-family:'JetBrains Mono','Fira Code','Consolas',monospace;letter-spacing:0.5px }
.email-btn-table { margin:24px 0 20px;border-collapse:separate }
/* Fallback link */
.email-link-box { background:#0d1117;border:1px solid #30363d;margin:20px 0 12px }
.email-link-label { margin:0 0 6px;font-size:12px;color:#8b949e;font-weight:400 }
.email-link-url { margin:0;font-size:12px;color:#58a6ff;word-break:break-all;line-height:1.6 }
/* Footer */
.email-footer { padding:16px 28px 20px;text-align:left;border-top:1px solid #30363d;background:#0d1117 }
.email-footer-text { margin:0;font-size:12px;color:#484f58;font-weight:400 }
.email-footer-link { color:#58a6ff;text-decoration:none;font-weight:400 }
/* Typography utilities */
.card-body h1,.card-body h2,.card-body h3,.card-body h4,.card-body h5,.card-body h6 { color:#58a6ff!important }
.card-body a,.card-body a:link,.card-body a:visited { color:#58a6ff!important;text-decoration:underline!important }
.card-body a:hover,.card-body a:active { color:#79c0ff!important }
.card-body li { color:#c9d1d9!important }
/* Responsive */
@media only screen and (max-width:480px) {
.email-card { padding:20px 16px!important }
.email-btn-row { padding:20px 16px!important }
.email-heading { font-size:14px!important }
}
</style>
</head>
<body style="margin:0;padding:0;background:#0d1117;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;">
<center style="width:100%;table-layout:fixed;">
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="email-wrap">
<!-- Floating Title -->
<tr>
<td class="email-header">
<span class="email-brand">&gt; {{AppName}}</span>
</td>
</tr>
<!-- Card -->
<tr>
<td class="email-card card-body">
<p class="email-heading">
{{.locale.Tr "mail.hi_user_x" (.DisplayName|DotEscape)}}
</p>
<p class="email-text">
{{.locale.Tr "mail.reset_password.text" .ResetPwdCodeLives}}
</p>
<p class="email-subtext"></p>
</td>
</tr>
<!-- Divider -->
<tr>
<td class="email-divider"></td>
</tr>
<!-- Button & Link -->
<tr>
<td class="email-btn-row">
{{$recover_url := printf "%suser/recover_account?code=%s" AppUrl (QueryEscape .Code)}}
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="email-btn-table">
<tr>
<td align="left">
<a href="{{$recover_url}}" class="email-btn">{{.locale.Tr "mail.reset_password"}}</a>
</td>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="email-link-box">
<tr>
<td style="padding:14px 16px;">
<p class="email-link-label">{{.locale.Tr "mail.link_not_working_do_paste"}}</p>
<p class="email-link-url">
┌─<br>
│ {{$recover_url}}<br>
└─
</p>
</td>
</tr>
</table>
</td>
</tr>
<!-- Footer -->
<tr>
<td class="email-footer">
<p class="email-footer-text">
<span style="color:#8b949e;">#</span> &copy;
<a href="{{AppUrl}}" class="email-footer-link">{{AppName}}</a>
</p>
<p class="email-footer-text" style="margin:4px 0 0;font-size:11px;">
<span style="color:#8b949e;">#</span> if (!$expecting) { ignore(); }
</p>
</td>
</tr>
</table>
</center>
</body>
</html>
+79
View File
@@ -0,0 +1,79 @@
/* Base */
body,.ExternalClass,.ReadMsgBody { background-color:#0d1117 }
.email-wrap { max-width:600px;margin:40px auto;font-family:'JetBrains Mono','Fira Code','Consolas','Courier New',monospace }
/* Header */
.email-logo { display:block;margin:0 auto 14px;border:0;outline:none;opacity:0.5 }
.email-brand { font-size:16px;font-weight:700;color:#00ff41;letter-spacing:0.5px }
.email-header { padding:24px 28px 16px;text-align:left;border-bottom:2px solid #30363d;background:#161b22 }
/* Card */
.email-card { padding:28px 28px 20px;background:#161b22;color:#c9d1d9 }
.email-heading { margin:0 0 12px;font-size:15px;font-weight:400;color:#58a6ff;line-height:1.6 }
.email-text { margin:0 0 8px;font-size:14px;line-height:1.6;color:#c9d1d9;font-weight:400 }
.email-subtext { margin:0 0 20px;font-size:14px;line-height:1.6;color:#8b949e;font-weight:400 }
/* Divider */
.email-divider { height:2px;background:#30363d;margin:0 }
/* Button */
.email-btn-row { padding:28px 28px 20px;text-align:left;background:#161b22 }
.email-btn,.card-body .email-btn,.card-body .email-btn:link,.card-body .email-btn:visited { display:inline-block;padding:11px 24px;font-size:14px;font-weight:700;color:#0d1117!important;text-decoration:none!important;background-color:#00ff41;border:2px solid #00ff41;font-family:'JetBrains Mono','Fira Code','Consolas',monospace;letter-spacing:0.5px }
.email-btn-table { margin:24px 0 20px;border-collapse:separate }
/* Fallback link */
.email-link-box { background:#0d1117;border:1px solid #30363d;margin:20px 0 12px }
.email-link-label { margin:0 0 6px;font-size:12px;color:#8b949e;font-weight:400 }
.email-link-url { margin:0;font-size:12px;color:#58a6ff;word-break:break-all;line-height:1.6 }
/* Footer */
.email-footer { padding:16px 28px 20px;text-align:left;border-top:1px solid #30363d;background:#0d1117 }
.email-footer-text { margin:0;font-size:12px;color:#484f58;font-weight:400 }
.email-footer-link { color:#58a6ff;text-decoration:none;font-weight:400 }
/* Typography utilities */
.card-body h1,.card-body h2,.card-body h3,.card-body h4,.card-body h5,.card-body h6 { color:#58a6ff!important }
.card-body a,.card-body a:link,.card-body a:visited { color:#58a6ff!important;text-decoration:underline!important }
.card-body a:hover,.card-body a:active { color:#79c0ff!important }
.card-body li { color:#c9d1d9!important }
/* Responsive */
@media only screen and (max-width:480px) {
.email-card { padding:20px 16px!important }
.email-btn-row { padding:20px 16px!important }
.email-heading { font-size:14px!important }
}
/* Official-snapshot presentation adapter: no content or translation overrides. */
body { margin:0; padding:24px 16px; background-color:#0d1117; }
body, td { font-family:Consolas,'Courier New',monospace; }
.email-wrap { width:100%; max-width:600px; border-collapse:separate; border-spacing:0; }
.card-body { font-size:14px; line-height:1.7; overflow-wrap:anywhere; }
.card-body > pre, .card-body code { font-family:Consolas,monospace; white-space:pre-wrap; overflow-wrap:anywhere; }
.card-body ul { padding-left:22px; }
.card-body blockquote { padding-left:16px; border-left:3px solid #00ff41; }
.mail-footer { margin:0; }
.mail-footer td { border-top-color:transparent!important; color:#c9d1d9!important; }
.mail-footer a { color:#00ff41!important; text-decoration:none; }
.email-body { padding:32px; }
.email-card { border-left:1px solid #30363d; border-right:1px solid #30363d; }
.card-body > pre { padding:16px; background:#0d1117; border:1px solid #30363d; color:#00ff41; }
@media only screen and (max-width:480px) {
body { padding:12px 8px; }
.email-wrap { margin:0 auto; }
.email-body { padding:24px 18px!important; }
.card-body { width:auto!important; }
.resp-hide { display:none!important; }
}
/* Shared framework controls: keep URLs readable, never style them as CTAs. */
.email-link-cell { padding:16px 18px; }
.email-link-url a,.card-body .email-link-url a { color:inherit!important; text-decoration:none!important; font-size:inherit; }
.email-link-url { overflow-wrap:anywhere; word-break:break-all; }
.email-action { margin:20px 0 0; }
.email-btn-row { box-sizing:border-box; }
.card-body .email-btn { max-width:100%; box-sizing:border-box; white-space:normal; overflow-wrap:anywhere; }
@media only screen and (max-width:480px) { .card-body .email-btn { display:block; text-align:center; width:100%; } .email-btn-table { width:100%; } }
+6
View File
@@ -0,0 +1,6 @@
{
"name": "terminal",
"description": "Developers / Tech",
"mode": "framed",
"layout": "terminal"
}