reuixiy / hugo-theme-meme

😝 You can’t spell awesome without MemE!
https://io-oi.me/hugo-theme-meme
MIT License
1.01k stars 279 forks source link
hugo hugo-theme hugo-theme-meme json-ld pwa

English | 简体中文 | 繁體中文

MemE

Description

MemE is a powerful and highly customizable GoHugo theme for personal blogs, which focuses on elegance, simplicity, modernity, and best practices in coding.

Preview

tn.png

Browser support

MemE uses CSS variables and let statements extensively. These features are supported by the following browsers:

Internet Explorer does not support CSS variables.

Quick Start

https://gohugo.io/getting-started/quick-start/

Install Hugo (extended version)

For Arch Linux users:

~ $ sudo pacman -S hugo
~ $ hugo new site blog

For users of other systems, see: https://gohugo.io/getting-started/installing/

Install MemE

~ $ cd blog
~/blog $ git init
~/blog $ git submodule add --depth 1 https://github.com/reuixiy/hugo-theme-meme.git themes/meme

Blogging

  1. Replace config.toml with config examples.

    ~/blog $ rm config.toml && cp themes/meme/config-examples/en/config.toml config.toml
  2. Create a new post and the about page:

    ~/blog $ hugo new "posts/hello-world.md"
    ~/blog $ hugo new "about/_index.md"
  3. Now:

    ~/blog $ hugo server -D

Customize MemE

MemE uses SCSS via Hugo Pipes to generate CSS instead of static CSS file and provides a _custom.scss for customization.

Just create a ~/blog/assets/scss/custom/_custom.scss and add your own styles into this file. Your _custom.scss will override ~/blog/themes/meme/assets/scss/custom/_custom.scss and your custom CSS will be applied correctly.

Actually, you can override any template of theme in Hugo, see this unofficial mirror page: https://gohugobrasil.netlify.com/themes/customizing/

Update MemE

~/blog $ git submodule update --rebase --remote

If failed, try:

  1. Delete meme folder, e.g.

    ~/blog $ rm -rf themes/meme
  2. Clone MemE again

    ~/blog $ git clone --depth 1 https://github.com/reuixiy/hugo-theme-meme.git themes/meme

Note that MemE makes some brand new features or breaking changes sometimes, so please be sure to check the modification history of config.toml and update the related items after the update!

Awesome MemE

See #2.

Supported Front Matter

Click to expand! | Name | Description | Notes | | ------------------------------------------- | -------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | | title | \* | string | | linkTitle | \* | string | | subtitle | displayed below the title | string, Markdown supported | | date | \* | string | | lastmod | \* | string | | publishDate | \* | string | | expiryDate | \* | string | | `` eg: categories, tags, series | \* | array | | description | \* | string, Markdown supported | | summary | \* | string, Markdown supported | | images | \* | array | | slug | \* | string | | url | \* | string | | draft | \* | boolean | | isCJKLanguage | \* | boolean | | weight | \* | integer | | type | \* | string, if equal to "poetry", will use a special layout for it | | layout | \* | string | | outputs | \* | array | | aliases | \* | array | | markup | \* | string | | hideInHomepage | hide this post in homepage posts list | boolean, valid for "posts" homepage with `enableHideInHomepage` enabled | | languageCode | add `lang` attribute with this value to `
` | string | | meta | set `false` to disable post-meta | boolean, override `enablePostMeta` in `config.toml` | | displayPublishedDate | display published date in post-meta | boolean, override `displayPublishedDate` in `config.toml` | | displayModifiedDate | display modified date in post-meta | boolean, override `displayModifiedDate` in `config.toml` | | displayExpiryDate | display expiry date in post-meta | boolean, override `displayExpiryDate` in `config.toml` | | displayCategory | display category in post-meta | boolean, override `displayCategory` in `config.toml` | | displayWordCount | display word count in post-meta | boolean, override `displayWordCount` in `config.toml` | | displayReadingTime | display reading time in post-meta | boolean, override `displayReadingTime` in `config.toml` | | displayBusuanziPagePV | display page views in post-meta | boolean, override `displayBusuanziPagePV` in `config.toml` | | toc | display TOC | boolean, override `enableTOC` in `config.toml` | | tocNum | display TOC number | boolean, override `displayTOCNum` in `config.toml` | | anchor | enable headings anchor | boolean, override `enableHeadingsAnchor` in `config.toml` | | displayCopyright | display post-copyright | boolean, override `displayPostCopyright` in `config.toml` | | badge | display updated-badge | boolean, override `displayUpdatedBadge` in `config.toml` | | gitinfo | display post-gitinfo | boolean, override `displayPostGitInfo` in `config.toml` | | share | display post-share | boolean, override `displayPostShare` in `config.toml` | | related | display related-posts | boolean, override `displayRelatedPosts` in `config.toml` | | katex | add KaTeX support | boolean, override `enableKaTeX` in `config.toml` | | mathjax | add MathJax support | boolean, override `enableMathJax` in `config.toml` | | mermaid | add Mermaid support | boolean, override `enableMermaid` in `config.toml` | | comments | set `false` to disable comments in mainSections or set `true` to enable comments in non-mainSections | boolean | | smallCaps | small caps? | boolean, override `enableSmallCaps` in `config.toml` | | dropCap | drop cap? | boolean, override `enableDropCap` in `config.toml` | | dropCapAfterHr | drop cap after every horizontal rule tag? | boolean, override `enableDropCapAfterHr` in `config.toml` | | deleteHrBeforeDropCap | delete horizontal rule tag before drop cap? | boolean, override `deleteHrBeforeDropCap` in `config.toml` | | indent | indent instead of margin? | boolean, override `paragraphStyle` in `config.toml` | | indentFirstParagraph | indent the first paragraph? | boolean, override `indentFirstParagraph` in `config.toml` | | align | normal, justify, center | string, if equal to "normal", will override `enableJustify` in `config.toml` | | original | original? You can add the following 8 terms if you set `false`. The `author` is required, other optional | boolean, override `original` in `config.toml` | | author | author of original post | string | | link | link of original post | string, URL | | copyright | license of the post | string, Markdown supported | | website | author’s website | string | | email | author’s email | string | | motto | author’s description | string | | avatar | author’s avatar | string, URL | | twitter | author’s twitter id | string | | fediverse | author’s fediverse id | string | | disqus_url | \* | string, if not set, will use `Permalink` as default | | disqus_identifier | \* | string, if not set, will use `RelPermalink` as default | | disqus_title | \* | string, if not set, will use `Title` as default | \*: see https://gohugo.io/content-management/front-matter/ and https://gohugo.io/templates/internal/#configure-disqus