follow new version github

This commit is contained in:
MeiK
2020-12-11 20:43:52 +08:00
parent 2029bfb4c2
commit 76202bfc51
20 changed files with 1607 additions and 838 deletions

1
.gitignore vendored
View File

@@ -1 +1,2 @@
.DS_Store
.vscode

View File

@@ -1,5 +1,12 @@
# github-style
像素级抄袭 GitHub。
目前完成:
- header 栏(还没有移动端的样式切换)
- light/dark 模式切换
## Init hugo site
```bash
@@ -14,7 +21,9 @@ git submodule add git@github.com:MeiK2333/github-style.git themes/github-style
```
## Update the theme
If you just installed the theme, it is already in the lattest version. If not, you can update using the below commands
If you just installed the theme, it is already in the latest version. If not, you can update using the below commands
```bash
cd themes/github-style
git pull
@@ -57,6 +66,7 @@ summary: "The summary content"
```
### Approch 2: use `<!--more-->`
Use `<!--more-->` to seperate content that will display in the posts page as abstraction and the rest of the content. This is different from summary, as summary will not appear in the post.
```
---
@@ -70,6 +80,7 @@ other content
```
## add last modified data
Unfortunately, hugo cannot automaticlly get files' modified date, and it needs to be manually set in page as `lastmode`.
```
---
@@ -78,18 +89,23 @@ lastmode: 2019-10-22T18:46:47+08:00
```
## Support LaTex
In you post add `katex:true` to [front matter](https://gohugo.io/content-management/front-matter/)
```
---
katex: true
---
```
Then the [katex script](https://katex.org/docs/autorender.html) will auto render the string enclosed be delimiters.
Then the [katex script](https://katex.org/docs/autorender.html) will auto render the string enclosed be delimiters.
```
# replace ... with latex formula
display inline \\( ... \\)
display block $$ ... $$
```
![latex example](images/latex_example.png)
## config.toml example
@@ -151,4 +167,4 @@ cd public && git add --all && git commit -m "Publishing to gh-pages (publish.sh)
#echo "Pushing to github"
#git push --all
```
Then you can verify the site is working and use `git push --all` to push the change to github. If you don't want to check again every time, you can uncomment the `#git push --all` in the script.
Then you can verify the site is working and use `git push --all` to push the change to github. If you don't want to check again every time, you can uncomment the `#git push --all` in the script.

View File

@@ -1,11 +1,11 @@
{{ define "content" }}
<div class="application-main " data-commit-hovercards-enabled>
<main>
<div class="container-xl clearfix px-3 mt-4">
<main>
<div class="container-xl clearfix px-3 mt-4">
{{ partial "user-profile.html" . }}
{{ partial "user-profile.html" . }}
{{ partial "about.html" .}}
</main>
{{ partial "about.html" .}}
</main>
</div>
{{end }}

View File

@@ -2,10 +2,12 @@
<html lang="{{ .Site.LanguageCode }}">
{{ partial "head.html" . }}
<body class="env-production emoji-size-boost page-responsive page-profile">
<body>
{{ partial "header" . }}
{{ block "content" . }}{{ end }}
{{ partial "footer.html" . }}
<!-- {{ block "content" . }}{{ end }} -->
<!-- {{ partial "footer.html" . }} -->
</body>
{{ partial "script.html" . }}
</html>

View File

@@ -1,12 +1,12 @@
{{ define "content" }}
<div class="application-main " data-commit-hovercards-enabled>
<main>
<div class="container-xl clearfix px-3 mt-4">
<main>
<div class="container-xl clearfix px-3 mt-4">
{{ partial "user-profile.html" . }}
{{ partial "user-profile.html" . }}
{{ partial "posts.html" .}}
{{ partial "posts.html" .}}
</main>
</main>
</div>
{{end }}

View File

@@ -1,29 +1,28 @@
<div class="footer container-lg width-full p-responsive" role="contentinfo">
<div
class="position-relative d-flex flex-row-reverse flex-lg-row flex-wrap flex-lg-nowrap flex-justify-center flex-lg-justify-between pt-6 pb-2 mt-6 f6 text-gray border-top border-gray-light ">
<ul
class="list-style-none d-flex flex-wrap col-12 col-lg-5 flex-justify-center flex-lg-justify-between mb-2 mb-lg-0">
<li class="mr-3 mr-lg-0">{{ .Site.Copyright | safeHTML }}</a></li>
</ul>
<div
class="position-relative d-flex flex-row-reverse flex-lg-row flex-wrap flex-lg-nowrap flex-justify-center flex-lg-justify-between pt-6 pb-2 mt-6 f6 text-gray border-top border-gray-light ">
<ul
class="list-style-none d-flex flex-wrap col-12 col-lg-5 flex-justify-center flex-lg-justify-between mb-2 mb-lg-0">
<li class="mr-3 mr-lg-0">{{ .Site.Copyright | safeHTML }}</a></li>
</ul>
<a aria-label="Homepage" title="{{ .Site.Title }}" class="footer-octicon d-none d-lg-block mx-lg-4"
href="{{ .Site.BaseURL }}">
<svg height="24" class="octicon octicon-mark-github" viewBox="0 0 16 16" version="1.1" width="24"
aria-hidden="true">
<path fill-rule="evenodd"
d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z">
</path>
</svg>
</a>
<ul
class="list-style-none d-flex flex-wrap col-12 col-lg-5 flex-justify-center flex-lg-justify-between mb-2 mb-lg-0">
</ul>
</div>
<div class="d-flex flex-justify-center pb-6">
<span class="f6 text-gray-light"></span>
</div>
<a aria-label="Homepage" title="{{ .Site.Title }}" class="footer-octicon d-none d-lg-block mx-lg-4"
href="{{ .Site.BaseURL }}">
<svg height="24" class="octicon octicon-mark-github" viewBox="0 0 16 16" version="1.1" width="24"
aria-hidden="true">
<path fill-rule="evenodd"
d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z">
</path>
</svg>
</a>
<ul
class="list-style-none d-flex flex-wrap col-12 col-lg-5 flex-justify-center flex-lg-justify-between mb-2 mb-lg-0">
</ul>
</div>
<div class="d-flex flex-justify-center pb-6">
<span class="f6 text-gray-light"></span>
</div>
</div>
{{ if .Params.katex }}
{{ partial "katex.html" . }}
{{ end }}
{{ partial "script.html" . }}
{{ partial "katex.html" . }}
{{ end }}

View File

@@ -1,64 +1,10 @@
<head>
<meta charset="utf-8">
<link crossorigin="anonymous" media="all" rel="stylesheet" href="{{ "css/frameworks.css" | absURL }}" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="{{ "css/github.css" | absURL }}" />
{{ if $.Site.Params.disableDarkMode }}
{{ else }}
<link crossorigin="anonymous" media="(prefers-color-scheme: dark)" rel="stylesheet"
href="{{ "css/dark.css" | absURL }}" />
{{end}}
<meta name="viewport" content="width=device-width">
<meta name="description"
content="{{ if .IsHome }}{{ .Site.Params.tagline }}{{ else }}{{ .Summary | plainify }}{{ end }}" />
<meta name="keywords"
content="{{ with .Params.Keywords }}{{ delimit . ", " }}{{ else }}{{ $.Site.Params.Keywords }}{{ end }}" />
<meta name="robots" content="noodp" />
<link rel="canonical" href="{{ .Permalink }}" />
<!-- Twitter Card -->
<meta name="twitter:card" content="summary" />
<meta name="twitter:title" content="{{ if .IsHome }}{{ else }}{{ .Title }} - {{ end }}{{ .Site.Title }}" />
<meta name="twitter:description"
content="{{ if .IsHome }}{{ $.Site.Params.description }}{{ else }}{{ .Summary | plainify }}{{ end }}" />
<meta name="twitter:site" content="{{ $.Site.BaseURL }}" />
<meta name="twitter:creator" content="{{ .Params.Author }}" />
<meta name="twitter:image"
content="{{ if .IsHome }}{{ $.Site.Params.avatar | absURL }}{{ else }}{{ .Params.Cover | absURL }}{{ end }}">
<!-- OG data -->
<meta property="og:type" content="{{ if .IsPage }}article{{ else }}website{{ end }}" />
<meta property="og:title" content="{{ if .IsHome }}{{ else }}{{ .Title }} - {{ end }}{{ .Site.Title }}">
<meta property="og:description"
content="{{ if .IsHome }}{{ $.Site.Params.description }}{{ else }}{{ .Summary | plainify }}{{ end }}" />
<meta property="og:url" content="{{ .Permalink }}" />
<meta property="og:site_name" content="{{ .Title }}" />
<meta property="og:image"
content="{{ if .IsHome }}{{ $.Site.Params.avatar | absURL }}{{ else }}{{ .Params.Cover | absURL }}{{ end }}">
<meta property="og:image:width" content="2048">
<meta property="og:image:height" content="1024">
{{ if isset .Params "date" }}
<meta property="article:published_time" content="{{ time .Date }}" />
{{ end }}
<!-- RSS -->
{{ with .OutputFormats.Get "RSS" }}
<link href="{{ .RelPermalink }}" rel="alternate" type="application/rss+xml" title="{{ $.Site.Title }}" />
{{ end }}
<!-- JSON Feed -->
{{ with .OutputFormats.Get "json" }}
<link href="{{ .RelPermalink }}" rel="alternate" type="application/json" title="{{ $.Site.Title }}" />
{{ end }}
<link rel="stylesheet" href="{{ "css/github-style.css" | absURL }}" />
<link rel="stylesheet" href="{{ "css/light.css" | absURL }}" />
<link rel="stylesheet" href="{{ "css/dark.css" | absURL }}" />
<title>{{ if .IsHome }}{{ else }}{{ .Title }} - {{ end }}{{ .Site.Title }}</title>
<link rel="icon" type="image/x-icon" class="js-site-favicon" href="{{ "images/favicon.ico" | absURL }}">
<link rel="icon" type="image/x-icon" href="{{ "images/favicon.ico" | absURL }}">
<meta name="theme-color" content="#1e2327">
<!-- Extended head section-->
{{ partial "extended_head.html" . }}
{{ if eq (getenv "HUGO_ENV") "production"}}
{{ template "_internal/google_analytics_async.html" . }}
{{ end }}
</head>

View File

@@ -1,55 +1,34 @@
<div class="position-relative js-header-wrapper ">
<span class="Progress progress-pjax-loader position-fixed width-full js-pjax-loader-bar">
<span class="progress-pjax-loader-bar top-0 left-0" style="width: 0%;"></span>
</span>
<header class="Header py-lg-0 js-details-container Details flex-wrap flex-lg-nowrap p-responsive" role="banner">
<div class="Header-item d-none d-lg-flex">
<a class="Header-link" href="{{ .Site.BaseURL }}" aria-label="Homepage"
data-ga-click="Header, go to dashboard, icon:logo">
<svg class="octicon octicon-mark-github v-align-middle" height="32" viewBox="0 0 16 16" version="1.1"
width="32" aria-hidden="true">
<path fill-rule="evenodd"
d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z" />
</svg>
</a>
</div>
<div
class="Header-item Header-item--full flex-column flex-lg-row width-full flex-order-2 flex-lg-order-none mr-0 mr-lg-3 mt-3 mt-lg-0 Details-content--hidden">
<div class="header-search flex-self-stretch flex-lg-self-auto mr-0 mr-lg-3 mb-3 mb-lg-0 scoped-search site-scoped-search js-site-search position-relative js-jump-to"
role="combobox" aria-owns="jump-to-results" aria-label="Search or jump to" aria-haspopup="listbox"
aria-expanded="false">
<div class="position-relative">
</div>
</div>
</div>
<nav class="d-flex" aria-label="Global">
<a class="js-selected-navigation-item Header-link py-lg-3">&nbsp;</a>
</nav>
<div class="Header-item Header-item--full flex-justify-center d-lg-none position-relative" style="margin-right: auto;">
<a class="Header-link" href="{{ .Site.BaseURL }}" aria-label="Homepage"
data-ga-click="Header, go to dashboard, icon:logo">
<svg class="octicon octicon-mark-github v-align-middle" height="32" viewBox="0 0 16 16" version="1.1"
width="32" aria-hidden="true">
<path fill-rule="evenodd"
d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z" />
</svg>
</a>
</div>
<div class="Header-item position-relative mr-0 d-none d-lg-flex">
<details class="details-overlay details-reset">
<summary class="Header-link" aria-label="View profile and more"
data-ga-click="Header, show menu, icon:avatar">
{{ with $.Site.Params.avatar }}
<img alt="" class="avatar" src="{{ $.Site.Params.avatar }}" height="20" width="20">
{{ else }}
<img alt="" class="avatar" src="{{ "images/avatar.png" | absURL }}" height="20" width="20">
{{ end }}
</summary>
</details>
</div>
</header>
</div>
<div id="start-of-content" class="show-on-focus"></div>
<div id="js-flash-container">
</div>
<div style="position: relative">
<header class="Header">
<div class="Header-item" style="margin-top: -4px; margin-bottom: -4px;">
<a class="Header-link" href="{{ .Site.BaseURL }}">
<svg class="octicon" height="32" viewBox="0 0 16 16" version="1.1" width="32">
<path fill-rule="evenodd"
d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z">
</path>
</svg>
</a>
</div>
<div class="Header-item Header-item--full">
<div class="Header-search">
<form target="_blank" action="https://www.google.com/search" accept-charset="UTF-8" method="get"
autocomplete="off">
<label class="Header-search-label">
<input class="Header-search-input" type="text" name="q" value="" placeholder="Search">
<input type="hidden" name="q" value="site:{{ .Site.BaseURL }}">
</label>
</form>
</div>
</div>
<div class="Header-item" style="margin-right: 0;">
<a href="javascript:void(0)" class="Header-link" onclick="switchTheme()">
<svg style="fill: var(--color-profile-color-modes-toggle-moon);" viewBox="0 0 16 16" version="1.1" width="16"
height="16" aria-hidden="true">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M4.52208 7.71754C7.5782 7.71754 10.0557 5.24006 10.0557 2.18394C10.0557 1.93498 10.0392 1.68986 10.0074 1.44961C9.95801 1.07727 10.3495 0.771159 10.6474 0.99992C12.1153 2.12716 13.0615 3.89999 13.0615 5.89383C13.0615 9.29958 10.3006 12.0605 6.89485 12.0605C3.95334 12.0605 1.49286 10.001 0.876728 7.24527C0.794841 6.87902 1.23668 6.65289 1.55321 6.85451C2.41106 7.40095 3.4296 7.71754 4.52208 7.71754Z">
</path>
</svg>
</a>
</div>
</header>
</div>

View File

@@ -1,10 +1,10 @@
<div class="application-main " data-commit-hovercards-enabled>
<main>
<div class="container-xl clearfix px-3 mt-4">
<main>
<div class="container-xl clearfix px-3 mt-4">
{{ partial "user-profile.html" . }}
{{ partial "user-profile.html" . }}
{{ partial "overview.html" .}}
{{ partial "overview.html" .}}
</main>
</div>
</main>
</div>

View File

@@ -1,7 +1 @@
<script crossorigin="anonymous"
type="application/javascript" src="{{ "js/frameworks.js" | absURL }}"></script>
<script crossorigin="anonymous"
type="application/javascript" src="{{ "js/github-bootstrap.js" | absURL }}"></script>
<script src="{{ "js/stop.js" | absURL }}"></script>
<script src="{{ "js/contributions.js" | absURL }}"></script>
<script type="application/javascript" src="{{ "js/github-style.js" | absURL }}"></script>

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

109
static/css/github-style.css Normal file
View File

@@ -0,0 +1,109 @@
body {
margin: 0;
background-color: var(--body-background-color);
}
.Header {
display: flex;
align-items: center;
flex-wrap: nowrap;
padding-left: 32px!important;
padding-right: 32px!important;
z-index: 32;
padding: 16px;
font-size: 14px;
line-height: 1.5;
color: var(--color-header-text);
background-color: var(--color-header-bg);
}
.Header-link {
align-items: center;
display: flex;
font-weight: 600;
color: var(--color-header-logo);
white-space: nowrap;
}
.Header-item {
margin-right: 16px;
}
.Header-item--full {
width: 100%;
}
.octicon {
fill: currentColor;
}
.Header-search {
max-width: 272px;
transition: .2s ease-in-out;
transition-property: max-width, padding-bottom, padding-top;
}
.Header-search:focus-within {
max-width: 544px;
transition: .2s ease-in-out;
transition-property: max-width, padding-bottom, padding-top;
}
.Header-search-label {
display: flex;
width: 100%;
max-width: 100%;
padding: 0;
font-size: 14px;
font-weight: 400;
color: var(--color-text-white);
vertical-align: middle;
background-color: var(--color-header-search-bg);
border: 1px solid var(--color-header-search-border);
border-radius: 6px;
box-shadow: none;
}
.Header-search-label:focus-within {
background-color: hsla(0, 0%, 100%, .175);
border-color: var(--color-state-focus-border);
outline: none;
}
.Header-search-input {
min-height: 28px;
width: 100%;
padding: 5px 12px;
padding-top: 0;
padding-bottom: 0;
font-size: 14px;
background: none;
border: 0;
box-shadow: none;
border-radius: 6px;
color: #fff;
}
.Header-search-input:focus {
border: 0;
box-shadow: none;
background-color: var(--color-bg-secondary);
color: var(--color-text-primary);
border-color: var(--color-state-focus-border);
outline: none;
}
::placeholder {
color: #c2c3c4;
opacity: 1;
}
.switch-theme {
top: -2px;
left: -2px;
width: 28px;
height: 28px;
border-radius: 50%;
background-color: var(--color-profile-color-modes-toggle-thumb-bg);
cursor: pointer;
}

File diff suppressed because one or more lines are too long

684
static/css/light.css Normal file
View File

@@ -0,0 +1,684 @@
:root {
--body-background-color: #fff;
--color-actions-workflow-table-sticky-bg: hsla(0, 0%, 100%, 0.95);
--color-alert-error-bg: #ffe3e6;
--color-alert-error-border: rgba(158, 28, 35, 0.2);
--color-alert-error-icon: rgba(158, 28, 35, 0.6);
--color-alert-error-text: #24292e;
--color-alert-info-bg: #dbedff;
--color-alert-info-border: rgba(4, 66, 137, 0.2);
--color-alert-info-icon: rgba(4, 66, 137, 0.6);
--color-alert-info-text: #24292e;
--color-alert-success-bg: #dcffe4;
--color-alert-success-border: rgba(23, 111, 44, 0.2);
--color-alert-success-icon: rgba(23, 111, 44, 0.8);
--color-alert-success-text: #24292e;
--color-alert-warn-bg: #fffbdd;
--color-alert-warn-border: rgba(176, 136, 0, 0.2);
--color-alert-warn-icon: #b08800;
--color-alert-warn-text: #24292e;
--color-ansi-black: #24292e;
--color-ansi-black-bright: #2f363d;
--color-ansi-blue: #79b8ff;
--color-ansi-blue-bright: #c8e1ff;
--color-ansi-cyan: #76e3ea;
--color-ansi-cyan-bright: #b3f0ff;
--color-ansi-gray: #959da5;
--color-ansi-green: #85e89d;
--color-ansi-green-bright: #bef5cb;
--color-ansi-magenta: #b392f0;
--color-ansi-magenta-bright: #d1bcf9;
--color-ansi-red: #f97583;
--color-ansi-red-bright: #fdaeb7;
--color-ansi-white: #e1e4e8;
--color-ansi-white-bright: #e1e4e8;
--color-ansi-yellow: #ffea7f;
--color-ansi-yellow-bright: #fff5b1;
--color-auto-black: #1b1f23;
--color-auto-blue-0: #f1f8ff;
--color-auto-blue-1: #dbedff;
--color-auto-blue-2: #c8e1ff;
--color-auto-blue-3: #79b8ff;
--color-auto-blue-4: #2188ff;
--color-auto-blue-5: #0366d6;
--color-auto-blue-6: #005cc5;
--color-auto-blue-7: #044289;
--color-auto-blue-8: #032f62;
--color-auto-blue-9: #05264c;
--color-auto-gray-0: #fafbfc;
--color-auto-gray-1: #f6f8fa;
--color-auto-gray-2: #e1e4e8;
--color-auto-gray-3: #d1d5da;
--color-auto-gray-4: #959da5;
--color-auto-gray-5: #6a737d;
--color-auto-gray-6: #586069;
--color-auto-gray-7: #444d56;
--color-auto-gray-8: #2f363d;
--color-auto-gray-9: #24292e;
--color-auto-green-0: #f0fff4;
--color-auto-green-1: #dcffe4;
--color-auto-green-2: #bef5cb;
--color-auto-green-3: #85e89d;
--color-auto-green-4: #34d058;
--color-auto-green-5: #28a745;
--color-auto-green-6: #22863a;
--color-auto-green-7: #176f2c;
--color-auto-green-8: #165c26;
--color-auto-green-9: #144620;
--color-auto-orange-0: #fff8f2;
--color-auto-orange-1: #ffebda;
--color-auto-orange-2: #ffd1ac;
--color-auto-orange-3: #ffab70;
--color-auto-orange-4: #fb8532;
--color-auto-orange-5: #f66a0a;
--color-auto-orange-6: #e36209;
--color-auto-orange-7: #d15704;
--color-auto-orange-8: #c24e00;
--color-auto-orange-9: #a04100;
--color-auto-pink-0: #ffeef8;
--color-auto-pink-1: #fedbf0;
--color-auto-pink-2: #f9b3dd;
--color-auto-pink-3: #f692ce;
--color-auto-pink-4: #ec6cb9;
--color-auto-pink-5: #ea4aaa;
--color-auto-pink-6: #d03592;
--color-auto-pink-7: #b93a86;
--color-auto-pink-8: #99306f;
--color-auto-pink-9: #6d224f;
--color-auto-purple-0: #f5f0ff;
--color-auto-purple-1: #e6dcfd;
--color-auto-purple-2: #d1bcf9;
--color-auto-purple-3: #b392f0;
--color-auto-purple-4: #8a63d2;
--color-auto-purple-5: #6f42c1;
--color-auto-purple-6: #5a32a3;
--color-auto-purple-7: #4c2889;
--color-auto-purple-8: #3a1d6e;
--color-auto-purple-9: #29134e;
--color-auto-red-0: #ffeef0;
--color-auto-red-1: #ffdce0;
--color-auto-red-2: #fdaeb7;
--color-auto-red-3: #f97583;
--color-auto-red-4: #ea4a5a;
--color-auto-red-5: #d73a49;
--color-auto-red-6: #cb2431;
--color-auto-red-7: #b31d28;
--color-auto-red-8: #9e1c23;
--color-auto-red-9: #86181d;
--color-auto-white: #fff;
--color-auto-yellow-0: #fffdef;
--color-auto-yellow-1: #fffbdd;
--color-auto-yellow-2: #fff5b1;
--color-auto-yellow-3: #ffea7f;
--color-auto-yellow-4: #ffdf5d;
--color-auto-yellow-5: #ffd33d;
--color-auto-yellow-6: #f9c513;
--color-auto-yellow-7: #dbab09;
--color-auto-yellow-8: #b08800;
--color-auto-yellow-9: #735c0f;
--color-autocomplete-row-border: #eaecef;
--color-autocomplete-shadow: 0 3px 6px rgba(149, 157, 165, 0.15);
--color-avatar-bg: #fff;
--color-avatar-border: transparent;
--color-avatar-child-shadow: -2px -2px 0 hsla(0, 0%, 100%, 0.8);
--color-avatar-stack-fade: #d1d5da;
--color-avatar-stack-fade-more: #e1e4e8;
--color-bg-backdrop: rgba(27, 31, 35, 0.5);
--color-bg-canvas: #fff;
--color-bg-canvas-inset: #f6f8fa;
--color-bg-canvas-inverse: #24292e;
--color-bg-canvas-mobile: #fff;
--color-bg-danger: #ffeef0;
--color-bg-danger-inverse: #d73a49;
--color-bg-discussions-row-emoji-box: rgba(209, 213, 218, 0.5);
--color-bg-info: #f1f8ff;
--color-bg-info-inverse: #0366d6;
--color-bg-overlay: #fff;
--color-bg-primary: #fff;
--color-bg-secondary: #fafbfc;
--color-bg-success: #dcffe4;
--color-bg-success-inverse: #28a745;
--color-bg-tertiary: #f6f8fa;
--color-bg-warning: #fff5b1;
--color-bg-warning-inverse: #ffd33d;
--color-blankslate-icon: #a3aab1;
--color-blob-line-highlight-bg: #fffbdd;
--color-blob-line-highlight-border: transparent;
--color-border-danger: #d73a49;
--color-border-info: #0366d6;
--color-border-inverse: #fff;
--color-border-overlay: #e1e4e8;
--color-border-primary: #e1e4e8;
--color-border-secondary: #eaecef;
--color-border-success: #34d058;
--color-border-tertiary: #d1d5da;
--color-border-warning: #f9c513;
--color-box-bg-info: #f1f8ff;
--color-box-bg-warning: #fffdef;
--color-box-blue-border: #c8e1ff;
--color-box-border-info: rgba(3, 102, 214, 0.2);
--color-box-border-warning: rgba(255, 211, 61, 0.4);
--color-box-header-blue-bg: #f1f8ff;
--color-box-header-blue-border: #c8e1ff;
--color-box-row-blue-bg: #f1f8ff;
--color-box-row-yellow-bg: #fffbdd;
--color-branch-name-bg: #eaf5ff;
--color-branch-name-icon: #a8bbd0;
--color-branch-name-link-bg: #eaf5ff;
--color-branch-name-link-icon: #a8bbd0;
--color-branch-name-link-text: #0366d6;
--color-branch-name-text: rgba(27, 31, 35, 0.6);
--color-btn-bg: #fafbfc;
--color-btn-border: rgba(27, 31, 35, 0.15);
--color-btn-counter-bg: rgba(27, 31, 35, 0.08);
--color-btn-danger-counter-bg: rgba(215, 58, 73, 0.1);
--color-btn-danger-disabled-bg: #fafbfc;
--color-btn-danger-disabled-counter-bg: rgba(215, 58, 73, 0.05);
--color-btn-danger-disabled-text: rgba(215, 58, 73, 0.5);
--color-btn-danger-focus-border: rgba(27, 31, 35, 0.15);
--color-btn-danger-focus-shadow: 0 0 0 3px rgba(203, 36, 49, 0.4);
--color-btn-danger-hover-bg: #cb2431;
--color-btn-danger-hover-border: rgba(27, 31, 35, 0.15);
--color-btn-danger-hover-counter-bg: hsla(0, 0%, 100%, 0.2);
--color-btn-danger-hover-inset-shadow: inset 0 1px 0 hsla(0, 0%, 100%, 0.03);
--color-btn-danger-hover-shadow: 0 1px 0 rgba(27, 31, 35, 0.1);
--color-btn-danger-hover-text: #fff;
--color-btn-danger-selected-bg: #d42d3d;
--color-btn-danger-selected-border: rgba(27, 31, 35, 0.15);
--color-btn-danger-selected-shadow: inset 0 1px 0 rgba(134, 24, 29, 0.2);
--color-btn-danger-selected-text: #fff;
--color-btn-danger-text: #d73a49;
--color-btn-focus-bg: #fafbfc;
--color-btn-focus-border: rgba(27, 31, 35, 0.15);
--color-btn-focus-shadow: 0 0 0 3px rgba(3, 102, 214, 0.3);
--color-btn-hover-bg: #f3f4f6;
--color-btn-hover-border: rgba(27, 31, 35, 0.15);
--color-btn-inset-shadow: inset 0 1px 0 hsla(0, 0%, 100%, 0.25);
--color-btn-outline-counter-bg: rgba(3, 102, 214, 0.1);
--color-btn-outline-disabled-bg: #fafbfc;
--color-btn-outline-disabled-counter-bg: rgba(3, 102, 214, 0.05);
--color-btn-outline-disabled-text: rgba(3, 102, 214, 0.5);
--color-btn-outline-focus-border: rgba(27, 31, 35, 0.15);
--color-btn-outline-focus-shadow: 0 0 0 3px rgba(0, 92, 197, 0.4);
--color-btn-outline-hover-bg: #0366d6;
--color-btn-outline-hover-border: rgba(27, 31, 35, 0.15);
--color-btn-outline-hover-counter-bg: hsla(0, 0%, 100%, 0.2);
--color-btn-outline-hover-inset-shadow: inset 0 1px 0 hsla(0, 0%, 100%, 0.03);
--color-btn-outline-hover-shadow: 0 1px 0 rgba(27, 31, 35, 0.1);
--color-btn-outline-hover-text: #fff;
--color-btn-outline-selected-bg: #035fc7;
--color-btn-outline-selected-border: rgba(27, 31, 35, 0.15);
--color-btn-outline-selected-shadow: inset 0 1px 0 rgba(5, 38, 76, 0.2);
--color-btn-outline-selected-text: #fff;
--color-btn-outline-text: #0366d6;
--color-btn-primary-bg: #2ea44f;
--color-btn-primary-border: rgba(27, 31, 35, 0.15);
--color-btn-primary-counter-bg: hsla(0, 0%, 100%, 0.2);
--color-btn-primary-disabled-bg: #94d3a2;
--color-btn-primary-disabled-border: rgba(27, 31, 35, 0.1);
--color-btn-primary-disabled-text: hsla(0, 0%, 100%, 0.8);
--color-btn-primary-focus-bg: #2ea44f;
--color-btn-primary-focus-border: rgba(27, 31, 35, 0.15);
--color-btn-primary-focus-shadow: 0 0 0 3px rgba(46, 164, 79, 0.4);
--color-btn-primary-hover-bg: #2c974b;
--color-btn-primary-hover-border: rgba(27, 31, 35, 0.15);
--color-btn-primary-icon: hsla(0, 0%, 100%, 0.8);
--color-btn-primary-inset-shadow: inset 0 1px 0 hsla(0, 0%, 100%, 0.03);
--color-btn-primary-selected-bg: #2a8f47;
--color-btn-primary-selected-shadow: inset 0 1px 0 rgba(20, 70, 32, 0.2);
--color-btn-primary-shadow: 0 1px 0 rgba(27, 31, 35, 0.1);
--color-btn-primary-text: #fff;
--color-btn-selected-bg: #edeff2;
--color-btn-shadow: 0 1px 0 rgba(27, 31, 35, 0.04);
--color-btn-shadow-active: inset 0 0.15em 0.3em rgba(27, 31, 35, 0.15);
--color-btn-shadow-input-focus: 0 0 0 0.2em rgba(3, 102, 214, 0.3);
--color-btn-text: #24292e;
--color-calendar-graph-day-L1-bg: #9be9a8;
--color-calendar-graph-day-L1-border: rgba(27, 31, 35, 0.06);
--color-calendar-graph-day-L2-bg: #40c463;
--color-calendar-graph-day-L2-border: rgba(27, 31, 35, 0.06);
--color-calendar-graph-day-L3-bg: #30a14e;
--color-calendar-graph-day-L3-border: rgba(27, 31, 35, 0.06);
--color-calendar-graph-day-L4-bg: #216e39;
--color-calendar-graph-day-L4-border: rgba(27, 31, 35, 0.06);
--color-calendar-graph-day-bg: #ebedf0;
--color-calendar-graph-day-border: rgba(27, 31, 35, 0.06);
--color-calendar-halloween-graph-day-L1-bg: #ffee4a;
--color-calendar-halloween-graph-day-L2-bg: #ffc501;
--color-calendar-halloween-graph-day-L3-bg: #fe9600;
--color-calendar-halloween-graph-day-L4-bg: #03001c;
--color-checks-donut-error: #cb2431;
--color-checks-donut-neutral: #959da5;
--color-checks-donut-pending: #dbab09;
--color-checks-donut-success: #28a745;
--color-code-selection-bg: #c8e1ff;
--color-codemirror-activeline-bg: #fafbfc;
--color-codemirror-bg: #fff;
--color-codemirror-cursor: #24292e;
--color-codemirror-guttermarker-subtle-text: #d1d5da;
--color-codemirror-guttermarker-text: #fff;
--color-codemirror-gutters-bg: #fff;
--color-codemirror-linenumber-text: #959da5;
--color-codemirror-lines-bg: #fff;
--color-codemirror-matchingbracket-text: #24292e;
--color-codemirror-selection-bg: #c8e1ff;
--color-codemirror-syntax-comment: #6a737d;
--color-codemirror-syntax-constant: #005cc5;
--color-codemirror-syntax-entity: #6f42c1;
--color-codemirror-syntax-keyword: #d73a49;
--color-codemirror-syntax-storage: #d73a49;
--color-codemirror-syntax-string: #032f62;
--color-codemirror-syntax-support: #005cc5;
--color-codemirror-syntax-variable: #e36209;
--color-codemirror-text: #24292e;
--color-counter-bg: rgba(209, 213, 218, 0.5);
--color-counter-primary-bg: #6a737d;
--color-counter-primary-text: #fff;
--color-counter-secondary-text: #6a737d;
--color-counter-text: #24292e;
--color-diff-addition-bg: #e6ffed;
--color-diff-addition-border: #34d058;
--color-diff-addition-text: #22863a;
--color-diff-blob-addition-line-bg: #e6ffed;
--color-diff-blob-addition-num-bg: #cdffd8;
--color-diff-blob-addition-num-hover-text: rgba(27, 31, 35, 0.6);
--color-diff-blob-addition-num-text: rgba(27, 31, 35, 0.3);
--color-diff-blob-addition-word-bg: #acf2bd;
--color-diff-blob-comment-button-bg: #0366d6;
--color-diff-blob-comment-button-gradient-bg: #0372ef;
--color-diff-blob-comment-button-icon: #fff;
--color-diff-blob-deletion-line-bg: #ffeef0;
--color-diff-blob-deletion-num-bg: #ffdce0;
--color-diff-blob-deletion-num-hover-text: rgba(27, 31, 35, 0.6);
--color-diff-blob-deletion-num-text: rgba(27, 31, 35, 0.3);
--color-diff-blob-deletion-word-bg: #fdb8c0;
--color-diff-blob-empty-block-bg: #fafbfc;
--color-diff-blob-expander-hover-bg: #0366d6;
--color-diff-blob-expander-hover-icon: #fff;
--color-diff-blob-expander-icon: #586069;
--color-diff-blob-hunk-line-bg: #f1f8ff;
--color-diff-blob-hunk-num-bg: #dbedff;
--color-diff-blob-hunk-text: rgba(27, 31, 35, 0.7);
--color-diff-blob-num-hover-text: rgba(27, 31, 35, 0.6);
--color-diff-blob-num-text: rgba(27, 31, 35, 0.3);
--color-diff-blob-selected-line-highlight-bg: rgba(255, 223, 93, 0.2);
--color-diff-blob-selected-line-highlight-border: #ffd33d;
--color-diff-blob-selected-line-highlight-mix-blend-mode: multiply;
--color-diff-change-bg: #fff5b1;
--color-diff-change-border: #f9c513;
--color-diff-change-text: #b08800;
--color-diff-deletion-bg: #ffeef0;
--color-diff-deletion-border: #d73a49;
--color-diff-deletion-text: #cb2431;
--color-diffstat-addition-bg: #28a745;
--color-diffstat-addition-border: #28a745;
--color-diffstat-deletion-bg: #d73a49;
--color-diffstat-deletion-border: #d73a49;
--color-diffstat-neutral-bg: #d1d5da;
--color-diffstat-neutral-border: #d1d5da;
--color-discussion-bg-success: #28a745;
--color-discussion-border: #a2cbac;
--color-discussions-answer-border: #28a745;
--color-discussions-answer-icon: #22863a;
--color-discussions-answer-text: #22863a;
--color-discussions-state-answered-icon: #fff;
--color-drag-and-drop-border: #c3c8cf;
--color-dropdown-shadow: 0 8px 24px rgba(149, 157, 165, 0.2);
--color-fade-black-10: rgba(27, 31, 35, 0.1);
--color-fade-black-15: rgba(27, 31, 35, 0.15);
--color-fade-black-30: rgba(27, 31, 35, 0.3);
--color-fade-black-50: rgba(27, 31, 35, 0.5);
--color-fade-black-70: rgba(27, 31, 35, 0.7);
--color-fade-black-85: rgba(27, 31, 35, 0.85);
--color-fade-fg-10: rgba(27, 31, 35, 0.1);
--color-fade-fg-15: rgba(27, 31, 35, 0.15);
--color-fade-fg-30: rgba(27, 31, 35, 0.3);
--color-fade-fg-50: rgba(27, 31, 35, 0.5);
--color-fade-fg-70: rgba(27, 31, 35, 0.7);
--color-fade-fg-85: rgba(27, 31, 35, 0.85);
--color-fade-white-10: hsla(0, 0%, 100%, 0.1);
--color-fade-white-15: hsla(0, 0%, 100%, 0.15);
--color-fade-white-30: hsla(0, 0%, 100%, 0.3);
--color-fade-white-50: hsla(0, 0%, 100%, 0.5);
--color-fade-white-70: hsla(0, 0%, 100%, 0.7);
--color-fade-white-85: hsla(0, 0%, 100%, 0.85);
--color-files-explorer-icon: #79b8ff;
--color-filter-item-bar-bg: #eff3f6;
--color-footer-invertocat-octicon: #d1d5da;
--color-footer-invertocat-octicon-hover: #6a737d;
--color-global-nav-bg: #24292e;
--color-global-nav-icon: #fff;
--color-global-nav-input-bg: #fafbfc;
--color-global-nav-input-border: #fafbfc;
--color-global-nav-input-icon: #d1d5da;
--color-global-nav-input-placeholder: #959da5;
--color-global-nav-logo: #fff;
--color-global-nav-text: #fff;
--color-header-bg: #24292e;
--color-header-logo: #fff;
--color-header-search-bg: #24292e;
--color-header-search-border: #444d56;
--color-header-text: hsla(0, 0%, 100%, 0.7);
--color-hidden-text-expander-bg: #dfe2e5;
--color-hidden-text-expander-bg-hover: #c6cbd1;
--color-hl-author-bg: #f1f8ff;
--color-hl-author-border: #c8e1ff;
--color-icon-danger: #d73a49;
--color-icon-info: #0366d6;
--color-icon-primary: #24292e;
--color-icon-secondary: #586069;
--color-icon-success: #22863a;
--color-icon-tertiary: #959da5;
--color-icon-warning: #b08800;
--color-input-bg: #fff;
--color-input-border: #e1e4e8;
--color-input-contrast-bg: #fafbfc;
--color-input-disabled-bg: #fff;
--color-input-disabled-border: #e1e4e8;
--color-input-error-border: #cb2431;
--color-input-shadow: inset 0 1px 2px rgba(27, 31, 35, 0.075);
--color-input-tooltip-error-bg: #ffeef0;
--color-input-tooltip-error-border: #f97583;
--color-input-tooltip-error-text: #86181d;
--color-input-tooltip-success-bg: #dcffe4;
--color-input-tooltip-success-border: #34d058;
--color-input-tooltip-success-text: #144620;
--color-input-tooltip-warning-bg: #fff5b1;
--color-input-tooltip-warning-border: #f9c513;
--color-input-tooltip-warning-text: #735c0f;
--color-input-warning-border: #f9c513;
--color-label-border: #e1e4e8;
--color-label-danger-border: #cb2431;
--color-label-danger-text: #d73a49;
--color-label-info-border: #0366d6;
--color-label-info-text: #0366d6;
--color-label-orange-border: #f66a0a;
--color-label-orange-text: #c24e00;
--color-label-primary-border: #6a737d;
--color-label-primary-text: #24292e;
--color-label-secondary-border: #e1e4e8;
--color-label-secondary-text: #586069;
--color-label-success-border: #28a745;
--color-label-success-text: #22863a;
--color-label-warning-border: #b08800;
--color-label-warning-text: #735c0f;
--color-logo-subdued: #d1d5da;
--color-markdown-blockquote-border: #dfe2e5;
--color-markdown-code-bg: rgba(27, 31, 35, 0.05);
--color-markdown-frame-border: #dfe2e5;
--color-markdown-table-border: #dfe2e5;
--color-markdown-table-tr-border: #c6cbd1;
--color-marketing-icon-primary: #2188ff;
--color-marketing-icon-secondary: #79b8ff;
--color-menu-bg-active: transparent;
--color-menu-border-active: #f9826c;
--color-menu-heading-text: #24292e;
--color-merge-box-error-icon-bg: #d73a49;
--color-merge-box-error-icon-border: transparent;
--color-merge-box-error-icon-text: #fff;
--color-merge-box-error-indicator-bg: #d73a49;
--color-merge-box-error-indicator-border: transparent;
--color-merge-box-merged-box-border: #6f42c1;
--color-merge-box-merged-icon-bg: #6f42c1;
--color-merge-box-merged-icon-border: transparent;
--color-merge-box-merged-icon-text: #fff;
--color-merge-box-neutral-icon-bg: #6a737d;
--color-merge-box-neutral-icon-border: transparent;
--color-merge-box-neutral-icon-text: #fff;
--color-merge-box-neutral-indicator-bg: #6a737d;
--color-merge-box-neutral-indicator-border: transparent;
--color-merge-box-success-icon-bg: #28a745;
--color-merge-box-success-icon-border: transparent;
--color-merge-box-success-icon-text: #fff;
--color-merge-box-success-indicator-bg: #28a745;
--color-merge-box-success-indicator-border: transparent;
--color-merge-box-warning-box-border: #ffd33d;
--color-merge-box-warning-icon-bg: #dbab09;
--color-merge-box-warning-icon-border: transparent;
--color-merge-box-warning-icon-text: #fff;
--color-merge-box-warning-merge-highlight: transparent;
--color-notifications-button-hover-bg: #e1e4e8;
--color-notifications-button-hover-text: #24292e;
--color-notifications-button-text: #586069;
--color-notifications-row-bg: #fff;
--color-notifications-row-read-bg: #f6f8fa;
--color-pr-state-closed-bg: #d73a49;
--color-pr-state-closed-border: transparent;
--color-pr-state-closed-text: #fff;
--color-pr-state-draft-bg: #6a737d;
--color-pr-state-draft-border: transparent;
--color-pr-state-draft-text: #fff;
--color-pr-state-merged-bg: #6f42c1;
--color-pr-state-merged-border: transparent;
--color-pr-state-merged-text: #fff;
--color-pr-state-open-bg: #28a745;
--color-pr-state-open-border: transparent;
--color-pr-state-open-text: #fff;
--color-prettylights-syntax-brackethighlighter-angle: #586069;
--color-prettylights-syntax-brackethighlighter-unmatched: #b31d28;
--color-prettylights-syntax-carriage-return-bg: #d73a49;
--color-prettylights-syntax-carriage-return-text: #fafbfc;
--color-prettylights-syntax-comment: #6a737d;
--color-prettylights-syntax-constant: #005cc5;
--color-prettylights-syntax-constant-other-reference-link: #032f62;
--color-prettylights-syntax-entity: #6f42c1;
--color-prettylights-syntax-entity-tag: #22863a;
--color-prettylights-syntax-invalid-illegal-bg: #b31d28;
--color-prettylights-syntax-invalid-illegal-text: #fafbfc;
--color-prettylights-syntax-keyword: #d73a49;
--color-prettylights-syntax-markup-bold: #24292e;
--color-prettylights-syntax-markup-changed-bg: #ffebda;
--color-prettylights-syntax-markup-changed-text: #e36209;
--color-prettylights-syntax-markup-deleted-bg: #ffeef0;
--color-prettylights-syntax-markup-deleted-text: #b31d28;
--color-prettylights-syntax-markup-heading: #005cc5;
--color-prettylights-syntax-markup-ignored-bg: #005cc5;
--color-prettylights-syntax-markup-ignored-text: #f6f8fa;
--color-prettylights-syntax-markup-inserted-bg: #f0fff4;
--color-prettylights-syntax-markup-inserted-text: #22863a;
--color-prettylights-syntax-markup-italic: #24292e;
--color-prettylights-syntax-markup-list: #735c0f;
--color-prettylights-syntax-meta-diff-range: #6f42c1;
--color-prettylights-syntax-storage-modifier-import: #24292e;
--color-prettylights-syntax-string: #032f62;
--color-prettylights-syntax-string-regexp: #22863a;
--color-prettylights-syntax-sublimelinter-gutter-mark: #959da5;
--color-prettylights-syntax-variable: #e36209;
--color-previewable-comment-form-border: #c3c8cf;
--color-profile-color-modes-toggle-moon: #ffdf5d;
--color-profile-color-modes-toggle-thumb-bg: #2f363d;
--color-profile-color-modes-toggle-track-bg: #fff;
--color-profile-color-modes-toggle-track-border: #d1d5da;
--color-project-card-bg: #fff;
--color-project-gradient-in: #fff;
--color-project-gradient-out: hsla(0, 0%, 100%, 0);
--color-project-header-bg: #24292e;
--color-project-sidebar-bg: #fff;
--color-promo-color-modes-toggle-moon: #ffdf5d;
--color-promo-color-modes-toggle-thumb-bg: #2f363d;
--color-promo-color-modes-toggle-track-bg: #fff;
--color-promo-color-modes-toggle-track-border: #d1d5da;
--color-repo-language-color-border: rgba(27, 31, 35, 0.1);
--color-scale-black: #1b1f23;
--color-scale-blue-0: #f1f8ff;
--color-scale-blue-1: #dbedff;
--color-scale-blue-2: #c8e1ff;
--color-scale-blue-3: #79b8ff;
--color-scale-blue-4: #2188ff;
--color-scale-blue-5: #0366d6;
--color-scale-blue-6: #005cc5;
--color-scale-blue-7: #044289;
--color-scale-blue-8: #032f62;
--color-scale-blue-9: #05264c;
--color-scale-gray-0: #fafbfc;
--color-scale-gray-1: #f6f8fa;
--color-scale-gray-2: #e1e4e8;
--color-scale-gray-3: #d1d5da;
--color-scale-gray-4: #959da5;
--color-scale-gray-5: #6a737d;
--color-scale-gray-6: #586069;
--color-scale-gray-7: #444d56;
--color-scale-gray-8: #2f363d;
--color-scale-gray-9: #24292e;
--color-scale-green-0: #f0fff4;
--color-scale-green-1: #dcffe4;
--color-scale-green-2: #bef5cb;
--color-scale-green-3: #85e89d;
--color-scale-green-4: #34d058;
--color-scale-green-5: #28a745;
--color-scale-green-6: #22863a;
--color-scale-green-7: #176f2c;
--color-scale-green-8: #165c26;
--color-scale-green-9: #144620;
--color-scale-orange-0: #fff8f2;
--color-scale-orange-1: #ffebda;
--color-scale-orange-2: #ffd1ac;
--color-scale-orange-3: #ffab70;
--color-scale-orange-4: #fb8532;
--color-scale-orange-5: #f66a0a;
--color-scale-orange-6: #e36209;
--color-scale-orange-7: #d15704;
--color-scale-orange-8: #c24e00;
--color-scale-orange-9: #a04100;
--color-scale-pink-0: #ffeef8;
--color-scale-pink-1: #fedbf0;
--color-scale-pink-2: #f9b3dd;
--color-scale-pink-3: #f692ce;
--color-scale-pink-4: #ec6cb9;
--color-scale-pink-5: #ea4aaa;
--color-scale-pink-6: #d03592;
--color-scale-pink-7: #b93a86;
--color-scale-pink-8: #99306f;
--color-scale-pink-9: #6d224f;
--color-scale-purple-0: #f5f0ff;
--color-scale-purple-1: #e6dcfd;
--color-scale-purple-2: #d1bcf9;
--color-scale-purple-3: #b392f0;
--color-scale-purple-4: #8a63d2;
--color-scale-purple-5: #6f42c1;
--color-scale-purple-6: #5a32a3;
--color-scale-purple-7: #4c2889;
--color-scale-purple-8: #3a1d6e;
--color-scale-purple-9: #29134e;
--color-scale-red-0: #ffeef0;
--color-scale-red-1: #ffdce0;
--color-scale-red-2: #fdaeb7;
--color-scale-red-3: #f97583;
--color-scale-red-4: #ea4a5a;
--color-scale-red-5: #d73a49;
--color-scale-red-6: #cb2431;
--color-scale-red-7: #b31d28;
--color-scale-red-8: #9e1c23;
--color-scale-red-9: #86181d;
--color-scale-white: #fff;
--color-scale-yellow-0: #fffdef;
--color-scale-yellow-1: #fffbdd;
--color-scale-yellow-2: #fff5b1;
--color-scale-yellow-3: #ffea7f;
--color-scale-yellow-4: #ffdf5d;
--color-scale-yellow-5: #ffd33d;
--color-scale-yellow-6: #f9c513;
--color-scale-yellow-7: #dbab09;
--color-scale-yellow-8: #b08800;
--color-scale-yellow-9: #735c0f;
--color-search-hover-hl: #fff;
--color-search-keyword-hl: #fffbdd;
--color-select-menu-backdrop-bg: rgba(27, 31, 35, 0.5);
--color-select-menu-backdrop-border: transparent;
--color-select-menu-border-secondary: #eaecef;
--color-select-menu-shadow: 0 0 18px rgba(27, 31, 35, 0.4);
--color-select-menu-tap-focus-bg: #dbedff;
--color-select-menu-tap-highlight: rgba(209, 213, 218, 0.5);
--color-shadow-extra-large: 0 12px 48px rgba(149, 157, 165, 0.3);
--color-shadow-highlight: inset 0 1px 0 hsla(0, 0%, 100%, 0.25);
--color-shadow-inset: inset 0 1px 0 rgba(225, 228, 232, 0.2);
--color-shadow-large: 0 8px 24px rgba(149, 157, 165, 0.2);
--color-shadow-medium: 0 3px 6px rgba(149, 157, 165, 0.15);
--color-shadow-small: 0 1px 0 rgba(27, 31, 35, 0.04);
--color-sidenav-border-active: #f9826c;
--color-sidenav-selected-bg: #fff;
--color-social-count-bg: #fff;
--color-state-focus-border: #0366d6;
--color-state-focus-shadow: 0 0 0 3px rgba(3, 102, 214, 0.3);
--color-state-hover-primary-bg: #0366d6;
--color-state-hover-primary-border: #0366d6;
--color-state-hover-primary-icon: #fff;
--color-state-hover-primary-text: #fff;
--color-state-hover-secondary-bg: #f6f8fa;
--color-state-hover-secondary-border: #f6f8fa;
--color-state-selected-primary-bg: #0366d6;
--color-state-selected-primary-border: #0366d6;
--color-state-selected-primary-icon: #fff;
--color-state-selected-primary-text: #fff;
--color-text-danger: #cb2431;
--color-text-disabled: #6a737d;
--color-text-inverse: #fff;
--color-text-link: #0366d6;
--color-text-placeholder: #6a737d;
--color-text-primary: #24292e;
--color-text-secondary: #586069;
--color-text-success: #22863a;
--color-text-tertiary: #6a737d;
--color-text-warning: #b08800;
--color-text-white: #fff;
--color-timeline-badge-bg: #e1e4e8;
--color-timeline-merged-bg: #6f42c1;
--color-timeline-target-badge-border: #2188ff;
--color-timeline-target-badge-shadow: #c8e1ff;
--color-timeline-text: #444d56;
--color-toast-bg: #fff;
--color-toast-border: #e1e4e8;
--color-toast-danger-border: #e1e4e8;
--color-toast-danger-icon: #fff;
--color-toast-danger-icon-bg: #d73a49;
--color-toast-danger-icon-border: transparent;
--color-toast-danger-text: #24292e;
--color-toast-icon: #fff;
--color-toast-icon-bg: #0366d6;
--color-toast-icon-border: transparent;
--color-toast-loading-border: #e1e4e8;
--color-toast-loading-icon: #fff;
--color-toast-loading-icon-bg: #586069;
--color-toast-loading-icon-border: transparent;
--color-toast-loading-text: #24292e;
--color-toast-shadow: 0 8px 24px rgba(149, 157, 165, 0.2);
--color-toast-success-border: #e1e4e8;
--color-toast-success-icon: #fff;
--color-toast-success-icon-bg: #28a745;
--color-toast-success-icon-border: transparent;
--color-toast-success-text: #24292e;
--color-toast-text: #24292e;
--color-toast-warning-border: #e1e4e8;
--color-toast-warning-icon: #24292e;
--color-toast-warning-icon-bg: #ffd33d;
--color-toast-warning-icon-border: transparent;
--color-toast-warning-text: #24292e;
--color-tooltip-bg: #24292e;
--color-tooltip-text: #fff;
--color-topic-tag-active-bg: #e7f3ff;
--color-topic-tag-bg: #f1f8ff;
--color-topic-tag-hover-bg: #def;
--color-topic-tag-text: #0366d6;
--color-underlinenav-border: rgba(209, 213, 218, 0);
--color-underlinenav-border-active: #f9826c;
--color-underlinenav-border-hover: #d1d5da;
--color-underlinenav-counter-text: #24292e;
--color-underlinenav-icon: #959da5;
--color-underlinenav-icon-active: #24292e;
--color-underlinenav-icon-hover: #959da5;
--color-underlinenav-text: #24292e;
--color-underlinenav-text-active: #24292e;
--color-underlinenav-text-hover: #24292e;
--color-upload-enabled-border: #dfe2e5;
--color-upload-enabled-border-focused: #4a9eff;
--color-upvote-icon-bg: #dbedff;
--color-verified-badge-bg: #fff;
--color-verified-badge-border: #e1e4e8;
--color-verified-badge-text: #22863a;
--color-workflow-card-bg: #fff;
--color-workflow-card-connector-line: #d1d5da;
--color-workflow-card-connector-node-bg: #d1d5da;
--color-workflow-card-header-shadow: rgba(27, 31, 35, 0.04);
--color-workflow-card-progress-complete-bg: #959da5;
--color-workflow-card-progress-incomplete-bg: #e1e4e8;
}

View File

@@ -1,244 +0,0 @@
const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
const now = new Date();
let contributions;
(() => {
const dom = document.querySelector('#contributions');
if (!dom) {
return;
}
contributions = JSON.parse(dom.getAttribute('data'));
let year = 0;
for (const item of contributions) {
item.publishDate = decodeURI(item.publishDate).replace(' ','T');
item.date = new Date(item.publishDate);
if (item.date.getFullYear() > year) {
year = item.date.getFullYear();
}
item.title = decodeURI(item.title);
}
yearList();
yearly(year.toString());
})();
function yearly(year) {
let startDate;
let endDate;
if (year != now.getFullYear().toString()) {
const date = new Date(year);
startDate = new Date(date.getTime() - date.getDay() * 24 * 60 * 60 * 1000);
endDate = new Date(date.getFullYear(), 11, 31);
} else {
endDate = now;
startDate = new Date(endDate.getTime() - 364 * 24 * 60 * 60 * 1000 - endDate.getDay() * 24 * 60 * 60 * 1000);
}
startDate.setHours(0, 0, 0, 0);
endDate.setHours(23, 59, 59, 999);
const posts = [];
const ms = [];
for (const item of contributions) {
if (item.date >= startDate && item.date <= endDate) {
posts.push(item);
if (!ms.includes(item.date.getMonth())) {
ms.push(item.date.getMonth());
}
}
}
posts.sort((a, b) => { return b - a });
document.querySelector('#posts-activity').innerHTML = '';
for (const month of ms) {
const node = document.createElement('div');
node.innerHTML = monthly(year, month, posts);
document.querySelector('#posts-activity').appendChild(node);
}
graph(year, posts, startDate, endDate);
const yearList = document.querySelectorAll('.js-year-link');
for (const elem of yearList) {
if (elem.innerText == year) {
elem.classList.add('selected');
} else {
elem.classList.remove('selected');
}
}
}
function monthly(year, month, posts) {
const monthPosts = posts.filter(post =>
post.date.getFullYear().toString() === year && post.date.getMonth() === month
);
let liHtml = '';
for (const post of monthPosts) {
liHtml += `<li class="d-flex mt-1 py-1 flex-row flex-nowrap flex-justify-between"><span class="flex-auto css-truncate css-truncate-target">
<span class="profile-rollup-icon">
<svg class="octicon octicon-repo v-align-middle text-gray-light mr-1" viewBox="0 0 12 16" version="1.1"
width="12" height="16" aria-hidden="true">
<path fill-rule="evenodd"
d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z">
</path>
</svg>
</span>
<a class="mr-2 " data-hovercard-type="repository" href="${post.link}">${post.title}</a>
</span>
<time title="This post was made on ${months[post.date.getMonth()]} ${post.date.getDate()}" class="f6 text-gray-light pt-1">
${months[post.date.getMonth()]} ${post.date.getDate()}
</time></li>`;
}
let html = `
<div class="contribution-activity-listing float-left col-12 col-lg-10">
<div class="profile-timeline discussion-timeline width-full pb-4">
<h3 class="profile-timeline-month-heading bg-white d-inline-block h6 pr-2 py-1">
${months[month]} <span class="text-gray">${monthPosts.length > 0 ? monthPosts[0].date.getFullYear() : year}</span>
</h3>
<div class="profile-rollup-wrapper py-4 pl-4 position-relative ml-3 js-details-container Details open">
<span class="discussion-item-icon"><svg class="octicon octicon-repo" viewBox="0 0 12 16" version="1.1" width="12"
height="16" aria-hidden="true">
<path fill-rule="evenodd"
d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z">
</path>
</svg></span>
<button type="button" class="btn-link f4 muted-link no-underline lh-condensed width-full js-details-target "
aria-expanded="false">
<span class="float-left ws-normal text-left">
Created ${monthPosts.length} post${monthPosts.length > 1 ? 's' : ''}
</span>
<span class="d-inline-block float-right">
<span class="profile-rollup-toggle-closed float-right" aria_label="Collapse"><svg class="octicon octicon-fold"
viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true">
<path fill-rule="evenodd"
d="M7 9l3 3H8v3H6v-3H4l3-3zm3-6H8V0H6v3H4l3 3 3-3zm4 2c0-.55-.45-1-1-1h-2.5l-1 1h3l-2 2h-7l-2-2h3l-1-1H1c-.55 0-1 .45-1 1l2.5 2.5L0 10c0 .55.45 1 1 1h2.5l1-1h-3l2-2h7l2 2h-3l1 1H13c.55 0 1-.45 1-1l-2.5-2.5L14 5z">
</path>
</svg></span>
<span class="profile-rollup-toggle-open float-right" aria_label="Expand"><svg class="octicon octicon-unfold"
viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true">
<path fill-rule="evenodd"
d="M11.5 7.5L14 10c0 .55-.45 1-1 1H9v-1h3.5l-2-2h-7l-2 2H5v1H1c-.55 0-1-.45-1-1l2.5-2.5L0 5c0-.55.45-1 1-1h4v1H1.5l2 2h7l2-2H9V4h4c.55 0 1 .45 1 1l-2.5 2.5zM6 6h2V3h2L7 0 4 3h2v3zm2 3H6v3H4l3 3 3-3H8V9z">
</path>
</svg></span>
</span>
</button>
<ul class="profile-rollup-content mt-1" data-repository-hovercards-enabled="" id="posts-activity-ul">
${liHtml}
</ul>
</div>
</div>
</div>
`;
return html;
}
function yearList() {
const years = [];
for (const item of contributions) {
const year = item.date.getFullYear();
if (!years.includes(year)) {
years.push(year);
}
}
years.sort((a, b) => { return b - a });
for (let i = 0; i < years.length; i++) {
const year = years[i];
const node = document.createElement('li');
node.innerHTML = `<a class="js-year-link filter-item px-3 mb-2 py-2" aria-label="Post activity in ${year}" onclick="yearly('${year}') | event.stopPropagation()">${year}</a>`;
document.querySelector('#year-list').appendChild(node);
}
}
function graph(year, posts, startDate, endDate) {
const postsStr = posts.length === 1 ? "post" : "posts";
if (year == now.getFullYear().toString()) {
document.querySelector('#posts-count').innerText = `${posts.length} ${postsStr} in the last year`;
} else {
document.querySelector('#posts-count').innerText = `${posts.length} ${postsStr} in ${year}`;
}
let html = ``;
const count = {};
for (const post of posts) {
const date = `${post.date.getFullYear()}-${(post.date.getMonth() + 1).toString().padStart(2, '0')}-${post.date.getDate().toString().padStart(2, '0')}`;
if (count[date] == undefined) {
count[date] = 1;
} else {
count[date]++;
}
}
const monthPos = [];
let startMonth = -1;
for (let i = 0; i < 53; i++) {
html += `<g transform="translate(${i * 16}, 0)">`;
for (let j = 0; j < 7; j++) {
const date = new Date(startDate.getTime() + (i * 7 + j) * 24 * 60 * 60 * 1000);
const dataDate = `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')}`;
if (date > endDate) {
continue;
}
if (j == 0) {
if (i <= 51) {
if (startMonth != date.getMonth()) {
monthPos.push(i);
startMonth = date.getMonth();
}
}
}
let c;
if (count[dataDate] == undefined) {
c = 0;
} else {
c = count[dataDate];
}
let color;
switch (c) {
case 0:
color = "#ebedf0";
break;
case 1:
color = "#c6e48b";
break;
case 2:
color = "#7bc96f";
break;
case 3:
color = "#239a3b";
break;
default:
color = "#196127";
}
html += `<rect class="day" width="12" height="12" x="${16 - i}" y="${j * 15}"
fill="${color}" data-count="${c}"
data-date="${dataDate}"></rect>`;
}
html += '</g>';
}
if (monthPos[1] - monthPos[0] < 2) {
monthPos[0] = -1;
}
for (let i = 0; i < monthPos.length; i++) {
const month = monthPos[i];
if (month == -1) {
continue;
}
html += `<text x="${15 * month + 16}" y="-9"
class="month">${months[(i + startDate.getMonth()) % 12]}</text>`;
}
html += `
<text text-anchor="start" class="wday" dx="-10" dy="8"
style="display: none;">Sun</text>
<text text-anchor="start" class="wday" dx="-10" dy="25">Mon</text>
<text text-anchor="start" class="wday" dx="-10" dy="32"
style="display: none;">Tue</text>
<text text-anchor="start" class="wday" dx="-10" dy="56">Wed</text>
<text text-anchor="start" class="wday" dx="-10" dy="57"
style="display: none;">Thu</text>
<text text-anchor="start" class="wday" dx="-10" dy="85">Fri</text>
<text text-anchor="start" class="wday" dx="-10" dy="81"
style="display: none;">Sat</text>
`;
document.querySelector('#graph-svg').innerHTML = html;
stopClickEvent('.day');
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

26
static/js/github-style.js Normal file
View File

@@ -0,0 +1,26 @@
function switchTheme() {
const currentStyle = currentTheme();
if (currentStyle == 'light') {
setTheme('dark');
}
else {
setTheme('light');
}
}
function setTheme(style) {
console.log(`set theme ${style}`);
document.documentElement.setAttribute('data-theme', style);
localStorage.setItem('data-theme', style);
}
function currentTheme() {
const localStyle = localStorage.getItem('data-theme');
const systemStyle = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
return localStyle || systemStyle;
}
(() => {
setTheme(currentTheme());
})();

View File

@@ -1,13 +0,0 @@
function stopClickEvent(selector) {
const elements = document.querySelectorAll(selector);
for (const current of elements) {
current.onclick = (event) => {
event.stopPropagation();
}
}
}
(() => {
stopClickEvent('.day');
stopClickEvent('.js-year-link');
})();