# Zzo theme for Hugo English | [ν•œκ΅­μ–΄](https://github.com/zzossig/hugo-theme-zzo/blob/master/README.ko.md) πŸŽ„πŸŽ„πŸŽ„πŸŽ…The minimum Hugo version changed to 0.60.0. This version changed the markdown rendering library, so if you are using an older version, it may not be compatible.πŸŽ„πŸŽ„πŸŽ„ Thank you for click me!. Zzo theme is a blog theme powered by Hugo with free(always), and many features. ## Table of contents * [Features](#features) * [Minimum Hugo version](#minimum-hugo-version) * [Installation](#installation) * [Updating](#updating) * [Run example site](#run-example-site) * [Configuration](#configuration) * [Layout](#layout) * [Gallery](#gallery) * [Contact Page](#contact-page) * [Multi Language](#multi-language) * [Customizing](#customizing) * [External libraries](#external-library) * [Shortcodes](#shortcodes) ## Features * Multiple Skins(dark, light, solarized, hacker) * A mobile menu * CSS grid and flex for layout * HTML5 * Hugo Pipes for js and sass * Simple blog * Search Engine Optimization(SEO) * Multilingual (i18n) * Responsive design * RSS and JSON feeds with full content * Search with Fuse * Gallery with Masonry, Photoswipe * Fast code highlighting ## Minimum Hugo version Hugo version 0.60.0 or higher is required. ## Installation First of all, You need to add config files. Follow the [Configuration](#configuration) step. Then, You can download and unpack the theme manually from Github but it's easier to use git to clone the repo. From the root of your site: ```bash $ git clone https://github.com/zzossig/hugo-theme-zzo.git themes/zzo ``` If you use git to version control your site, highly recommended, it's best to add the zzo theme as a submodule. From the root of your site: ```bash git submodule add https://github.com/zzossig/hugo-theme-zzo.git themes/zzo ``` ## Updating From the root of your site: ```bash git submodule update --remote --merge ``` ## Run example site From the root of themes/zzo/exampleSite: ```bash hugo server --themesDir ../.. ``` ## Configuration 0. From the root of your site: delete config.toml file and add the files below 1. config folder structure ```bash root β”œβ”€β”€ config β”‚Β Β  β”œβ”€β”€ _default β”‚Β Β  β”‚Β Β  β”œβ”€β”€ config.toml β”‚Β Β  β”‚Β Β  β”œβ”€β”€ languages.toml β”‚Β Β  β”‚Β Β  β”œβ”€β”€ menus.en.toml β”‚Β Β  β”‚Β Β  β”œβ”€β”€ params.toml ``` 2. config.toml ```bash baseURL = "http://example.org/" # The URL of your site. title = "Hugo Zzo Theme" # Title of your site theme = "zzo" # Name of Zzo theme folder in `themes/`. defaultContentLanguage = "en" # Default language to use (if you setup multilingual) defaultContentLanguageInSubdir = true # baseURL/en/, baseURL/kr/ ... hasCJKLanguage = true # Set `true` for Chinese/Japanese/Korean languages. summaryLength = 70 # The length of a post description on a list page. copyright = "©{year}, All Rights Reserved" # copyright symbol: $copy; current year: {year} timeout = 10000 enableEmoji = true paginate = 13 # Number of items per page in paginated lists. rssLimit = 100 enableGitInfo = false # When true, the modified date will appear on a summary and single page. Since GitHub info needs to be fetched, this feature will slow down to build depending on a page number you have googleAnalytics = "" [markup] [markup.goldmark] [markup.goldmark.renderer] hardWraps = true unsafe = true xHTML = true [markup.highlight] codeFences = true lineNos = true lineNumbersInTable = true noClasses = false [outputs] home = ["HTML", "RSS", "JSON"] [taxonomies] category = "categories" tag = "tags" series = "series" ``` 3. languages.toml ```bash [en] title = "Hugo Zzo Theme" languageName = "English" weight = 1 [ko] title = "Hugo Zzo Theme" languageName = "ν•œκ΅­μ–΄" weight = 2 ``` 4. menus.en.toml You shoud make your own menu. ```bash [[main]] identifier = "about" name = "about" url = "about" weight = 1 [[main]] identifier = "archive" name = "archive" url = "archive" weight = 2 [[main]] identifier = "gallery" name = "gallery" url = "gallery" weight = 3 [[main]] parent = "gallery" name = "cartoon" url = "gallery/cartoon" [[main]] parent = "gallery" name = "photo" url = "gallery/photo" [[main]] identifier = "posts" name = "posts" url = "posts" weight = 4 [[main]] identifier = "notes" name = "notes" url = "notes" weight = 5 ... ``` 5. params.toml ```bash logoText = "Zzo" # Logo text that appears in the site navigation bar. description = "The Zzo theme for Hugo example site." # for SEO custom_css = [] # custom_css = ["scss/custom.scss"] and then make file at root/assets/scss/custom.scss custom_js = [] # custom_js = ["js/custom.js"] and then make file at root/assets/js/custom.js # header homeHeaderType = "text" # text, img, slide # navbar enableThemeChange = true # site color theme # body enableBreadcrumb = true # breadcrumb for list, single page enablePhotoSwipe = true # image viewer for gallery, single page enableSearch = true # site search with Fuse enableGoToTop = true # scroll to top enableWhoami = true # at the end of single page summaryShape = "classic" # card, classic, compact archiveGroupByDate = "2006" # "2006-01": group by month, "2006": group by year archivePaginate = 13 # items per page paginateWindow = 1 # setting it to 1 gives 7 buttons, 2 gives 9, etc. If set 1: [1 ... 4 5 6 ... 356] [1 2 3 4 5 ... 356] etc # whoami: usage - home page sidebar, single page bottom of post. all values can be empty myname = "zzossig" email = "zzossig@gmail.com" whoami = "Web Developer" useGravatar = false location = "Seoul, Korea" organization = "Hugo" link = "https://github.com/zzossig/hugo-theme-zzo" # sidebar enableBio = true # home page sidebar enableSidebar = true # Set to false to create the full width of the content. enableSidebarTags = true # if you want to use tags. enableSidebarSeries = true enableSidebarCategories = true enableToc = true # single page table of contents hideToc = false # Hide or Show toc enableTocSwitch = true # single page table of contents visibility switch itemsPerCategory = 5 # maximum number of posts shown in the sidebar. # footer showPoweredBy = true # show footer text: Powered by Hugo and Zzo theme showFeedLinks = true # RSS Feed showSocialLinks = true # email, facebook, twitter ... enableLangChange = true # show button at bottom left of footer. themeOptions = ["dark", "light", "hacker", "solarized", "custom"] # select options for site color theme # service baiduAnalytics = "" # alternative of google analytics enableBusuanzi = false # if set true, total page view, total unique visitors show up in the footer. busuanziSiteUV = true # unique visitors (total number of visitors) busuanziSitePV = true # site total page view count busuanziPagePV = true # post view count # comment enableComment = true disqus_shortname = "" commento = false [gitment] # Gitment is a comment system based on GitHub issues. see https://github.com/imsun/gitment owner = "" # Your GitHub ID repo = "" # The repo to store comments clientId = "" # Your client ID clientSecret = "" # Your client secret [utterances] # https://utteranc.es/ owner = "" # Your GitHub ID repo = "" # The repo to store comments [gitalk] # Gitalk is a comment system based on GitHub issues. see https://github.com/gitalk/gitalk owner = "" # Your GitHub ID repo = "" # The repo to store comments clientId = "" # Your client ID clientSecret = "" # Your client secret # Valine. # You can get your appid and appkey from https://leancloud.cn # more info please open https://valine.js.org [valine] enable = false appId = 'δ½ ηš„appId' appKey = 'δ½ ηš„appKey' notify = false # mail notifier , https://github.com/xCss/Valine/wiki verify = false # Verification code avatar = 'mm' placeholder = 'θ―΄η‚Ήδ»€δΉˆε§...' visitor = false [changyan] changyanAppid = "" # Changyan app id # 畅言 changyanAppkey = "" # Changyan app key [livere] livereUID = "" # LiveRe UID # ζ₯εΏ…εŠ› # Isso: https://posativ.org/isso/ [isso] enable = false scriptSrc = "" # "https://isso.example.com/js/embed.min.js" dataAttrs = "" # "data-isso='https://isso.example.com' data-isso-require-author='true'" [socialOptions] # if set, social icons will show up. email = "mailto:your@email.com" facebook = "http://example.org/" twitter = "http://example.org/" github = "https://github.com/zzossig/hugo-theme-zzo" stack-overflow = "" instagram = "" google-plus = "" youtube = "" medium = "" tumblr = "" linkedin = "" pinterest = "" stack-exchange = "" telegram = "" steam = "" weibo = "" douban = "" csdn = "" zhihu = "" gitlab = "" mastodon = "" [donationOptions] enable = false # if set, the donation button will show up on the single page. alipay = "" # Alipay QR Code image (example path: images/donation/alipay-qrcode.png) and put your file at root/static/images/donation/ wechat = "" # Wechat pay QR Code image (example path: same as above) paypal = "" # Paypal URL patreon = "" # Patreon URL ``` ## Layout ### CSS grid for layout Modern CSS grid is the easiest and cleanest way to layout your pages. The CSS grid layout are in `assets/sass/layout/_grid.scss`. A lot can be done by just reordering "grid-template-rows". ### grid structure | left | right | |--- |--- | | 1 | 2 | | 3 | 4 | | 5 | 6 | | 7 | 8 | * left, right column width ratio => 5 : 2 * 1 => .navbar-main * 2 => .navbar-side * 1 + 2 => .navbar * 3 => .header-main * 4 => .header-side * 3 + 4 => .header * 5 => .main-main * 6 => .main-side * 5 + 6 => .main * 7 => .footer-main * 8 => .footer-side * 7 + 8 => .footer ### grid structure example applied in home page ```html