Hugo + Papermod主题 – 添加友情链接页面

1. 添加 Shortcode 模板

layouts/shortcodes/ 下创建文件 friends-link.html

HTML
<div class="friends-container">
    {{ $lang := .Site.Language.Lang }}
    {{ $links := index site.Data (printf "links.%s" $lang) }}
    {{ range $links }}
        {{ if .title }}
            <h4>{{ .title }}</h4>
        {{ else }}
            <a class="friendurl" target="_blank" href="{{ .link }}" title="{{ .description }}">
                <div class="frienddiv">
                    <div class="frienddivleft">
                        <img class="myfriend" src="{{ .avatar }}" alt="{{ .name }}" />
                    </div>
                    <div class="frienddivright">
                        <div class="friendname">{{ .name }}</div>
                        <div class="friendinfo">{{ .description }}</div>
                    </div>
                </div>
            </a>
        {{ end }}
    {{ end }}
</div>
点击展开查看更多

2. 创建多语言数据文件

data/ 目录下添加两个文件

BASH
data/
├── links.zh.yaml
└── links.en.yaml
点击展开查看更多

links.zh.yaml 为例:

YAML
# - title: xxx 可以为友链列表设置分类标题

- title: 朋友们 1

- name: 名称-1
  link: https://blog.com
  description: 描述,描述,描述
  avatar: https://xxx.com/xxx.jpg

- name: 名称-2
  link: https://blog.com
  description: 描述,描述,描述
  avatar: https://xxx.com/xxx.jpg

- title: 朋友们 2

- name: 名称-1
  link: https://example.com
  description: 描述,描述,描述
  avatar: https://xxx.com/xxx.jpg
点击展开查看更多

3. 添加页面内容

content 下添加两个页面文件

BASH
content/
├── friends-links.zh.md
└── friends-links.en.md
点击展开查看更多

friends-links.zh.md 为例:

MARKDOWN
---
title: "友情链接"
draft: false
ShowReadingTime: false
showToc: false
TocOpen: false
showDocInfo: false
enableDonate: false
---

# 这里可以使用 Markdown 写内容...
# 去掉 $ 符号
{${< friends-link >}$} 
点击展开查看更多

4. 添加CSS样式

assets/css/extended 下创建文件 friends-links.css

CSS
.friendurl {
    text-decoration: none !important;
    color: var(--primary) !important;
    box-shadow: none !important;
}

.myfriend {
    width: 56px !important;
    height: 56px !important;
    border-radius: 50% !important;
    padding: 2px;
    margin-top: 20px !important;
    margin-left: 14px !important;
    background-color: #fff;
}

.frienddiv {
    overflow: auto;
    height: 100px;
    width: 49%;
    display: inline-block !important;
    border-radius: 5px;
    background: none;

    -webkit-transition: box-shadow 0.4s ease, transform 0.4s ease;
    -moz-transition: box-shadow 0.4s ease, transform 0.4s ease;
    -o-transition: box-shadow 0.4s ease, transform 0.4s ease;

    transition: box-shadow 0.4s ease, transform 0.4s ease;
}

.frienddiv:hover {
    background: var(--code-bg);
    transition: box-shadow 1s ease, transform 1s ease;
}

.dark .frienddiv:hover {
    background: var(--code-bg);
    transition: box-shadow 1s ease, transform 1s ease;
}

.frienddiv:hover .frienddivleft img {
    transition: 0.9s !important;
    transform: rotate(360deg) !important;
}

.frienddivleft {
    width: 92px;
    float: left;
    margin-right: -5px;
}

.frienddivright {
    margin-top: 18px;
    margin-right: 18px;
}

.friendname {
    text-overflow: ellipsis;
    font-size: 100%;
    margin-bottom: 5px;
    color: var(--primary);
}

.friendinfo {
    text-overflow: ellipsis;
    font-size: 70%;
    color: var(--primary);
}

@media screen and (max-width: 600px) {
    .friendinfo {
        display: none;
    }

    .frienddivleft {
        width: 84px;
        margin: auto;
    }

    .frienddivright {
        height: 100%;
        margin: auto;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .friendname {
        font-size: 18px;
    }
}

.site-friend-link-image {
    border-radius: 50% !important;
}

.site-friend:hover img {
    transition: 0.9s !important;
    transform: rotate(360deg) !important;
}
点击展开查看更多

5. 启动并验证

BASH
hugo server
点击展开查看更多

friends links imgs

版权声明

作者: Donghai

链接: https://mgrowup.com/posts/hugo-papermod/add-friend-links-page/

许可证: CC BY-NC-SA 4.0

文章已根据知识共享署名-非商业性使用-相同方式共享4.0国际许可协议授权。请注明来源,仅非商业使用,并保持相同的许可协议。

评论

开始搜索

输入关键词搜索文章内容

↑↓
ESC
⌘K 快捷键