AC Forked github.com:MeiK2333/github-style.git because it hard-coded the top menu and AC wanted to have "Photos" and "Posts" on the top menu.
Unfortunately, AC doesn't know his way around go
well at all, and only slightly
more HTML/CSS, so it's been a bit of a hack job. It appears that this theme
could be further enhanced by enabling
Hugo Menus.
Indeed, there's a lot of opportunity for improvement in the theme, but it's
conveneint, and it really is Github style -- right down to dark mode, which is
pretty cool.
- Adding any new
section
(directly under 'content') should cause that section to show up in the top menu - Adding content/photos adds 'photos' in the top menu (as above) but with a
gallery
icon - Added attribution for gallery icon. Maybe I can find an attribution-free one in the future?
- If the post section is "photos" and the post is pinned and has a "cover" image path, it will get included in the overview card.
---
pin: true
cover: /path/to/cover_img.png
---
- Reminder to self to occassionally see if MeiK2333 has updated upstream and follow this process to rebase if so. Last checked 2021-03-17.
hugo new site mysite
cd mysite
git submodule add [email protected]:MeiK2333/github-style.git themes/github-style
If you just installed the theme, it is already in the latest version. If not, you can update using the below commands
cd themes/github-style
git pull
Then, you need to rename the previous posts
folder to post
cd <you-project-folder>
mv content/posts content/post
hugo new readme.md
echo '`Hello World!`' > content/readme.md
---
pin: true
---
Hugo will create a post with draft: true
, change it to false in order for it to show in the website.
hugo new post/title_of_the_post.md
---
title: "title"
date: 2019-10-22T18:46:47+08:00
draft: false
summary: "The summary content"
---
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.
---
title: "title"
date: 2019-10-22T18:46:47+08:00
draft: false
---
abstraction show in the post page
<!--more-->
other content
add to config.toml
lastmod = true
[frontmatter]
lastmod = ["lastmod", ":fileModTime", ":default"]
In you post add math: true
to front matter
---
katex: math
---
Then the katex script will auto render the string enclosed be delimiters.
# replace ... with latex formula
display inline \\( ... \\)
display block $$ ... $$
baseURL = "https://meik2333.com/"
languageCode = "zh-cn"
title = "MeiK's blog"
theme = "github-style"
googleAnalytics = "UA-123456-789"
pygmentsCodeFences = true
pygmentsUseClasses = true
[params]
author = "MeiK"
description = "In solitude, where we are least alone."
github = "MeiK2333"
facebook = "MeiK2333"
twitter = "MeiK2333"
linkedin = "MeiK2333"
instagram = "MeiK2333"
tumblr = "MeiK2333"
email = "[email protected]"
url = "https://meik2333.com"
keywords = "blog, google analytics"
rss = true
lastmod = true
favicon = "/images/github.png"
location = "China"
[[params.links]]
title = "Link"
href = "https://github.com/meik2333"
[[params.links]]
title = "Link2"
href = "https://meik2333.com"
icon = "https://meik2333.com/images/avatar.png"
[frontmatter]
lastmod = ["lastmod", ":fileModTime", ":default"]
There are various way to deploy to github, here is a link to official document.
Here is an sample. Note line 22 have env HUGO_ENV="production"
, makes sure googleAnalysis is loaded during production, but is not loaded when we are testing it in localhost.
#!/bin/sh
if [ "`git status -s`" ]
then
echo "The working directory is dirty. Please commit any pending changes."
exit 1;
fi
echo "Deleting old publication"
rm -rf public
mkdir public
git worktree prune
rm -rf .git/worktrees/public/
echo "Checking out gh-pages branch into public"
git worktree add -B gh-pages public origin/gh-pages
echo "Removing existing files"
rm -rf public/*
echo "Generating site"
env HUGO_ENV="production" hugo -t github-style
echo "Updating gh-pages branch"
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.