Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/davbree/important-octopus

Jamstack site created with Stackbit
https://github.com/davbree/important-octopus

gatsby git headless jamstack ssg stackbit static

Last synced: 23 days ago
JSON representation

Jamstack site created with Stackbit

Awesome Lists containing this project

README

        

# Zzo theme for Hugo

[English](https://github.com/zzossig/hugo-theme-zzo/blob/master/README.md) |
ํ•œ๊ตญ์–ด

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ
zzo theme์„ ์—…๋ฐ์ดํŠธํ•œ ํ›„ `config.toml` ํŒŒ์ผ์—์„œ page ๋ณ€์ˆ˜๋ฅผ ์‚ญ์ œํ•ด์ฃผ์„ธ์š”
```diff
[outputs]
page = ["HTML", "SearchIndex"]
```
๊ฒ€์ƒ‰ ๊ด€๋ จ ์ธ๋ฑ์Šค ์ƒ์„ฑ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค
๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ

ํด๋ฆญํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. Zzo theme์€ ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๊ณ ์žˆ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ๋ฅผ ์šด์˜ํ•˜๊ธฐ์— ์ตœ์ ํ™” ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค!(์ ์–ด๋„ ์ œ์ƒ๊ฐ์—”...)
Zzo theme์„ ์ด์šฉํ•  ์‹œ ๊ฐ€์žฅ ๋งค๋ ฅ์ ์ธ ํฌ์ธํŠธ ํ•œ๊ฐ€์ง€๋Š”, ํ•œ๊ธ€๋กœ ์ €์™€ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ? ์ž…๋‹ˆ๋‹ค.

## Documentation

์˜๋ฌธ๋ฒ„์ „ ๋„ํ๋จผํŠธ
[https://zzodocs.netlify.com/docs/](https://zzodocs.netlify.com/docs/)

## Table of contents

* [๊ธฐ๋Šฅ](#features)
* [์ตœ์†Œ ํœด๊ณ  ๋ฒ„์ „](#minimum-hugo-version)
* [์„ค์น˜](#installation)
* [์—…๋ฐ์ดํŠธ](#updating)
* [์˜ˆ์ œ ์‚ฌ์ดํŠธ ๋Œ๋ฆฌ๊ธฐ](#run-example-site)
* [์„ค์ •](#configuration)
* [๊ฐค๋Ÿฌ๋ฆฌ](#gallery)
* [์ปจํƒ ํŽ˜์ด์ง€](#contact-page)
* [ํ† ํฌ ํŽ˜์ด์ง€](#talks-page)
* [์‡ผ์ผ€์ด์Šค ํŽ˜์ด์ง€](#showcase-page)
* [๋‹ค๊ตญ์–ด](#multi-language)
* [์ €์ž](#author)
* [Favicon](#favicon)
* [์ปค์Šคํ„ฐ๋งˆ์ด์ง•](#customizing)
* [์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ](#external-library)
* [Shortcodes](#shortcodes)

## Features

* ๋‹ค์–‘ํ•œ ์Šคํ‚จ ์ง€์›(dark, light, solarized, ...)
* ๋ชจ๋ฐ”์ผ ๋ฉ”๋‰ด
* ์ตœ์‹  HTML5, CSS ๊ธฐ์ˆ  ์ด์šฉ
* ์‹ฌํ”Œํ•œ ๋ธ”๋กœ๊ทธ
* ๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™” (SEO)
* ๋‹ค๊ตญ์–ด ์ง€์› (i18n)
* ๋ฐ˜์‘ํ˜• ๋””์ž์ธ
* RSS feed ์ง€์›
* ๊ฒ€์ƒ‰ (์ง€์› ์˜ˆ์ •)
* ๊ฐค๋Ÿฌ๋ฆฌ ์ง€์›
* ์ฝ”๋“œ ํ•˜์ด๋ผ์ดํŠธ
* ํ† ํฌ ํŽ˜์ด์ง€
* ์‡ผ์ผ€์ด์Šค ํŽ˜์ด์ง€

## Minimum Hugo version

์ตœ์†Œ ์š”๊ตฌ Hugo ๋ฒ„์ „์€ 0.60.0 ์ž…๋‹ˆ๋‹ค.

## Installation

์šฐ์„  ์„ค์ • ํŒŒ์ผ์„ ๋งŒ๋“œ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„ค์ •ํŒŒ์ผ์ด ์—†๊ฑฐ๋‚˜ ์„ค์ •๊ฐ’์ด ์ž˜๋ชป ๋  ๊ฒฝ์šฐ, ์‹คํ–‰์ด ์•ˆ๋˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
[์„ค์ •](#configuration) ๋งํฌ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์„ค์ •ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”.

์„ค์ • ํŒŒ์ผ์„ ๋‹ค ๋งŒ๋“œ์…จ์œผ๋ฉด, theme ํด๋”์— zzo ํด๋”๋ฅผ ๋งŒ๋“ค๊ณ , ๊ทธ๊ณณ์— ์ด ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•˜์‹  ํŒŒ์ผ์„ ๋ณต์‚ฌ ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
์ด๋ ‡๊ฒŒ ํŒŒ์ผ์„ ๋ณต์‚ฌ ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•˜์‹œ๋ฉด, ๋‚˜์ค‘์— ์ œ๊ฐ€ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฒ„๊ทธ๋‚˜ ์ด์Šˆ๋ฅผ ์—…๋ฐ์ดํŠธ ํ–ˆ์„ ๋•Œ, ๋‹˜์ด ๋งŒ๋“œ์‹  ๋ธ”๋กœ๊ทธ๋ฅผ ์ตœ์‹  Zzo theme์œผ๋กœ
์—…๋ฐ์ดํŠธ ํ•˜๊ณ  ์‹ถ์œผ์‹œ๋ฉด ํ•ด๋‹น Zzo theme์„ ์ง€์šฐ๊ณ  ๋‹ค์‹œ ๋‹ค์šด๋กœ๋“œ ํ•œ ๋‹ค์Œ, ๋ณต๋ถ™ํ•˜์‹œ๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

```bash
$ git clone https://github.com/zzossig/hugo-theme-zzo.git themes/zzo
```

๊นƒํ—™์„ ์ด์šฉํ•˜์—ฌ ๋ธ”๋กœ๊ทธ๋ฅผ ๊ด€๋ฆฌํ•˜์‹ ๋‹ค๋ฉด, ์„ญ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ Zzo theme์„ ์‰ฝ๊ฒŒ ์ตœ์‹ ๋ฒ„์ „์œผ๋กœ ์œ ์ง€ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฃจํŠธ ํด๋”์—์„œ ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์‹œ๋ฉด submodule๋กœ์จ Zzo theme์ด ์„ค์น˜๋ฉ๋‹ˆ๋‹ค:

```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. ์ €๊ฐ™์€ ๊ฒฝ์šฐ, ๋””๋ ‰ํ† ๋ฆฌ ํ•˜๋‚˜๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ๊ณณ์— ๋‹ค์Œ๊ณผ๊ฐ™์ด ์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

```bash
hugo new site .
```

1. 0๋ฒˆ ๋‹จ๊ณ„์—์„œ ๋งŒ๋“œ์‹  ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋“ค์–ด๊ฐ€์ฃผ์„ธ์š”.
config.toml ํŒŒ์ผ์ด ๋ณด์ด์‹ ๋‹ค๋ฉด, ๊ณผ๊ฐํ•˜๊ฒŒ ์ง€์›Œ์ฃผ์„ธ์š”. ์•„๋ž˜ ๋‹จ๊ณ„๋“ค์€ ์ œ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” config ํŒŒ์ผ๋“ค์ž…๋‹ˆ๋‹ค.
๋ชจ๋‘ ๊ทธ๋ƒฅ ๋ณต์‚ฌ, ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•ด์„œ ํŒŒ์ผ์„ ๋งŒ๋“œ์‹œ๋ฉด ๋˜๋Š”๋ฐ, ๊ท€์ฐฎ์œผ์‹  ๋ถ„๋“ค์€ exampleSite ํด๋”์— ์žˆ๋Š” config ํด๋”๋ฅผ
๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์— ๊ทธ๋ƒฅ ๋ณต์‚ฌ ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•˜์…”๋„ ๋ฉ๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” ์„ค์ • ํŒŒ์ผ ๊ตฌ์กฐ๊ตฌ์š”. _defaultํด๋”์˜ _(์–ธ๋”์Šค์ฝ”์–ด) ๋บด๋จน์ง€ ๋งˆ์„ธ์š”!

```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.
buildFuture = true # if true, we can use future date for talks 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
[markup.tableOfContents]
endLevel = 3
ordered = false
startLevel = 2

[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.
logoType = "short" # long, short -> short: squre shape includes logo text, long: rectangle shape not includes logo text
logo = true # Logo 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
useFaviconGenerator = false # https://www.favicon-generator.org/
languagedir = "ltr" # ltr / rtl

themeOptions = ["dark", "light", "hacker", "solarized", "kimbie"] # select options for site color theme
notAllowedTypesInHome = ["contact", "talks", "about", "showcase"] # not allowed page types in home page. type can be set in front matter or default to folder name.
notAllowedTypesInHomeSidebar = ["about", "archive", "showcase"] # not allowed page types in home page sidebar(recent post titles).
notAllowedTypesInArchive = ["about", "talks", "showcase"] # not allowed page types in archive page
notAllowedTypesInHomeFeed = ["about", "archive", "contact", "talks", "showcase", "publication", "presentation", "resume", "gallery"]
enablePinnedPosts = true # show pinned posts first in the main view

viewportSize = "normal" # widest, wider, wide, normal, narrow
enableUiAnimation = true
hideSingleContentsWhenJSDisabled = false
minItemsToShowInTagCloud = 1 # Minimum items to show in tag cloud

# appbar
enableAppbarSearchIcon = false
enableAppbarLangIcon = false

# header
homeHeaderType = "text" # text, img, slide, typewriter
hideHomeHeaderWhenMobile = false

# menu
showMobileMenuTerms = ["tags", "categories", "series"]

# navbar
enableThemeChange = true # site color theme

# body
enableBreadcrumb = true # breadcrumb for list, single page
enableSearch = true # site search with fuse
enableSearchHighlight = true # when true, search keyword will be highlighted
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
talksPaginate = 8 # items per page
talksGroupByDate = "2006" # "2006-01": group by month, "2006": group by year

# whoami: usage - home page sidebar, single page bottom of post. all values can be empty
myname = "zzossig"
email = "[email protected]"
whoami = "Web Developer"
bioImageUrl = "" # image url like "http//..." or "images/anyfoldername/mybioimage.jpg" If not set, we find a avatar image in root/static/images/whoami/avatar.(png|jpg|svg)
useGravatar = false # we use this option highest priority
location = "Seoul, Korea"
organization = "Hugo"
link = "https://github.com/zzossig/hugo-theme-zzo"

# sidebar
enableBio = true # in home page sidebar
enableBioImage = true # in 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
enableHomeSidebarTitles = true
enableListSidebarTitles = true
enableToc = true # single page table of contents, you can replace this param to toc(toc = true)
hideToc = false # Hide or Show toc
tocPosition = "inner" # inner, outer
tocFolding = false
enableTocSwitch = true # single page table of contents visibility switch
itemsPerCategory = 5 # maximum number of posts shown in the sidebar.
sidebarPosition = "right" # bio, profile component layout position
tocLevels = ["h2", "h3", "h4"] # minimum h2, maximum h4 in your article
enableSidebarPostsByOrder = false # another lists 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.

# service
googleTagManager = "" # GTM-XXXXXX
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

# rss
updatePeriod = "" # Possible values: 'hourly', 'daily', 'weekly', 'monthly', or 'yearly'.
updateFrequency = ""
fullContents = false

# 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
message = "" # Optional
link = "" # Optional

[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:[email protected]"
phone = ""
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 = ""
gitlab = ""
mastodon = ""
jianshu = ""
zhihu = ""
signal = ""
whatsapp = ""
matrix = ""
xmpp = ""
dev-to = ""
gitea = ""
google-scholar = ""
twitch = ""

[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
bitcoin = "" # example path: images/donation/bitcoin-code-image.png

[copyrightOptions]
enableCopyrightLink = false # if set, you can add copyright link
copyrightLink = ""
copyrightLinkImage = ""
copyrightLinkText = ""

# possible share name: "facebook","twitter", "reddit", "linkedin", "tumblr", "weibo", "douban", "line", "whatsapp", "telegram"
[[share]]
name = "facebook"
username = ""
[[share]]
name = "twitter"

[[footerLinks]]
name = ""
link = ""
[[footerLinks]]
name = ""
link = ""
```

## Gallery

๊ฐค๋Ÿฌ๋ฆฌ๋Š” ๋‘๊ฐ€์ง€ ๋ชจ๋‘๊ฐ€ ์กด์žฌํ•ด์š”. ํ•˜๋‚˜์”ฉ ์˜ฌ๋ฆฌ๊ฑฐ๋‚˜ ํ•œ๋ฒˆ์— ์˜ฌ๋ฆฌ๊ฑฐ๋‚˜.

```bash
content/gallery/anygalleryname/index.md

---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
description:
type: gallery
mode: one-by-one # at-once or one-by-one
tags:
-
series:
-
categories:
-
images: # when mode is one-by-one, images front-matter variable works
- image: image1.jpg # image path: static/gallery/anygalleryname/image1.jpg
caption: caption1
- image: image2.jpg # image path: static/gallery/anygalleryname/image2.jpg
caption: caption2
...
---

```

๊ฐค๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋“œ์‹œ๋ ค๋ฉด ์šฐ์„  type์„ ๊ฐค๋Ÿฌ๋ฆฌ๋กœ ํ•˜์…”์•ผ ํ•˜๊ตฌ์š”, mode๋ฅผ one-by-one์œผ๋กœ ํ•˜์‹œ๋ฉด images์— ์ด๋ฏธ์ง€๋ฅผ ์œ„์™€ ๊ฐ™์ด ํ•˜๋‚˜์”ฉ ์ž…๋ ฅํ•ด์ฃผ์…”์•ผ ํ•ด์š”.
๊ทธ๋Ÿผ ์ด๋ฏธ์ง€๊ฐ€ ์œ„์— ์ ํžŒ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜ํƒ€๋‚ ๊ฑฐ์—์š”. mode๋ฅผ at-once๋กœ ํ•˜์‹œ๋ฉด, static ํด๋”์— ์žˆ๋Š” ์ด๋ฏธ์ง€๋ฅผ ์ „๋ถ€ ๋ถˆ๋Ÿฌ์˜ฌ๊ฑฐ์—์š”. ์˜ˆ๋ฅผ๋“ค์–ด ์œ„์˜ ์ฝ”๋“œ์—์„œ mode๋ฅผ at-once๋กœ ํ–ˆ๋‹ค๋ฉด,
static/gallery/anygalleryname ํด๋”์— ์žˆ๋Š” ์ด๋ฏธ์ง€๋ฅผ ์ „๋ถ€ ์ฝ์–ด ๊ฐค๋Ÿฌ๋ฆฌ ํŽ˜์ด์ง€์— ๋‚˜ํƒ€๋‚  ๊ฑฐ์—์š”.

1. Make a gallery folder under the content folder

```bash
root
โ”œโ”€โ”€ content
โ”‚ย ย  โ”œโ”€โ”€ gallery
```

2. Make a sub folder under the gallery folder

```bash
root
โ”œโ”€โ”€ content
โ”‚ย ย  โ”œโ”€โ”€ gallery
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ anygalleryname
```

3. Make a index.md file under the sub folder using this command

```bash
hugo new --kind gallery gallery/anygalleryname/index.md
```

4. Put your images in static folder

```bash
root
โ”œโ”€โ”€ static
โ”‚ย ย  โ”œโ”€โ”€ gallery
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ anygalleryname
โ”‚ย ย  โ”‚ย ย  โ”‚ โ”œโ”€โ”€ ...your images here
```

## Contact Page

ํ˜„์žฌ ์ด์šฉ ๊ฐ€๋Šฅํ•œ ์„œ๋น„์Šค: [formspree]. ๋‹ค๋ฅธ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๊ณ  ์‹ถ์œผ์‹œ๋ฉด ์ƒˆ ์ด์Šˆ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”. ์„œ๋น„์Šค ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋นˆ๊ฐ’์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋งˆํฌ๋‹ค์šด์œผ๋กœ ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ ์ฑ„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1. ํŒŒ์ผ์„ ๋‹ค์Œ ๊ฒฝ๋กœ์— ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. root/content/contact/index.md

```yaml
---
title: "Contact"
date: 2019-12-17T23:58:33+09:00
description: Contact page
type: contact
service: formspree
formId: "[email protected]"
---

This is contact page.
```

2. ์ปจํƒํŠธ ๋ฉ”๋‰ด๋ฅผ ๋‹ค์Œ ๊ฒฝ๋กœ์— ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค. root/config/_default/menus.en.toml.

```toml
...
[[main]]
identifier = "contact"
name = "contact"
url = "contact"
weight = 6
```

## Talks Page

Talks ํŽ˜์ด์ง€๋Š” ์•„์นด์ด๋ธŒ ํŽ˜์ด์ง€์™€ ์œ ์‚ฌํ•œ UI์˜ ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค. ๋น„๋””์˜ค, ํ”ผํ‹ฐ ๋“ฑ๋“ฑ์˜ ๋งํฌ๋ฅผ ๋ชจ์•„์„œ ๋ณด์—ฌ์ฃผ๋Š” ์šฉ๋„๋กœ ์”๋‹ˆ๋‹ค. Talks ํŽ˜์ด์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ์•„๋ž˜์˜ ์ˆœ์„œ๋Œ€๋กœ ๋”ฐ๋ผํ•ด์ฃผ์„ธ์š”.

1. ํŒŒ์ผ์„ root/content/talks/_index.md. ๊ฒฝ๋กœ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งŒ๋“ญ๋‹ˆ๋‹ค.

```yaml
---
title: "Talks"
date: 2019-12-30T11:14:14+09:00
description: Talks Page
titleWrap: wrap # wrap, nowrap
---
```

2. ๋˜ ๋‹ค๋ฅธ ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค. ์ด๊ณณ์— ๋‚ด์šฉ์„ ๋„ฃ์–ด์ฃผ์„ธ์š”.

root/content/talks/myLinks.md

```yaml
---
title: "My Awesome links"
date: 2019-12-31T00:04:50+09:00
publishDate: 2019-12-31
description:
tags:
-
series:
-
categories:
-
---
```

3. ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฉ”๋‰ด๋งŒ ๋‹ค์Œ ๊ณผ ๊ฐ™์ด ๋งŒ๋“ค์–ด ์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

root/config/_default/menus.en.toml file

```toml
[[main]]
identifier = "talks"
name = "talks"
url = "talks"
weight = 6
```

4. ์ถ”๊ฐ€์ ์œผ๋กœ, date๋ฅผ ๋ฏธ๋ž˜์˜ ๋‚ ์งœ๋ฅผ ์“ฐ๊ณ  ์‹ถ์œผ์‹œ๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ผ์„œ ํ•ด์ฃผ์„ธ์š”.

- ๋‹ค์Œ ๊ฒฝ๋กœ์˜ ์„ค์ •ํŒŒ์ผ(root/config/_default/config.toml)์—์„œ `buildFuture`๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”.

```toml
...
buildFuture = true
...
```

- talksํด๋”์˜ ๋งˆํฌ๋‹ค์šด ํŒŒ์ผ์— `publishDate`๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”. root/content/talks/myLinks.md

```yaml
---
title:
date:
publishDate: 2020-02-20
...
---
...
```

## Showcase Page

Showcase ํŽ˜์ด์ง€๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์ „์‹œํ•˜๋Š” ํŽ˜์ด์ง€ ์ž…๋‹ˆ๋‹ค. ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“œ์‹œ๋ ค๋ฉด ์•„๋ž˜ ๋‹จ๊ณ„๋ฅผ ์ง„ํ–‰ํ•ด์ฃผ์„ธ์š”.

1. ๋‹ค์Œ ๊ฒฝ๋กœ์— ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. `root/content/showcase/_index.md`.

```yaml
---
title: "Showcase overview" # For SEO
date: 2020-01-19T15:43:38+09:00
description: My portfolio, repos, works overview page # For SEO
enableBio: true # Set to false if you want to hide the bio component.
---
```

2. ๋‹ค์Œ ๊ฒฝ๋กœ์— ์นดํ…Œ๊ณ ๋ฆฌ ํด๋”์™€ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. `root/content/showcase/hugo/_index.md` file. (์ €์˜ ๊ฒฝ์šฐ, hugo๊ฐ€ ์นดํ…Œ๊ณ ๋ฆฌ ํด๋”์ž…๋‹ˆ๋‹ค.)

```yaml
---
title: "Hugo" # section name
date: 2020-01-19T21:04:11+09:00
description: Hugo theme collection # For SEO
category: theme # meta info appeared on a card bottom side. category in category
enableBio: true
---
```

3. ํ”„๋กœ์ ํŠธ๋‹น ํ•œ๊ฐœ์˜ mdํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ์ฃผ์„ธ์š”.

`root/content/showcase/hugo/my-awesome-project.md`

```yaml
---
title: "My Awesome Project" # apperared on a card component
date: 2020-01-19T21:13:42+09:00
description: Hello world! This is my awesome project! # apperared on a card component
weight: 1 # card ordering
link: https://github.com/zzossig/hugo-theme-zzo
repo: https://github.com/zzossig/hugo-theme-zzo
pinned: true # appreared on a overview page.
thumb: feature3/css3.png # relative path in static/images
---
```

4. ๋งˆ์ง€๋ง‰์œผ๋กœ, ๋ฉ”๋‰ด๋ฅผ ๋“ฑ๋กํ•ด์ฃผ์„ธ์š”.

`root/config/_default/menus.en.toml`

```toml
[[main]]
identifier = "showcase"
name = "Showcase"
url = "showcase"
weight = 7
```

## Multi Language

Zzo theme์˜ ๊ธฐ๋ณธ ์–ธ์–ด๋Š” ์˜์–ด์ž…๋‹ˆ๋‹ค. ํ•œ๊ตญ์–ด๋กœ ๋ฐ”๊พธ์‹œ๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ด์ฃผ์„ธ์š”.

1. ์šฐ์„  ๋ฉ”๋‰ดํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

```bash
root
โ”œโ”€โ”€ config
โ”‚ย ย  โ”œโ”€โ”€ _default
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ ...
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ menus.ko.toml
```

```bash
config/_default/menus.ko.toml

[[main]]
identifier = "about"
name = "about"
url = "/about/"
weight = 1

[[main]]
identifier = "archive"
name = "archive"
url = "/archive/"
weight = 2
...
```

2. content ํด๋”์— ๋งˆํฌ๋‹ค์šด ํŒŒ์ผ์„ ์ž‘์„ฑํ•˜์‹ค ๋•Œ, ํ™•์žฅ์ž ์•ž์— ko๋ฅผ ๋ถ™์—ฌ์ฃผ์„ธ์š”!

```bash
hugo new about/index.ko.md
hugo new posts/markdown-syntax.ko.md
...
```

3. i18n ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

```bash
i18n/ko.toml

[search-placeholder]
other = "๊ฒ€์ƒ‰..."

[summary-dateformat]
other = "2006๋…„ 01์›” 02์ผ"

[tags]
other = "ํƒœ๊ทธ"

...
```

4. ์„ค์ • ํŒŒ์ผ์— ๊ธฐ๋ณธ์–ธ์–ด ํ•ญ๋ชฉ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด์ค๋‹ˆ๋‹ค.

```bash
defaultContentLanguage = "ko"
defaultContentLanguageInSubdir = true
hasCJKLanguage = true
```

## Customizing

๊ธฐ๋ณธ์ ์œผ๋กœ theme ํด๋”์•ˆ์— ์žˆ๋Š” ๋‚ด์šฉ์€ ์•ˆ๊ฑด๋“œ์‹œ๋Š”๊ฒŒ ์ข‹์ง€๋งŒ, ๊ฑด๋“œ์‹ ๋‹ค๋ฉด ๋‚˜์ค‘์— theme์„ ์—…๋ฐ์ดํŠธ ํ•˜๋Š”๊ฒŒ ๋ณต์žกํ•ด ์งˆ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์ƒํƒœ๋กœ ๋ณ„๋กœ ์—…๋ฐ์ดํŠธ๊ฐ€ ํ•„์š” ์—†๋‹ค๊ณ  ๋Š๋ผ์‹ ๋‹ค๋ฉด theme์— ์žˆ๋Š” ํŒŒ์ผ์„ ๋งˆ์Œ๋Œ€๋กœ ๊ณ ์น˜์…”๋„ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒŒ ์•„๋‹ˆ๋ผ๋ฉด ์•„๋ž˜์— ์žˆ๋Š” ๋ฐฉ์‹์œผ๋กœ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ํ•˜์‹œ๊ธฐ๋ฅผ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ถ”๊ฐ€๋กœ, custom css๋‚˜ custom js๋ฅผ ์•„๋ž˜์˜ ๋ฐฉ์‹๋Œ€๋กœ ์ด์šฉํ•˜์‹œ๋ฉด, ํŽ˜์ด์ง€ ๋กœ๋“œ ์†๋„๊ฐ€ ์•ฝ๊ฐ„ ๋” ๋Š๋ ค์ง€๋Š” ๊ฒƒ์„
๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

### custom css

1. config ํด๋”์˜ params.toml ํŒŒ์ผ์— ์•„๋ž˜์™€๊ฐ™์ด ์ปค์Šคํ…€ ์Šคํƒ€์ผ ํŒŒ์ผ์„ ๋ช…์‹œํ•ด์ฃผ์„ธ์š”.

```bash
config/_default/params.toml

...
custom_css = ["css/custom.css", "scss/custom.scss", ...]
...
```

2. ์œ„ ์„ค์ •ํŒŒ์ผ์— ๋ช…์‹œํ•œ ๋Œ€๋กœ ์‹ค์ œ ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ์ฃผ์„ธ์š”.

```bash
assets/scss/custom.scss
assets/css/custom.css
```

3. ๋งŒ์•ฝ ํŠน์ • ์ƒ‰์ƒ์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ์œผ์‹œ๋ฉด, ์œ„์— ๋งŒ๋“  ์ปค์Šคํ…€ ์Šคํƒ€์ผ ํŒŒ์ผ์— ํ•ด๋‹น ๋ถ€๋ถ„์˜ ์Šคํƒ€์ผ์„ ์˜ค๋ฒ„๋ผ์ด๋“œ ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด backdrop ์ƒ‰์ƒ์„ ๋ณ€๊ฒฝํ•˜๊ณ ์ž ํ•˜์‹œ๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ด์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

```css
assets/scss/custom.scss or assets/css/custom.css

...
#body {
background-color: red !important;
}
...
```

### custom js

1. config ํด๋”์˜ params.toml ํŒŒ์ผ์— ์•„๋ž˜์™€๊ฐ™์ด ์ปค์Šคํ…€ ํŒŒ์ผ์„ ๋ช…์‹œํ•ด์ฃผ์„ธ์š”.

```bash
config/_default/params.toml

...
custom_js = ["js/custom.js", ...]
...
```

2. ์‹ค์ œ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด ์ฃผ์‹œ๊ตฌ์š”.

```bash
assets/js/custom.js
```

### custom syntax highlighting

1. root/data ํด๋”์— skin.tomlํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”. theme_dark_chroma, theme_light_chroma, ... ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ํ•ญ๋ชฉ์˜ ๊ฐ’์„ ์›ํ•˜์‹œ๋Š” ์ฝ”๋“œ ํ•˜์ด๋ผ์ดํŠธ ํ…Œ๋งˆ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ์„ธ์š”. [์ด ๋งํฌ](https://xyproto.github.io/splash/docs/all.html)๋ฅผ ์ฐธ์กฐํ•ด์„œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ theme_[xxxx]_chroma ๊ฐ’์— - ๋‚˜ _ ๊ฐ™์€ ํŠน์ˆ˜๋ฌธ์ž๊ฐ€ ์žˆ๋‹ค๋ฉด ์ง€์›Œ์ฃผ์„ธ์š”.
์˜ˆ๋ฅผ๋“ค์–ด, solarized-dark256 ๊ฐ’์„ ์ž…๋ ฅํ•˜์‹œ๋ ค๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ด์ฃผ์„ธ์š”.

```
root/data/skin.toml

theme_dark_chroma = "solarizeddark256"
```

2. ํŠน์ • ์ƒ‰์ƒ์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ์œผ์‹œ๋‹ค๋ฉด, [[custom-css](#custom-css)]์—์„œ ๋งŒ๋“  ํŒŒ์ผ์— chroma class๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋“œ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ž˜ ๋ชจ๋ฅด๊ฒ ์œผ๋ฉด ๋ฌธ์˜์ฃผ์„ธ์š”!

```
root/assets/scss/custom.scss

.chroma {
background-color: #123456 !important;
}
```

### custom header

ํ™ˆํŽ˜์ด์ง€์—์„œ ํ—ค๋” ๋ถ€๋ถ„์— 4๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ํ—ค๋”๋ฅผ ์ž…ํž ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šฌ๋ผ์ด๋”, ์ด๋ฏธ์ง€, ํ…์ŠคํŠธ, ๊ทธ๋ฆฌ๊ณ  ์•„๋ฌด๊ฒƒ๋„ ์ž…๋ ฅ ์•ˆํ•˜์‹œ๋ฉด ๋นˆ๊ณต๊ฐ„์ด ๋ฉ๋‹ˆ๋‹ค.

1. config/_default/params.toml ์„ค์ •ํŒŒ์ผ์— homeHeaderType ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด์ฃผ์„ธ์š”. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ slide, img, text, typewriter์ž…๋‹ˆ๋‹ค.

2. root/content/_index.md์— _index.md ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š” ๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜ ๋‚ด์šฉ์„ ๋ณต๋ถ™ํ•ด์ฃผ์„ธ์š”.

3. ๋ณ€์ˆ˜์˜ ์ด๋ฆ„๋งŒ์œผ๋กœ ์˜๋ฏธ๊ฐ€ ์ „๋‹ฌ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ฐ’์„ ํ•˜๋‚˜์”ฉ ๋ณ€๊ฒฝํ•ด๋ณด๋ฉด์„œ ์›ํ•˜์‹œ๋Š” ๋Œ€๋กœ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ํ•ด์ฃผ์„ธ์š”.

```yaml
---
header:
- type: text
height: 200
paddingX: 50
paddingY: 0
align: center
title:
- HUGO
subtitle:
- The worldโ€™s fastest framework for building websites
titleColor: # #123456, red
titleShadow: false
titleFontSize: 44
subtitleColor: # #123456, red
subtitleCursive: false
subtitleFontSize: 16
spaceBetweenTitleSubtitle: 20

- type: img
imageSrc: images/header/background.jpg # your image file path: root/static/images/header/background.jpg
imageSize: cover # auto|length|cover|contain|initial|inherit
imageRepeat: no-repeat # repeat|repeat-x|repeat-y|no-repeat|initial|inherit
imagePosition: center # x% y%| xpos ypos| left top| center bottom| ...
height: 235
paddingX: 50
paddingY: 0
align: center
title:
-
subtitle:
-
titleColor:
titleShadow: false
titleFontSize: 44
subtitleColor:
subtitleCursive: false
subtitleFontSize: 16
spaceBetweenTitleSubtitle: 20

- type: slide
height: 235
options:
startSlide: 0
auto: 5000 # auto slide delay 5000ms(5sec)
draggable: true # slide draggable
autoRestart: true # restart after drag finished
continuous: true # last to first
disableScroll: true
stopPropagation: true
slide:
- paddingX: 50
paddingY: 0
align: left
imageSrc: images/header/background.jpg
imageSize: cover
imageRepeat: no-repeat
imagePosition: center
title:
- header title1
subtitle:
- header subtitle1
titleFontSize: 44
subtitleFontSize: 16
spaceBetweenTitleSubtitle: 20

- paddingX: 50
paddingY: 0
align: center
imageSrc: images/header/background.jpg
imageSize: cover
imageRepeat: no-repeat
imagePosition: center
title:
- header title2
subtitle:
- header subtitle2
titleFontSize: 44
subtitleFontSize: 16
spaceBetweenTitleSubtitle: 20

- paddingX: 50
paddingY: 0
align: right
imageSrc: images/header/background.jpg
imageSize: cover
imageRepeat: no-repeat
imagePosition: center
title:
- header title3
subtitle:
- header subtitle3
titleFontSize: 44
subtitleFontSize: 16
spaceBetweenTitleSubtitle: 20
---
```

### custom grid

1. ํด๋”์— grid.toml ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”. (data/grid.toml)

2. themes/zzo/data/grid.toml ํŒŒ์ผ์— ์žˆ๋Š” ๋‚ด์šฉ์„ ์œ„์—์„œ ๋งŒ๋“  ํŒŒ์ผ์— ๋ณต๋ถ™ํ•ด์ฃผ์„ธ์š”.

3. ์›ํ•˜์‹œ๋Š” ๋Œ€๋กœ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด์ฃผ์„ธ์š”.

4. ๋ณ€๊ฒฝ ํ›„, ํœด๊ณ ๋ฅผ ์žฌ์‹œ์ž‘ ํ•ด์ฃผ์„ธ์š”.

```toml
data/grid.toml example

grid_max_width = "960"
grid_max_unit = "px" # "px", "\"%\"" Using% is limited to using full width.
grid_main_main_width = "5"
grid_main_main_unit = "fr" # "fr", "px"
grid_main_side_width = "2"
grid_main_side_unit = "fr" # "fr", "px"
grid_column_gap_width = "32"
grid_column_gap_unit = "px" # "px"
grid_navbar_height = "50px" # "px"
grid_row_gap = "0"
```

### custom font

1. ์ปค์Šคํ…€ css ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”.

```bash
config/_default/params.toml

...
custom_css = ["css/font.css"]
...
```

2. font.css ํŒŒ์ผ์—, font-face๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”.

```css
@font-face {
font-family: 'Montserrat';
src: url('../fonts/montserrat-black.woff2') format('woff2'),
url('../fonts/montserrat-black.woff') format('woff');
font-weight: 900;
font-style: normal;
}

@font-face {
font-family: 'Merriweather';
src: url('../fonts/merriweather-regular.woff2') format('woff2'),
url('../fonts/merriweather-regular.woff') format('woff');
font-weight: 400;
font-style: normal;
}
```

3. root/static/fonts/myfont.xxx ํฐํŠธ ํŒŒ์ผ์„ static ํด๋”์— ๋„ฃ์–ด์ฃผ์„ธ์š”. (If your url in step2 is ('../fonts/myfont.xxx')).

4. root/data/font.toml ์— font.toml ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”. ๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜์™€ ๊ฐ™์ด ๋‚ด์šฉ์„ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.

```toml
title_font = "\"Montserrat\", sans-serif"
content_font = "\"Merriweather\", serif"
```

5. ๋‹ค๋ฅธ ๋ฐฉ์‹

root/layouts/partials/head/custom-head.html ๊ฒฝ๋กœ์— ํŒŒ์ผ์„ ๋งŒ๋“œ์‹œ๊ณ  ํฐํŠธ๋ฅผ ๊ทธ๊ณณ์—์„œ ๋กœ๋“œํ•ด์ฃผ์„ธ์š”.

```html

```

### custom copyright

footer์˜ ์ €์ž‘๊ถŒ ํ…์ŠคํŠธ์— ๋งํฌ๋ฅผ ๋„ฃ๊ณ  ์‹ถ์œผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

1. ์„ค์ • ํŒŒ์ผ์ธ config.toml ์—์„œ copyright ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์„ ์„ค์ •ํ•ด์ฃผ์„ธ์š”.
```toml
...
copyright = This is my {} copyright text
...
```
{} ๋กœ ์“ฐ์—ฌ์ง„ ๋ถ€๋ถ„์ด ๋งํฌ๊ฐ€ ๋“ค์–ด๊ฐˆ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.
2. ์„ค์ • ํŒŒ์ผ์ธ params.toml ์—์„œ copyrightOptions ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์„ ์„ค์ •ํ•ด์ฃผ์„ธ์š”.

```toml
...
[copyrightOptions]
enableCopyrightLink = false
copyrightLink = "https://..."
copyrightLinkImage = "https://..."
copyrightLinkText = "copyright link text"
```

### custom favicon

root/static ํด๋”์— ํŒŒ๋น„์ฝ˜์„ ๋„ฃ์–ด์„œ ํ…Œ๋งˆ์˜ favicon์„ overriding ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

## Author

ํฌ์ŠคํŠธ์˜ ์ €์ž์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ front matter๋ฅผ ํ†ตํ•ด์„œ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

```yaml
---
title:
...
author: # author name
authorEmoji: ๐Ÿค– # emoji for subtitle, summary meta data
authorImage: "/images/whoami/avatar.jpg" # image path in the static folder
authorImageUrl: "" # your image url. We use `authorImageUrl` first. If not set, we use `authorImage`.
authorDesc: # author description
socialOptions: # override params.toml file socialOptions
email: ""
facebook: ""
...
---
```

## Favicon

`favicon.ico`๋ผ๋Š” ํŒŒ์ผ์„ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์˜ static ํด๋”์— ๋„ฃ์–ด์ฃผ์„ธ์š”. ํŒŒ์ผ ์ด๋ฆ„๊ณผ ํ™•์žฅ์ž๊ฐ€ ์ •ํ™•ํžˆ `favicon.ico`์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

### Using favicon-genarator

๋ชจ๋ฐ”์ผ ํ™˜๊ฒฝ์„ ๊ณ ๋ คํ•˜์‹ ๋‹ค๋ฉด [favicon-generator](https://www.favicon-generator.org/) ์‚ฌ์ดํŠธ์—์„œ ํŒŒ๋น„์ฝ˜์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”.

- ์œ„์˜ ์‚ฌ์ดํŠธ์—์„œ ํŒŒ๋น„์ฝ˜์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”.
- `root/static/favicon`๊ฒฝ๋กœ์— ํด๋”๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”.
- ํ•ด๋‹น ํด๋”์— ํŒŒ๋น„์ฝ˜์„ ํ’€์–ด์ฃผ์„ธ์š”.
- params.toml ํŒŒ์ผ์— `useFaviconGenerator`์˜ ๊ฐ’์„ `true`๋กœ ๋ฐ”๊ฟ”์ฃผ์„ธ์š”.

## External Library

ํ˜„์žฌ ์ง€์›ํ•˜๋Š” ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” Katex, MathJax, Mermaid, Flowchart.js, chart.js, viz-graph, wavedrom, js-sequence-diagram ์ž…๋‹ˆ๋‹ค. front-matter์— ๊ฐ’์„ ๋„ฃ์–ด์ฃผ์‹œ๋ฉด ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค.

```bash
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
...
libraries:
- katex
- mathjax
- chart
- flowchartjs
- msc
- katex
- mermaid
- viz
- wavedrom
---

```

## Shortcodes

### alert

```bash
{{< alert theme="warning" >}} # warning, success, info, danger
**this** is a text
{{< /alert >}}
```

### expand

```bash
{{< expand "Expand me" >}}Some Markdown Contents{{< /expand >}}
```

### img

```bash
// path: static/images/whoami/avatar.jpg
{{< img src="/images/whoami/avatar.jpg" title="Image4" caption="Image description" alt="image alt" width="50px" height="50px">}}
```

### notice

```bash
{{< notice success >}} # success, info, warning, error
success
{{< /notice >}}
```

### color

```bash
{{< color "#0000ff" >}}*text*{{< /color >}}
```

### box

```bash
{{< box >}}
Some contents
{{< /box >}}
```

### boxmd

```bash
{{< boxmd >}}
Some markdown contents
{{< /boxmd >}}
```

### code / codes => ์ฝ”๋“œ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒ„์ „์œผ๋กœ ์ œ๊ณตํ•  ๋•Œ ์“ฐ์„ธ์š”. ๋“ค์—ฌ์“ฐ๊ธฐ ์ž˜๋ชปํ•˜๋ฉด ์ด์ƒํ•˜๊ฒŒ ๋‚˜์™€์š”.

`````
{{< codes java javascript >}}
{{< code >}}
```java
System.out.println('Hello World!');
```
{{< /code >}}
{{< code >}}
```javascript
console.log('Hello World!');
```
{{< /code >}}
{{< /codes >}}
`````

### tab / tabs => ์—ฌ๋Ÿฌ ๋ฒ„์ „์˜ ๋ทฐ๋ฅผ ์ œ๊ณตํ•  ๋•Œ ์“ฐ์„ธ์š”

ํƒญ์„ ๋งŒ๋“ค ๋•Œ, ๊ฐ ํƒญ๋งˆ๋‹ค ์•ˆ์˜ ๋‚ด์šฉ์— ๋”ฐ๋ผ ๊ณ ์œ  ์•„์ด๋””๋ฅผ ๋ถ€์—ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์—, Tab ์•ˆ์— ์žˆ๋Š” ๋‚ด์šฉ์ด ์„œ๋กœ ๋‹ฌ๋ผ์•ผํ•ฉ๋‹ˆ๋‹ค.

`````
{{< tabs Windows MacOS Ubuntu >}}
{{< tab >}}

### Windows section

```javascript
console.log('Hello World!');
```

{{< /tab >}}
{{< tab >}}

### MacOS section

Hello world!
{{< /tab >}}
{{< tab >}}

### Ubuntu section

Great!
{{< /tab >}}
{{< /tabs >}}
`````