1
0
mirror of https://github.com/cotes2020/jekyll-theme-chirpy.git synced 2025-12-18 13:44:15 +00:00

Compare commits

..

10 Commits

Author SHA1 Message Date
Cotes Chung
493e1d934b Bump version to 2.7.2 2020-12-31 22:54:58 +08:00
Cotes Chung
b9104d0f4c Upgrade dependencies in Gemfile.lock 2020-12-31 22:38:30 +08:00
Cotes Chung
3c72298563 Improve the smooth scrolling
- Add smooth scrolling to the footnotes
- Add hash to URL
2020-12-31 21:37:17 +08:00
Henk van Achterberg
ca2194770c Update pages-deploy.yml.hook (#229)
This change will make the baseurl configuration/testing work. Previous version failed. Posts should have /index.html as suffix in my experience.
2020-12-30 22:22:42 +08:00
Cotes Chung
08fbd06c63 Optimize the DOM of post link on homepage 2020-12-29 15:39:29 +08:00
Dinesh Prasanth M K
a20fd5bf6f Fix the dir name for hosting posts 2020-12-29 06:06:36 +08:00
Cotes Chung
7a88347c63 Remove inline code extra content 2020-12-28 19:38:24 +08:00
Cotes Chung
813443b206 Improve GitHub stuff
- Add more events to the issue interceptor
- Reduce issue label
2020-12-28 02:33:06 +08:00
Cotes Chung
c381353f86 Use liquid to determine whether to render ToC 2020-12-28 02:30:32 +08:00
Cotes Chung
aa6c33526a Fix the compatibility of the smooth scrolling in Safari
Safari(at least on v14) does not support CSS property `scroll-behavior`
2020-12-28 02:28:57 +08:00
16 changed files with 137 additions and 75 deletions

View File

@@ -1,7 +1,6 @@
---
name: Bug Report
about: Create a report to help us improve
labels: suspect
---
<!-- NOTE: Please maintain all sections, otherwise the issue will be automatically closed :) -->

View File

@@ -2,9 +2,9 @@ name: "Intercept bad issue/PRs"
on:
issues:
types: [opened]
types: [opened, reopened]
pull_request:
types: [opened]
types: [opened, reopened]
jobs:
autoclose:

View File

@@ -44,28 +44,25 @@ jobs:
run: |
baseurl="$(grep '^baseurl:' _config.yml | sed "s/.*: *//;s/['\"]//g;s/#.*//")"
if [[ -n $baseurl ]]; then
echo "SPEC_TEST=_site_no_baseurl" >> $GITHUB_ENV
echo "BASE_URL=$baseurl" >> $GITHUB_ENV
fi
- name: Build Site
env:
JEKYLL_ENV: production
run: |
bundle exec jekyll b
if [[ -n $SPEC_TEST ]]; then
# Bypass the defects of htmlproofer
bundle exec jekyll b -b "" -d "$SPEC_TEST"
fi
bundle exec jekyll b -d "_site$BASE_URL"
- name: Test Site
run: |
if [[ -n $SPEC_TEST ]]; then
bash tools/test.sh -d "$SPEC_TEST"
else
bash tools/test.sh
fi
bash tools/test.sh
- name: Deploy
run: |
if [[ -n $BASE_URL ]]; then
mv _site$BASE_URL _site-rename
rm -rf _site
mv _site-rename _site
fi
bash tools/deploy.sh

View File

@@ -11,9 +11,9 @@ GEM
ethon (0.12.0)
ffi (>= 1.3.0)
eventmachine (1.2.7)
ffi (1.13.1)
ffi (1.14.2)
forwardable-extended (2.6.0)
html-proofer (3.17.4)
html-proofer (3.18.3)
addressable (~> 2.3)
mercenary (~> 0.3)
nokogumbo (~> 2.0)
@@ -24,21 +24,21 @@ GEM
http_parser.rb (0.6.0)
i18n (1.8.5)
concurrent-ruby (~> 1.0)
jekyll (4.1.1)
jekyll (4.2.0)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (~> 1.0)
jekyll-sass-converter (~> 2.0)
jekyll-watch (~> 2.0)
kramdown (~> 2.1)
kramdown (~> 2.3)
kramdown-parser-gfm (~> 1.0)
liquid (~> 4.0)
mercenary (~> 0.4.0)
pathutil (~> 0.9)
rouge (~> 3.0)
safe_yaml (~> 1.0)
terminal-table (~> 1.8)
terminal-table (~> 2.0)
jekyll-archives (2.2.1)
jekyll (>= 3.6, < 5.0)
jekyll-paginate (1.1.0)
@@ -75,18 +75,18 @@ GEM
rb-inotify (0.10.1)
ffi (~> 1.0)
rexml (3.2.4)
rouge (3.25.0)
rouge (3.26.0)
safe_yaml (1.0.5)
sassc (2.4.0)
ffi (~> 1.9)
terminal-table (1.8.0)
terminal-table (2.0.0)
unicode-display_width (~> 1.1, >= 1.1.1)
thread_safe (0.3.6)
typhoeus (1.4.0)
ethon (>= 0.9.0)
tzinfo (1.2.8)
tzinfo (1.2.9)
thread_safe (~> 0.1)
tzinfo-data (1.2020.4)
tzinfo-data (1.2020.6)
tzinfo (>= 1.0.0)
unicode-display_width (1.7.0)
wdm (0.1.1)

View File

@@ -1,3 +1,3 @@
name: Chirpy
version: 2.7.1
version: 2.7.2
homepage: https://github.com/cotes2020/jekyll-theme-chirpy/

View File

@@ -47,13 +47,13 @@
{% endif %}
</div> <!-- .access -->
{% if page.layout == 'post' and site.toc and page.toc %}
<div id="toc-wrapper" class="pl-0 pr-4 mb-5">
<span class="pl-3 pt-2 mb-2">
{% if include.toc %}
<div id="toc-wrapper" class="pl-0 pr-4 mb-5">
<span class="pl-3 pt-2 mb-2">
{{- site.data.label.panel.toc -}}
</span>
<nav id="toc" data-toggle="toc"></nav>
</div>
</span>
<nav id="toc" data-toggle="toc"></nav>
</div>
{% endif %}
</div> <!-- #panel-wrapper -->

View File

@@ -49,9 +49,9 @@ layout: page
{% for post in posts %}
<div class="post-preview">
<a href="{{ post.url | relative_url }}">
<h1>{{ post.title }}</h1>
</a>
<h1>
<a href="{{ post.url | relative_url }}">{{ post.title }}</a>
</h1>
<div class="post-content">
<p>

View File

@@ -111,7 +111,15 @@ layout: default
</div> <!-- #post-wrapper -->
{% include panel.html %}
{% assign enable_toc = false %}
{% if site.toc and page.toc %}
{% if content contains '<h2' or content contains '<h3' %}
{% assign enable_toc = true %}
{% endif %}
{% endif %}
{% include panel.html toc=enable_toc %}
</div> <!-- .row -->

View File

@@ -8,7 +8,7 @@ tags: [writing]
## Naming and Path
Create a new file named `YYYY-MM-DD-TITLE.EXTENSION` and put it in the `_post/` of the root directory. Please note that the `EXTENSION` must be one of `md` and `markdown`.
Create a new file named `YYYY-MM-DD-TITLE.EXTENSION` and put it in the `_posts/` of the root directory. Please note that the `EXTENSION` must be one of `md` and `markdown`.
## Front Matter

View File

@@ -48,7 +48,6 @@ html[mode=dark] {
:root {
font-size: 16px;
scroll-behavior: smooth;
}
body {
@@ -672,27 +671,19 @@ kbd {
margin: 0 0.3rem;
}
sup {
z-index: 1;
&:target {
@extend %anchor;
z-index: 0;
}
}
.footnotes > ol {
padding-left: 2rem;
margin-top: 0.5rem;
> li {
+ li {
margin-top: 0.3rem;
&:not(:last-child) {
margin-bottom: 0.3rem;
}
> p {
margin-left: 0.25em;
margin-top: 0;
margin-bottom: 0;
}
&:target > p {
&:target:not([scroll-focus]), &[scroll-focus=true] > p { // [scroll-focus] added by `smooth-scroll.js`
background-color: var(--footnote-target-bg);
width: fit-content;
-webkit-transition: background-color 1.5s ease-in-out;
@@ -704,14 +695,14 @@ sup {
.footnote {
@at-root a#{&} {
margin: 0 0.2em;
@include ml-mr(1px);
@include pl-pr(2px);
border-bottom-style: none !important;
-webkit-transition: background-color 1.5s ease-in-out; /* Safari prior 6.1 */
transition: background-color 1.5s ease-in-out;
}
@at-root sup:target > a#{&} {
@at-root sup:target:not([scroll-focus]), sup[scroll-focus=true] > a#{&} { // [scroll-focus] added by `smooth-scroll.js`
background-color: var(--footnote-target-bg);
padding: 0 2px;
}
}
@@ -1205,13 +1196,9 @@ img {
justify-content: center!important;
}
sup:target {
padding-top: 3.4rem;
}
.footnotes ol > li {
padding-top: 3.5rem;
margin-top: -3.2rem !important;
margin-top: -3.2rem;
&:first-child {
margin-top: -3.5rem;
}

View File

@@ -149,7 +149,7 @@ div {
}
}
[class^='language-']::before {
div[class^='language-']::before {
content: attr(lang);
position: absolute;
right: 1.8rem;
@@ -161,7 +161,7 @@ div {
}
@media (min-width: 768px) {
[class^='language-']::before {
div[class^='language-']::before {
right: 3.1rem;
}
}

View File

@@ -12,7 +12,9 @@ $(function() {
});
$("#back-to-top").click(() => {
$("body,html").scrollTop(0);
$("body,html").animate({
scrollTop: 0
}, 800);
return false;
});
});

View File

@@ -0,0 +1,80 @@
/*
Safari doesn't support CSS `scroll-behavior: smooth`,
so here is a compatible sollution for all browser to smooth scrolling
See: <https://css-tricks.com/snippets/jquery/smooth-scrolling/>
Warning: It must be called after all `<a>` tags (e.g., the dynamic TOC) are ready.
*/
$(function() {
$("a[href*='#']")
.not("[href='#']")
.not("[href='#0']")
.click(function(event) {
if (location.pathname.replace(/^\//, "") === this.pathname.replace(/^\//, "")
&& location.hostname === this.hostname) {
const REM = 16; /* 16px */
const hash = decodeURI(this.hash);
let isFnRef = RegExp(/^#fnref:/).test(hash);
let isFn = RegExp(/^#fn:/).test(hash);
let selector = hash.includes(":") ? hash.replace(/\:/, "\\:") : hash;
const target = $(selector);
if (target.length) {
event.preventDefault();
if (history.pushState) { /* add hash to URL */
history.pushState(null, null, hash);
}
let curOffset = $(this).offset().top;
let destOffset = target.offset().top;
const scrollUp = (destOffset < curOffset);
const topbarHeight = $("#topbar-wrapper").outerHeight();
if (scrollUp && isFnRef) {
/* Avoid the top-bar covering `fnref` when scrolling up
because `fnref` has no `%anchor`(see: module.scss) style. */
destOffset -= (topbarHeight + REM / 2);
}
$("html,body").animate({
scrollTop: destOffset
}, 800, () => {
var $target = $(target);
$target.focus();
const SCROLL_MARK = "scroll-focus";
/* clean up old scroll mark */
if ($(`[${ SCROLL_MARK }=true]`).length) {
$(`[${ SCROLL_MARK }=true]`).attr(SCROLL_MARK, false);
}
/* Clean :target links */
if ($(":target").length) { /* element that visited by the URL with hash */
$(":target").attr(SCROLL_MARK, false);
}
/* set scroll mark to footnotes */
if (isFn || isFnRef) {
$target.attr(SCROLL_MARK, true);
}
if ($target.is(":focus")) { /* Checking if the target was focused */
return false;
} else {
$target.attr("tabindex", "-1"); /* Adding tabindex for elements not focusable */
$target.focus(); /* Set focus again */
}
});
}
}
}); /* click() */
});

View File

@@ -1,14 +0,0 @@
/*
* Hide the empty ToC in posts.
* v2.0
* https://github.com/cotes2020/jekyll-theme-chirpy
* © 2019 Cotes Chung
* MIT Licensed
*/
$(function() {
if ($("#post-wrapper .post-content h1").length === 0
&& $("#post-wrapper .post-content h2").length === 0) {
$("#toc-wrapper").addClass("unloaded");
}
});

View File

@@ -9,3 +9,5 @@ layout: compress
---
{% include_relative _commons.js %}
{% include_relative _utils/smooth-scroll.js %}

View File

@@ -12,8 +12,9 @@ layout: compress
{% include_relative lib/_bootstrap-toc.min.js %}
{% include_relative _utils/toc-filter.js %}
{% include_relative _utils/img-hyperlink.js %}
{% include_relative _utils/lang-badge.js %}
{% comment %} `smooth-scroll.js` must be called after ToC is ready {% endcomment %}
{% include_relative _utils/smooth-scroll.js %}