paperMod是一个简单友好的单栏主题,但是它默认没有一个链接模板。
以下我用3种方法增加链接页面,简单可行~
用markdown表格收集链接
hugo new links.md
接下来就像编辑普通文章一样,可以给这个页面增加文字说明; 在需要放置链接的地方增加双栏表格代码(你可以扩展,弄成三栏的) 这个方式可以把单页弄成任意主题的网址导航~~
| | |
| :----------- | :----------- |
| [BlogFinder](https://bf.zzxworld.com/s/diligent_list)   | 发现优秀的个人博客 |
| [Discovery Insights](https://discoveryinsights.site/)   | 独立博客推荐,发现洞见,独立博客推荐|
如果你需要站外网址统一在新标签页打开,可以在单页模板里附加一段Javascript:
比如paperMod主题的对应模板是 layouts\_default\single.html
<script>
// 确保DOM完全加载
document.addEventListener('DOMContentLoaded', function () {
// 获取表格内所有的<a>元素
var tableLinks = document.querySelectorAll('table a');
// 遍历所有表格内的链接
for (var i = 0; i < tableLinks.length; i++) {
// 检查链接是否已经有target属性
if (!tableLinks[i].hasAttribute('target')) {
// 设置target属性为"_blank",使其在新标签页中打开
tableLinks[i].setAttribute('target', '_blank');
}
}
});
</script>
效果预览
BlogFinder | 发现优秀的个人博客 |
Discovery Insights | 独立博客推荐,发现洞见,独立博客推荐 |
使用个站商店的小红帽链接API
如果你是 个站商店 的用户,建议采用这种方式:
使用这个方案的好处是,不用通过编辑markdown文件来发布新的链接;它依赖的是一个第三方网站提供的API;
缺点是,只能添加那个站点生态圈里的链接;
具体步骤见 往期建站log : 小红帽友链送货上门安装服务(hugo shortcode)
效果预览
这些友情链接是来自个站商店的一个子项目 『』,点 这里 访问我在个站商店上的主页自定义 shortcode 模板
这个就是短代码了
自由度拉满,结合css可以做出匹配你的站点主题的链接样式
layouts/shortcodes
文件夹下新增 friend.html 文件
{{- if .IsNamedParams -}}
<a target="_blank" href={{ .Get "url" }} title={{if .Get "title"}} {{.Get "title"}} {{else}} {{.Get "name"}} {{end}} class="friendurl">
<div class="frienddiv">
<div class="frienddivleft">
<img class="myfriend" src={{ .Get "logo" }} />
</div>
<div class="frienddivright">
<div class="friendname">{{- .Get "name" -}}</div>
<div class="friendinfo">{{- .Get "word" -}}</div>
</div>
</div>
</a>
{{- end }}
参考样式:
/*友链*/
.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);
/*-webkit-transform: scale(1.08);*/
/*-moz-transform: scale(1.08);*/
/*-ms-transform: scale(1.08);*/
/*-o-transform: scale(1.08);*/
/*transform: scale(1.08);*/
transition: box-shadow 1s ease, transform 1s ease;
}
.dark .frienddiv:hover {
background: var(--code-bg);
/*-webkit-transform: scale(1.08);*/
/*-moz-transform: scale(1.08);*/
/*-ms-transform: scale(1.08);*/
/*-o-transform: scale(1.08);*/
/*transform: scale(1.08);*/
transition: box-shadow 1s ease, transform 1s ease;
}
.frienddiv:hover .frienddivleft img {
transition: 0.9s !important;
/*-webkit-transition: 0.9s !important;*/
/*-moz-transition: 0.9s !important;*/
/*-o-transition: 0.9s !important;*/
transform: rotate(360deg) !important;
/*-webkit-transform: rotate(360deg) !important;*/
/*-moz-transform: rotate(360deg) !important;*/
/*-o-transform: rotate(360deg) !important;*/
/*-ms-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);
}
/* .dark .friendname, .dark .friendinfo {
color: rgba(180, 181, 182, 0.8);
} */
@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;
}
}
/* 小红帽opt */
.site-friend-link-image {
border-radius: 50% !important;
}
.site-friend:hover img {
transition: 0.9s !important;
transform: rotate(360deg) !important;
}
使用示例:(图片支持绝对路径和相对路径,可以自定义title,默认为name) 记得加上首尾的{{}}
< friend name="小报童专栏推荐" url="https://read.daoyuchan.com" logo="https://daoyuc.oss-cn-hangzhou.aliyuncs.com/std/read.png" word="帮你把洞察转化为价值" >
< friend name="谙前码后" url="https://dadan.jaxer.cc/" title="一个小程序开发者" logo="/links/jaxer.png" word="用,写,迭代。爬虫不看样式。" >
效果预览
小报童专栏推荐
帮你把洞察转化为价值
谙前码后
用,写,迭代。爬虫不看样式。