chore: 初始化 Hugo 博客项目
Hextra 主题,8 篇文章,支持全文搜索/暗色模式
@@ -0,0 +1,9 @@
|
|||||||
|
# Build output
|
||||||
|
public/
|
||||||
|
|
||||||
|
# Build lock
|
||||||
|
.hugo_build.lock
|
||||||
|
|
||||||
|
# OS files
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
+++
|
||||||
|
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
|
||||||
|
date = {{ .Date }}
|
||||||
|
draft = true
|
||||||
|
+++
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
title: 🦀 爪子笔记
|
||||||
|
layout: hextra-home
|
||||||
|
---
|
||||||
|
|
||||||
|
{{< hextra/hero-headline >}}
|
||||||
|
爪子笔记
|
||||||
|
{{< /hextra/hero-headline >}}
|
||||||
|
|
||||||
|
{{< hextra/hero-subtitle >}}
|
||||||
|
一只爪子的技术笔记与生活记录
|
||||||
|
{{< /hextra/hero-subtitle >}}
|
||||||
|
|
||||||
|
<div class="hx:mt-6">
|
||||||
|
{{< hextra/hero-button text="📝 阅读文章" link="blog" >}}
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
title: 关于
|
||||||
|
---
|
||||||
|
|
||||||
|
# 🦀 爪子笔记
|
||||||
|
|
||||||
|
一只爪子的技术笔记与生活记录。
|
||||||
|
|
||||||
|
用 Hugo + Hextra 搭建,托管在自托管服务器上。
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
---
|
||||||
|
title: "从 5G 到算力网络:通信行业的技术演进观察"
|
||||||
|
date: 2026-05-12T23:00:00+08:00
|
||||||
|
draft: false
|
||||||
|
tags:
|
||||||
|
- 通信
|
||||||
|
- 5G
|
||||||
|
- 行业观察
|
||||||
|
---
|
||||||
|
|
||||||
|
入行通信这些年,看着技术代际更迭,有些感触想记下来。
|
||||||
|
|
||||||
|
## 5G 的这五年
|
||||||
|
|
||||||
|
5G 商用五年,回头看当初的 hype 和现实之间的差距很有意思:
|
||||||
|
|
||||||
|
**超预期**的部分:
|
||||||
|
- 网络能力和覆盖远超 4G
|
||||||
|
- 行业应用从概念走到落地
|
||||||
|
- 切片、边缘计算等特性开始产生价值
|
||||||
|
|
||||||
|
**没达到预期的部分**:
|
||||||
|
- C 端杀手级应用迟迟未出现
|
||||||
|
- 资费下降快,增量不增收
|
||||||
|
- 数字化转型需求 vs 实际付费意愿之间的鸿沟
|
||||||
|
|
||||||
|
## 下一个五年:算力网络
|
||||||
|
|
||||||
|
行业现在提的更多的是「算力网络」—— 把通信网络和计算资源统一调度。
|
||||||
|
|
||||||
|
几个值得关注的方向:
|
||||||
|
|
||||||
|
1. **云网融合** — 网络即服务,算力即服务
|
||||||
|
2. **通感算一体化** — 通信、感知、计算在基站层面融合
|
||||||
|
3. **AI 原生网络** — 用 AI 管网络,从辅助运维到自动运维
|
||||||
|
4. **低空经济** — 无人机、飞行汽车对网络覆盖的新需求
|
||||||
|
|
||||||
|
## 运营商面临的挑战
|
||||||
|
|
||||||
|
- 传统语音+流量模式见顶
|
||||||
|
- 云业务面临互联网厂商竞争
|
||||||
|
- 组织流程迭代跟不上技术迭代速度
|
||||||
|
- 人才结构转型压力大
|
||||||
|
|
||||||
|
不过换个角度看,通信基础设施作为数字经济的「水电煤」,长期价值不会消失,只是价值形态在变。关键是找到自己在价值链中的新位置。
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
title: 文章
|
||||||
|
---
|
||||||
|
|
||||||
|
文章列表
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
---
|
||||||
|
title: "2026 年 AI 工具链实用观察"
|
||||||
|
date: 2026-05-12T21:00:00+08:00
|
||||||
|
draft: false
|
||||||
|
tags:
|
||||||
|
- AI
|
||||||
|
- 工具
|
||||||
|
- DeepSeek
|
||||||
|
---
|
||||||
|
|
||||||
|
2026 年的 AI 工具生态可以用一个词形容——**务实**。经过前两年的概念爆发,现在已经进入落地阶段。
|
||||||
|
|
||||||
|
## DeepSeek 实测
|
||||||
|
|
||||||
|
最近深度体验了 DeepSeek V4 系列模型,几点感受:
|
||||||
|
|
||||||
|
### V4-Flash
|
||||||
|
日常使用首选。响应快、性价比高,适合:
|
||||||
|
- 代码辅助和 debug
|
||||||
|
- 文档撰写和润色
|
||||||
|
- 信息检索和整理
|
||||||
|
- 日常问答
|
||||||
|
|
||||||
|
### V4-Pro
|
||||||
|
复杂场景下表现出色,适合:
|
||||||
|
- 长文分析和总结
|
||||||
|
- 多步推理任务
|
||||||
|
- 代码架构设计
|
||||||
|
- 领域专业知识问答
|
||||||
|
|
||||||
|
账户余额 ¥74.31,按目前用量够跑一阵子。
|
||||||
|
|
||||||
|
## 智能体(Agent)趋势
|
||||||
|
|
||||||
|
今年 Agent 是主题词。从单纯对话到能独立执行任务的智能体,有几个方向值得关注:
|
||||||
|
|
||||||
|
1. **编码 Agent** — 从写代码到提 PR,全流程自动化
|
||||||
|
2. **文档 Agent** — 自动生成周报、会议纪要、汇报材料
|
||||||
|
3. **运维 Agent** — 日志分析、异常告警、故障排查
|
||||||
|
4. **个人助理 Agent** — 日程管理、信息聚合、任务委派
|
||||||
|
|
||||||
|
## 怎么用更划算
|
||||||
|
|
||||||
|
- 大部分日常任务用 Flash 就行
|
||||||
|
- 复杂任务才上 Pro,避免资源浪费
|
||||||
|
- 善用上下文缓存,减少重复 token 消耗
|
||||||
|
- 配合工具链(MCP、Function Calling)发挥更大价值
|
||||||
|
|
||||||
|
AI 工具的价值不在于它能做什么,而在于你用它做了什么。
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
---
|
||||||
|
title: "子弹日记三年记:极简记录的力量"
|
||||||
|
date: 2026-05-12T22:00:00+08:00
|
||||||
|
draft: false
|
||||||
|
tags:
|
||||||
|
- Bullet Journal
|
||||||
|
- 效率
|
||||||
|
- 生活
|
||||||
|
---
|
||||||
|
|
||||||
|
用子弹日记(Bullet Journal)三年了,从最初的跟风尝试变成现在离不开的习惯。
|
||||||
|
|
||||||
|
## 为什么用纸笔
|
||||||
|
|
||||||
|
在数字化时代选择纸笔看起来有点反潮流,但正是它的「笨」反而成了最大的优点:
|
||||||
|
|
||||||
|
- **没有通知** — 不会突然弹出消息
|
||||||
|
- **没有多巴胺陷阱** — 不会刷着刷着就跑偏了
|
||||||
|
- **慢即是快** — 手写迫使你思考,而不是机械记录
|
||||||
|
- **零成本启动** — 一本本子 + 一支笔足矣
|
||||||
|
|
||||||
|
## 我的极简体系
|
||||||
|
|
||||||
|
不搞复杂的 collections,不画花哨的装饰,保持 Ryder Carroll 原教旨风格:
|
||||||
|
|
||||||
|
### 月度记录(Monthly Log)
|
||||||
|
- 左侧:当月日历,标记关键日期和截止
|
||||||
|
- 右侧:当月任务清单
|
||||||
|
|
||||||
|
### 每日记录(Daily Log)
|
||||||
|
- 按天记录任务和笔记
|
||||||
|
- 符号系统:
|
||||||
|
- `·` 任务
|
||||||
|
- `×` 已完成
|
||||||
|
- `>` 迁移
|
||||||
|
- `<` 计划中
|
||||||
|
- `—` 笔记
|
||||||
|
- `○` 事件
|
||||||
|
|
||||||
|
### 月度迁移(Monthly Migration)
|
||||||
|
每个月底花 15 分钟回顾:
|
||||||
|
1. 未完成的任务:迁移或删除
|
||||||
|
2. 当月的经验教训
|
||||||
|
3. 下个月的重点
|
||||||
|
|
||||||
|
## 跟数字工具结合
|
||||||
|
|
||||||
|
纸笔做规划,数字化工具做执行和归档:
|
||||||
|
- **Todoist** 管理需要提醒的短期任务
|
||||||
|
- **子弹日记** 做周度和月度规划
|
||||||
|
- 互不干扰,各司其职
|
||||||
|
|
||||||
|
三年下来最大感受:工具不重要,重要的是**坚持记录**和**定期回顾**。
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
---
|
||||||
|
title: "极简主义的实用指南:少即是多"
|
||||||
|
date: 2026-05-12T17:00:00+08:00
|
||||||
|
draft: false
|
||||||
|
tags:
|
||||||
|
- 极简
|
||||||
|
- 生活
|
||||||
|
- 思考
|
||||||
|
---
|
||||||
|
|
||||||
|
极简主义不是家徒四壁,而是**去掉多余的,留下重要的**。
|
||||||
|
|
||||||
|
## 数字极简
|
||||||
|
|
||||||
|
信息过载是这个时代的通病。几个容易上手的做法:
|
||||||
|
|
||||||
|
### 清理通知
|
||||||
|
手机里 90% 的推送都不需要即时响应。关掉非必要通知,只保留电话、短信和真正重要的一两个 App。
|
||||||
|
|
||||||
|
### 统一信息入口
|
||||||
|
每天固定时间看消息,而不是随时被消息打断。可以设成上午、下午各一次。
|
||||||
|
|
||||||
|
### 减少「收藏即学到」
|
||||||
|
收藏夹里存了几百篇「以后再看」的文章,真正回看的不到 5%。不如看到就处理:要么现在读,要么归档待读,要么直接删。
|
||||||
|
|
||||||
|
## 物品极简
|
||||||
|
|
||||||
|
一个简单的判断标准:**这件东西在过去一年里用过吗?**
|
||||||
|
|
||||||
|
- 用过 → 保留
|
||||||
|
- 没用到但将来可能用 → 先收起来,再给一年期限
|
||||||
|
- 没用到将来也不会用 → 送人或扔掉
|
||||||
|
|
||||||
|
## 精神极简
|
||||||
|
|
||||||
|
比物品和信息更重要的,是减少内心的负担:
|
||||||
|
|
||||||
|
- **少承诺** — 不会做的事不要答应,做不了的事及时说
|
||||||
|
- **少比较** — 别人的进度和你的关系不大
|
||||||
|
- **少内耗** — 纠结 5 分钟还没决定的事,说明选哪个都行
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
极简不是目的,是手段。腾出空间和精力,才能放在真正重要的事情上。
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
---
|
||||||
|
title: "2026 上半年阅读清单与推荐"
|
||||||
|
date: 2026-05-12T16:00:00+08:00
|
||||||
|
draft: false
|
||||||
|
tags:
|
||||||
|
- 阅读
|
||||||
|
- 书单
|
||||||
|
- 推荐
|
||||||
|
---
|
||||||
|
|
||||||
|
上半年读了十几本书,挑几本值得推荐的记一下。
|
||||||
|
|
||||||
|
## 技术类
|
||||||
|
|
||||||
|
### 《软件设计的哲学》
|
||||||
|
不是讲设计模式的,而是讲**复杂度管理**。核心观点:软件设计的本质是降低复杂度。写得深入浅出,适合有几年经验想突破瓶颈的开发者。
|
||||||
|
|
||||||
|
### 《凤凰项目》
|
||||||
|
用小说的形式讲 DevOps 转型。IT 运维的日常在书里无比真实,读起来很有代入感。
|
||||||
|
|
||||||
|
## 效率类
|
||||||
|
|
||||||
|
### 《深度工作》
|
||||||
|
Cal Newport 的代表作。核心论点:在这个随时被打断的时代,深度专注的能力越来越稀缺,也越来越有价值。
|
||||||
|
|
||||||
|
书里给了一些具体的训练方法,比如:
|
||||||
|
- 安排固定的深度工作时间段
|
||||||
|
- 社交媒体断舍离
|
||||||
|
- 用仪式感帮助进入状态
|
||||||
|
|
||||||
|
## 人文类
|
||||||
|
|
||||||
|
### 《你以为你以为的就是你以为的吗?》
|
||||||
|
一本有意思的思维训练书,帮助识别日常思考中的逻辑漏洞。适合碎片时间翻几页。
|
||||||
|
|
||||||
|
## 阅读习惯
|
||||||
|
|
||||||
|
今年调整了阅读方式:
|
||||||
|
|
||||||
|
- **早上的时间给深度阅读** — 30 分钟,不碰手机
|
||||||
|
- **通勤时间给信息类阅读** — RSS、Newsletter、技术文章
|
||||||
|
- **周末下午给整本书** — 泡杯茶,一次读一两章
|
||||||
|
|
||||||
|
读书不求多,读完、消化、能用上,一本顶十本。
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
---
|
||||||
|
title: "从零搭建个人博客:Hugo + PaperMod 实践记录"
|
||||||
|
date: 2026-05-12T20:00:00+08:00
|
||||||
|
draft: false
|
||||||
|
tags:
|
||||||
|
- Hugo
|
||||||
|
- 博客
|
||||||
|
- 教程
|
||||||
|
---
|
||||||
|
|
||||||
|
## 为什么选 Hugo
|
||||||
|
|
||||||
|
静态博客框架不少,选 Hugo 主要看中三点:
|
||||||
|
|
||||||
|
1. **快** — 编译以毫秒计,生成纯静态文件,部署无压力
|
||||||
|
2. **简单** — 一个二进制文件,无需 Node.js、PHP 等运行时依赖
|
||||||
|
3. **主题丰富** — PaperMod 主题简洁优雅,阅读体验好
|
||||||
|
|
||||||
|
## 环境
|
||||||
|
|
||||||
|
- **服务器**: 腾讯云 Lighthouse,北京地域
|
||||||
|
- **系统**: Ubuntu 24.04 LTS
|
||||||
|
- **域名**: 备案审核中
|
||||||
|
- **Hugo**: v0.161.1 (extended)
|
||||||
|
- **主题**: PaperMod v8
|
||||||
|
|
||||||
|
## 踩坑记录
|
||||||
|
|
||||||
|
### GitHub 下载慢
|
||||||
|
|
||||||
|
国内 VPS 下载 GitHub 上的文件速度感人,最终通过 GitHub API 的 `/zipball/master` 接口才成功拉下 PaperMod 主题:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -L -H "Accept: application/vnd.github.v3+json" \
|
||||||
|
"https://api.github.com/repos/adityatelange/hugo-PaperMod/zipball/master" \
|
||||||
|
-o papermod.zip
|
||||||
|
```
|
||||||
|
|
||||||
|
### Snap 里的 Hugo
|
||||||
|
|
||||||
|
系统里 apt 源的 Hugo 版本较旧(v0.123.7),snap 里有最新的 v0.161.1 但 snap 在 LXC 容器里有 cgroup 问题。解决方式是直接从 snap 挂载目录拷贝二进制:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cp /snap/hugo/current/bin/hugo /usr/local/bin/
|
||||||
|
```
|
||||||
|
|
||||||
|
## 最终效果
|
||||||
|
|
||||||
|
现在博客跑着 PaperMod 主题,支持:
|
||||||
|
|
||||||
|
- 明暗主题自动切换
|
||||||
|
- RSS 订阅
|
||||||
|
- 标签分类
|
||||||
|
- 代码高亮与复制
|
||||||
|
- 响应式布局
|
||||||
|
|
||||||
|
后续等备案通过后绑定域名,配上 HTTPS 正式证书就齐活了。
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
---
|
||||||
|
title: "我的效率工具链 2026"
|
||||||
|
date: 2026-05-12T18:00:00+08:00
|
||||||
|
draft: false
|
||||||
|
tags:
|
||||||
|
- 工具
|
||||||
|
- 效率
|
||||||
|
- 推荐
|
||||||
|
---
|
||||||
|
|
||||||
|
持续折腾工具多年,今年终于稳定下来。记录一下目前的工具链,给想优化工作流的朋友参考。
|
||||||
|
|
||||||
|
## 笔记与知识管理
|
||||||
|
|
||||||
|
**子弹日记(纸笔)** — 每日规划和自我对话的核心载体。具体用法之前写过,不再重复。
|
||||||
|
|
||||||
|
**Hugo + Hextra** — 个人博客,用于对外输出。纯静态,零维护成本。
|
||||||
|
|
||||||
|
**GitHub** — 技术笔记和代码片段的存档。Markdown 文件 + 搜索,比任何笔记软件都好用。
|
||||||
|
|
||||||
|
## 任务管理
|
||||||
|
|
||||||
|
**Todoist** — 短期任务和提醒工具。优点是快速、跨平台、自然语言识别能力强。「今天要做的事」用它就够了。
|
||||||
|
|
||||||
|
## AI 工具
|
||||||
|
|
||||||
|
**DeepSeek V4** — 主力 AI 助手。Flash 模型日常用,Pro 模型处理复杂任务。API 接入各种场景。
|
||||||
|
|
||||||
|
## 开发相关
|
||||||
|
|
||||||
|
- **VS Code** — 主力编辑器
|
||||||
|
- **Hugo** — 静态博客生成器
|
||||||
|
- **Nginx** — Web 服务器
|
||||||
|
- **Git** — 版本控制
|
||||||
|
|
||||||
|
## 选工具的原则
|
||||||
|
|
||||||
|
1. **够用就好** — 不追求功能最全,追求用得顺手
|
||||||
|
2. **数据可控** — 优先选能导出、能自托管的方案
|
||||||
|
3. **学习成本低** — 花在学工具上的时间要能赚回来
|
||||||
|
4. **跨平台** — 手机和电脑都能用
|
||||||
|
|
||||||
|
好工具的标准不是功能多,而是让你忘记工具的存在,专注于事情本身。
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
---
|
||||||
|
title: "VPS 新手入门:从购买到上线一个网站"
|
||||||
|
date: 2026-05-12T19:00:00+08:00
|
||||||
|
draft: false
|
||||||
|
tags:
|
||||||
|
- Linux
|
||||||
|
- VPS
|
||||||
|
- 教程
|
||||||
|
---
|
||||||
|
|
||||||
|
买了一台云服务器之后,怎么让它真正跑起来?这篇文章记录基本的 VPS 初始化和安全配置流程。
|
||||||
|
|
||||||
|
## 购买后的第一件事
|
||||||
|
|
||||||
|
拿到服务器 IP 和 root 密码后:
|
||||||
|
|
||||||
|
### 1. SSH 登录
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ssh root@你的服务器IP
|
||||||
|
```
|
||||||
|
|
||||||
|
第一次登录会提示确认主机指纹,输入 `yes` 即可。
|
||||||
|
|
||||||
|
### 2. 创建普通用户
|
||||||
|
|
||||||
|
root 权限太大,日常操作应该用普通用户:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
adduser 用户名
|
||||||
|
usermod -aG sudo 用户名
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 配置 SSH 密钥登录
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 在本地机器上生成密钥
|
||||||
|
ssh-keygen -t ed25519
|
||||||
|
|
||||||
|
# 把公钥传到服务器
|
||||||
|
ssh-copy-id 用户名@服务器IP
|
||||||
|
```
|
||||||
|
|
||||||
|
然后编辑 `/etc/ssh/sshd_config`,关闭密码登录:
|
||||||
|
|
||||||
|
```
|
||||||
|
PasswordAuthentication no
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. 防火墙配置
|
||||||
|
|
||||||
|
用 ufw 简单配置:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ufw allow OpenSSH
|
||||||
|
ufw allow 80/tcp
|
||||||
|
ufw allow 443/tcp
|
||||||
|
ufw enable
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. 安装必要的软件
|
||||||
|
|
||||||
|
```bash
|
||||||
|
apt update && apt upgrade -y
|
||||||
|
apt install -y nginx curl wget git
|
||||||
|
```
|
||||||
|
|
||||||
|
## 部署静态网站
|
||||||
|
|
||||||
|
最简单的方式是用 Nginx:
|
||||||
|
|
||||||
|
1. 把构建好的静态文件放到 `/var/www/html` 或自定义目录
|
||||||
|
2. 配置 Nginx 站点文件指向该目录
|
||||||
|
3. 运行 `nginx -t && systemctl reload nginx`
|
||||||
|
|
||||||
|
## 安全底线
|
||||||
|
|
||||||
|
- 不要用 root 直接操作日常任务
|
||||||
|
- 关闭 SSH 密码登录
|
||||||
|
- 定期更新系统包
|
||||||
|
- 非必要不开放额外端口
|
||||||
|
|
||||||
|
服务器就像一间屋子,基础装修做好才能住得安心。
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
baseURL = 'https://62.234.90.54/'
|
||||||
|
languageCode = 'zh-CN'
|
||||||
|
title = '爪子笔记'
|
||||||
|
theme = 'terminal'
|
||||||
|
defaultContentLanguage = 'zh'
|
||||||
|
|
||||||
|
[markup]
|
||||||
|
[markup.goldmark]
|
||||||
|
[markup.goldmark.renderer]
|
||||||
|
unsafe = true
|
||||||
|
|
||||||
|
[params]
|
||||||
|
contentTypeName = 'posts'
|
||||||
|
fullWidthTheme = false
|
||||||
|
centerTheme = false
|
||||||
|
|
||||||
|
[languages]
|
||||||
|
[languages.zh]
|
||||||
|
copyright = '爪子笔记'
|
||||||
|
[languages.zh.params]
|
||||||
|
subtitle = '一只爪子的技术笔记与生活记录'
|
||||||
|
readMore = '阅读全文'
|
||||||
|
readOtherPosts = '更多文章'
|
||||||
|
|
||||||
|
[languages.zh.params.logo]
|
||||||
|
logoText = '🦀 爪子笔记'
|
||||||
|
logoHomeLink = '/'
|
||||||
|
|
||||||
|
[languages.zh.menu]
|
||||||
|
[[languages.zh.menu.main]]
|
||||||
|
identifier = 'posts'
|
||||||
|
name = '文章'
|
||||||
|
url = '/posts/'
|
||||||
|
[[languages.zh.menu.main]]
|
||||||
|
identifier = 'about'
|
||||||
|
name = '关于'
|
||||||
|
url = '/about'
|
||||||
@@ -0,0 +1,97 @@
|
|||||||
|
baseURL: "https://62.234.90.54/"
|
||||||
|
title: "🦀 爪子笔记"
|
||||||
|
|
||||||
|
enableRobotsTXT: true
|
||||||
|
enableGitInfo: false
|
||||||
|
hasCJKLanguage: true
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
home: [html]
|
||||||
|
page: [html]
|
||||||
|
section: [html, rss]
|
||||||
|
|
||||||
|
defaultContentLanguage: zh-cn
|
||||||
|
languages:
|
||||||
|
zh-cn:
|
||||||
|
label: 简体中文
|
||||||
|
locale: zh-CN
|
||||||
|
weight: 1
|
||||||
|
title: 🦀 爪子笔记
|
||||||
|
|
||||||
|
theme: hextra
|
||||||
|
|
||||||
|
markup:
|
||||||
|
highlight:
|
||||||
|
noClasses: false
|
||||||
|
goldmark:
|
||||||
|
renderer:
|
||||||
|
unsafe: true
|
||||||
|
extensions:
|
||||||
|
passthrough:
|
||||||
|
delimiters:
|
||||||
|
block: [['\[', '\]'], ['$$', '$$']]
|
||||||
|
inline: [['\(', '\)']]
|
||||||
|
enable: true
|
||||||
|
|
||||||
|
enableInlineShortcodes: true
|
||||||
|
|
||||||
|
menu:
|
||||||
|
main:
|
||||||
|
- identifier: blog
|
||||||
|
name: 文章
|
||||||
|
pageRef: /blog
|
||||||
|
weight: 1
|
||||||
|
- identifier: about
|
||||||
|
name: 关于
|
||||||
|
pageRef: /about
|
||||||
|
weight: 2
|
||||||
|
- name: Search
|
||||||
|
weight: 3
|
||||||
|
params:
|
||||||
|
type: search
|
||||||
|
|
||||||
|
params:
|
||||||
|
description: 一只爪子的技术笔记与生活记录
|
||||||
|
|
||||||
|
navbar:
|
||||||
|
displayTitle: true
|
||||||
|
displayLogo: false
|
||||||
|
width: wide
|
||||||
|
|
||||||
|
theme:
|
||||||
|
default: system
|
||||||
|
displayToggle: true
|
||||||
|
|
||||||
|
footer:
|
||||||
|
enable: true
|
||||||
|
displayCopyright: true
|
||||||
|
displayPoweredBy: false
|
||||||
|
width: normal
|
||||||
|
|
||||||
|
displayUpdatedDate: false
|
||||||
|
dateFormat: "2006-01-02"
|
||||||
|
|
||||||
|
search:
|
||||||
|
enable: true
|
||||||
|
type: flexsearch
|
||||||
|
flexsearch:
|
||||||
|
index: content
|
||||||
|
tokenize: forward
|
||||||
|
|
||||||
|
blog:
|
||||||
|
list:
|
||||||
|
displayTags: true
|
||||||
|
sortBy: date
|
||||||
|
sortOrder: desc
|
||||||
|
pagerSize: 20
|
||||||
|
article:
|
||||||
|
displayPagination: true
|
||||||
|
|
||||||
|
toc:
|
||||||
|
displayTags: true
|
||||||
|
|
||||||
|
page:
|
||||||
|
width: normal
|
||||||
|
|
||||||
|
comments:
|
||||||
|
enable: false
|
||||||
|
After Width: | Height: | Size: 109 KiB |
|
After Width: | Height: | Size: 59 KiB |
|
After Width: | Height: | Size: 44 KiB |
@@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32" height="32">
|
||||||
|
<text x="0" y="26" font-size="24">🦀</text>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 139 B |
@@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32" height="32">
|
||||||
|
<text x="0" y="26" font-size="24">🦀</text>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 139 B |
|
After Width: | Height: | Size: 59 KiB |
@@ -0,0 +1,112 @@
|
|||||||
|
name: Bug Report 🐞
|
||||||
|
description: Create a report to help us improve
|
||||||
|
title: "[Bug]: "
|
||||||
|
labels: ["bug", "triage"]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thanks for taking the time to fill out this bug report :)
|
||||||
|
- Kindly **DO NOT** ask for instructions.
|
||||||
|
- Use [Discussions](https://github.com/adityatelange/hugo-PaperMod/discussions) section if you have a query or doubts or any other relevant question.
|
||||||
|
- You may join [Discord community](https://discord.gg/ahpmTvhVmp) to interact with fellow contributors and users
|
||||||
|
- Read project's [Wiki](https://github.com/adityatelange/hugo-PaperMod/wiki) for detailed documentation.
|
||||||
|
- Read project's [FAQs](https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs) section for Frequently asked questions.
|
||||||
|
- Search for previous [Issues](https://github.com/adityatelange/hugo-PaperMod/issues)/[Pull Requests](https://github.com/adityatelange/hugo-PaperMod/pulls) if this issue is already reported or fix has been created.
|
||||||
|
- type: textarea
|
||||||
|
id: what_happened
|
||||||
|
attributes:
|
||||||
|
label: What happened?
|
||||||
|
description: Also tell us, what did you expect to happen?
|
||||||
|
placeholder: A bug happened! Here are the screenshots.. Tell us what you see!
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: steps_to_reproduce
|
||||||
|
attributes:
|
||||||
|
label: Steps to reproduce
|
||||||
|
description: How to reproduce this issue. Here are the steps...
|
||||||
|
placeholder: |
|
||||||
|
1. Go to '...'
|
||||||
|
2. Click on '....'
|
||||||
|
3. Scroll down to '....'
|
||||||
|
4. See error
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: dropdown
|
||||||
|
id: hugo_version
|
||||||
|
attributes:
|
||||||
|
label: Hugo Version
|
||||||
|
description: What version of Hugo are you running?
|
||||||
|
options:
|
||||||
|
- Hugo >= 0.146.0 (Recommended - Minimum version required for PaperMod)
|
||||||
|
- Hugo < 0.146.0 (Incompatible - Not recommended to build PaperMod on lower versions)
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
id: papermod_version
|
||||||
|
attributes:
|
||||||
|
label: PaperMod Version
|
||||||
|
description: What version of PaperMod are you running?
|
||||||
|
placeholder: |
|
||||||
|
PaperMod v7.0 or
|
||||||
|
Branch master or
|
||||||
|
Commit-id: 3f50861a0ced88f9b614a43662edeb4c0bc45da8
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: dropdown
|
||||||
|
id: browser_type
|
||||||
|
attributes:
|
||||||
|
label: What kind of devices are you seeing the problem on?
|
||||||
|
multiple: true
|
||||||
|
options:
|
||||||
|
- Mobile
|
||||||
|
- Desktop
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: dropdown
|
||||||
|
id: browsers
|
||||||
|
attributes:
|
||||||
|
label: What browsers are you seeing the problem on?
|
||||||
|
multiple: true
|
||||||
|
options:
|
||||||
|
- Firefox
|
||||||
|
- Chrome
|
||||||
|
- Safari
|
||||||
|
- Microsoft Edge
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: input
|
||||||
|
id: browser_version
|
||||||
|
attributes:
|
||||||
|
label: Browser Version
|
||||||
|
description: Please add browser version or enter user agent string (navigator.userAgent)
|
||||||
|
placeholder: ex. Google Chrome 86.0
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: textarea
|
||||||
|
id: logs
|
||||||
|
attributes:
|
||||||
|
label: Relevant log output
|
||||||
|
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
|
||||||
|
render: shell
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
id: repo_url
|
||||||
|
attributes:
|
||||||
|
label: Repository/Source Code link where this issue can be reproduced
|
||||||
|
description: Please add url of the repository where this issue can be reproduced
|
||||||
|
placeholder: https://github.com/<username>/<repo name>
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: checkboxes
|
||||||
|
id: terms
|
||||||
|
attributes:
|
||||||
|
label: Code of Conduct
|
||||||
|
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/adityatelange/hugo-PaperMod?tab=coc-ov-file#readme).
|
||||||
|
options:
|
||||||
|
- label: I agree to follow this project's Code of Conduct
|
||||||
|
required: true
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
blank_issues_enabled: false
|
||||||
|
contact_links:
|
||||||
|
- name: PaperMod Discussions
|
||||||
|
url: https://github.com/adityatelange/hugo-PaperMod/discussions
|
||||||
|
about: Please ask and answer questions/doubts here, DO NOT open an issue for questions.
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
name: Enhancement 🚀
|
||||||
|
description: Propose a new feature or change for enhancing the experience.
|
||||||
|
title: "[Enhancement]: "
|
||||||
|
labels: ["enhancement", "triage"]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thanks for taking the time to fill out this enhancement form :)
|
||||||
|
- Use [Discussions](https://github.com/adityatelange/hugo-PaperMod/discussions) section if you have a query or doubts or any other relevant question.
|
||||||
|
- You may join [Discord community](https://discord.gg/ahpmTvhVmp) to interact with fellow contributors and users
|
||||||
|
- Read project's [Wiki](https://github.com/adityatelange/hugo-PaperMod/wiki) for detailed documentation.
|
||||||
|
- Read project's [FAQs](https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs) section for Frequently asked questions.
|
||||||
|
- Search for previous [Issues](https://github.com/adityatelange/hugo-PaperMod/issues)/[Pull Requests](https://github.com/adityatelange/hugo-PaperMod/pulls) if this issue is already reported or fix has been created.
|
||||||
|
- type: textarea
|
||||||
|
id: what_happened
|
||||||
|
attributes:
|
||||||
|
label: What you'd like to propose?
|
||||||
|
description:
|
||||||
|
placeholder:
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: checkboxes
|
||||||
|
id: terms
|
||||||
|
attributes:
|
||||||
|
label: Code of Conduct
|
||||||
|
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/adityatelange/hugo-PaperMod?tab=coc-ov-file#readme).
|
||||||
|
options:
|
||||||
|
- label: I agree to follow this project's Code of Conduct
|
||||||
|
required: true
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
<!--
|
||||||
|
|
||||||
|
## READ BEFORE OPENING A PR
|
||||||
|
|
||||||
|
Thank you for contributing to hugo-PaperMod!
|
||||||
|
Please fill out the following questions to make it easier for us to review your
|
||||||
|
changes. You do not need to check all the boxes below.
|
||||||
|
|
||||||
|
**NOTE**: PaperMod does not have any external dependencies fetched from 3rd party
|
||||||
|
CDN servers. However we do have custom Head/Footer extender templates which you can use
|
||||||
|
to add those to your website.
|
||||||
|
https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs#custom-head--footer
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
**What does this PR change? What problem does it solve?**
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Describe the changes and their purpose here, as detailed as and if needed.
|
||||||
|
|
||||||
|
Please do not add 2 unrelated changes in a single PR as it is difficult to track/revert those in future.
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
**Was the change discussed in an issue or in the Discussions before?**
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Link issues and relevant Discussions posts here. Please create an issue or start a Discussion before opening a PR if you have not done so already.
|
||||||
|
|
||||||
|
If this PR resolves an issue on GitHub, use "Closes #1234" so that the issue
|
||||||
|
is closed automatically when this PR is merged.
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
## PR Checklist
|
||||||
|
|
||||||
|
- [ ] This change adds/updates translations and I have used the [template present here](https://github.com/adityatelange/hugo-PaperMod/wiki/Translations#want-to-add-your-language-).
|
||||||
|
- [ ] I have enabled [maintainer edits for this PR](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/allowing-changes-to-a-pull-request-branch-created-from-a-fork).
|
||||||
|
- [ ] I have verified that the code works as described/as intended.
|
||||||
|
- [ ] This change adds a Social Icon which has a permissive license to use it.
|
||||||
|
- [ ] This change **does not** include any CDN resources/links.
|
||||||
|
- [ ] This change **does not** include any unrelated scripts such as bash and python scripts.
|
||||||
|
- [ ] This change updates the overridden internal templates from HUGO's repository.
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
name: Build Check
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths-ignore:
|
||||||
|
- "images/**"
|
||||||
|
- "LICENSE"
|
||||||
|
- "README.md"
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- exampleSite
|
||||||
|
pull_request:
|
||||||
|
paths-ignore:
|
||||||
|
- "images/**"
|
||||||
|
- "LICENSE"
|
||||||
|
- "README.md"
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- exampleSite
|
||||||
|
workflow_dispatch:
|
||||||
|
# manual run
|
||||||
|
inputs:
|
||||||
|
hugoVersion:
|
||||||
|
description: "Hugo Version"
|
||||||
|
required: false
|
||||||
|
default: "0.146.0"
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-check:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
# min_version from theme.toml
|
||||||
|
HUGO_VERSION: ${{ github.event.inputs.hugoVersion || '0.146.0' }}
|
||||||
|
steps:
|
||||||
|
- name: Install Hugo CLI
|
||||||
|
run: |
|
||||||
|
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_linux-amd64.deb \
|
||||||
|
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
|
||||||
|
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v6
|
||||||
|
with:
|
||||||
|
ref: exampleSite
|
||||||
|
|
||||||
|
- name: Get Theme
|
||||||
|
run: git submodule update --init --recursive
|
||||||
|
|
||||||
|
- name: Update theme to Latest commit
|
||||||
|
run: git submodule update --remote --merge
|
||||||
|
|
||||||
|
- name: Build with Hugo
|
||||||
|
run: hugo --buildDrafts --gc
|
||||||
@@ -0,0 +1,82 @@
|
|||||||
|
name: Deploy Hugo PaperMod Demo to Pages
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths-ignore:
|
||||||
|
- "images/**"
|
||||||
|
- "LICENSE"
|
||||||
|
- "README.md"
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- exampleSite
|
||||||
|
workflow_dispatch:
|
||||||
|
# manual run
|
||||||
|
inputs:
|
||||||
|
hugoVersion:
|
||||||
|
description: "Hugo Version"
|
||||||
|
required: false
|
||||||
|
default: "latest"
|
||||||
|
|
||||||
|
# Allow one concurrent deployment
|
||||||
|
concurrency:
|
||||||
|
group: "pages"
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
# Default to bash
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
# Build job
|
||||||
|
build:
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
HUGO_VERSION: ${{ github.event.inputs.hugoVersion || 'latest' }}
|
||||||
|
steps:
|
||||||
|
- name: Resolve Hugo version
|
||||||
|
run: |
|
||||||
|
if [ "${HUGO_VERSION}" = "latest" ]; then
|
||||||
|
HUGO_VERSION=$(curl -s https://api.github.com/repos/gohugoio/hugo/releases/latest | grep '"tag_name"' | sed 's/.*"v\([^"]*\)".*/\1/')
|
||||||
|
echo "HUGO_VERSION=${HUGO_VERSION}" >> $GITHUB_ENV
|
||||||
|
fi
|
||||||
|
- name: Install Hugo CLI
|
||||||
|
run: |
|
||||||
|
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_linux-amd64.deb \
|
||||||
|
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v6
|
||||||
|
with:
|
||||||
|
ref: exampleSite
|
||||||
|
- name: Setup Pages
|
||||||
|
id: pages
|
||||||
|
uses: actions/configure-pages@v6
|
||||||
|
- name: Get Theme
|
||||||
|
run: git submodule update --init --recursive
|
||||||
|
- name: Update theme to Latest commit
|
||||||
|
run: git submodule update --remote --merge
|
||||||
|
- name: Build with Hugo
|
||||||
|
run: |
|
||||||
|
hugo \
|
||||||
|
--buildDrafts --gc \
|
||||||
|
--baseURL ${{ steps.pages.outputs.base_url }}
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-pages-artifact@v5
|
||||||
|
with:
|
||||||
|
path: ./public
|
||||||
|
# Deployment job
|
||||||
|
deploy:
|
||||||
|
permissions:
|
||||||
|
pages: write
|
||||||
|
id-token: write
|
||||||
|
environment:
|
||||||
|
name: github-pages
|
||||||
|
url: ${{ steps.deployment.outputs.page_url }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: build
|
||||||
|
steps:
|
||||||
|
- name: Deploy to GitHub Pages
|
||||||
|
id: deployment
|
||||||
|
uses: actions/deploy-pages@v5
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2020 nanxiaobei and adityatelange
|
||||||
|
Copyright (c) 2021-2026 adityatelange
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
@@ -0,0 +1,99 @@
|
|||||||
|
# Hugo PaperMod
|
||||||
|
|
||||||
|
**A fast, clean, and responsive theme for [Hugo](https://gohugo.io/).**
|
||||||
|
|
||||||
|
[](https://themes.gohugo.io/themes/hugo-papermod/)
|
||||||
|
[](https://github.com/gohugoio/hugo/releases/tag/v0.146.0)
|
||||||
|
[](https://discord.gg/ahpmTvhVmp)
|
||||||
|
|
||||||
|
> Based on [hugo-paper](https://github.com/nanxiaobei/hugo-paper/tree/4330c8b12aa48bfdecbcad6ad66145f679a430b3), with additional features and customization options.
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>Live Demo</td>
|
||||||
|
<td><a href="https://adityatelange.github.io/hugo-PaperMod/">adityatelange.github.io/hugo-PaperMod</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Documentation 📚</td>
|
||||||
|
<td><a href="https://github.com/adityatelange/hugo-PaperMod/wiki">Github Wiki</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Example Site Source</td>
|
||||||
|
<td><a href="https://github.com/adityatelange/hugo-PaperMod/tree/exampleSite">exampleSite branch</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><a href="https://www.star-history.com/adityatelange/hugo-papermod"><img src="https://api.star-history.com/badge?repo=adityatelange/hugo-PaperMod&theme=dark" alt="Star History Rank" /></a></td>
|
||||||
|
<td><a href="https://ko-fi.com/H2H229ZWH"><img src="https://ko-fi.com/img/githubbutton_sm.svg" alt="ko-fi" /></a></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<img src="https://user-images.githubusercontent.com/21258296/114303440-bfc0ae80-9aeb-11eb-8cfa-48a4bb385a6d.png" alt="Mockup image" title="Mockup"/>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Features 💥
|
||||||
|
|
||||||
|
`☄️ Fast | ☁️ Fluent | 🌙 Smooth | 📱 Responsive`
|
||||||
|
|
||||||
|
- **Asset pipeline** -- Hugo's built-in asset generator with fingerprinting, bundling, and minification.
|
||||||
|
- **Three layout modes** -- [Regular](https://github.com/adityatelange/hugo-PaperMod/wiki/Features#regular-mode-default-mode), [Home-Info](https://github.com/adityatelange/hugo-PaperMod/wiki/Features#home-info-mode), and [Profile](https://github.com/adityatelange/hugo-PaperMod/wiki/Features#profile-mode).
|
||||||
|
- **Light and dark themes** -- Automatic switching based on browser preference, plus a manual toggle.
|
||||||
|
- **Multilingual support** -- Includes a built-in language selector.
|
||||||
|
- **Search** -- Client-side search powered by Fuse.js.
|
||||||
|
- **SEO optimized** -- Open Graph, Twitter Cards, and Schema.org structured data out of the box.
|
||||||
|
- **Cover images** -- Per-post cover images with responsive image support.
|
||||||
|
- **Table of contents** -- Auto-generated from heading structure.
|
||||||
|
- **Multiple authors** -- Native support for multi-author sites.
|
||||||
|
- **Social icons and share buttons** -- Configurable social links and per-post sharing.
|
||||||
|
- **Breadcrumb navigation**
|
||||||
|
- **Post archives and taxonomies**
|
||||||
|
- **Code block copy buttons** -- One-click copying with Chroma syntax highlighting.
|
||||||
|
- **Related post suggestions**
|
||||||
|
- **Zero JS build dependencies** -- No webpack, Node.js, or other tooling required.
|
||||||
|
|
||||||
|
| Topic | Description |
|
||||||
|
| ------------------------------------------------------------------------------------------------- | ----------------------------------------------- |
|
||||||
|
| **[Installation guide](https://github.com/adityatelange/hugo-PaperMod/wiki/Installation)** | Detailed installation and update instructions |
|
||||||
|
| **[Features wiki page](https://github.com/adityatelange/hugo-PaperMod/wiki/Features)** | In-depth explanations of all features |
|
||||||
|
| **[FAQ wiki](https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs)** | Common questions and configuration walkthroughs |
|
||||||
|
| **[Icons wiki](https://github.com/adityatelange/hugo-PaperMod/wiki/Icons)** | Documentation for social icons and share icons |
|
||||||
|
| **[Variables wiki](https://github.com/adityatelange/hugo-PaperMod/wiki/Variables)** | List of all available template variables |
|
||||||
|
| **[Overiding templates](https://github.com/adityatelange/hugo-PaperMod/wiki/Template_Overrides)** | Guide to customizing templates without forking |
|
||||||
|
| **[Releases](https://github.com/adityatelange/hugo-PaperMod/releases)** | Detailed history of releases |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Performance ☄️
|
||||||
|
|
||||||
|
PaperMod consistently scores near-perfect results on [Pagespeed Insights](https://pagespeed.web.dev/report?url=https://adityatelange.github.io/hugo-PaperMod/).
|
||||||
|
|
||||||
|
<img width="481" height="116" alt="image" src="https://github.com/user-attachments/assets/497d831b-d143-4a46-bc11-b1d7f8ef4a83" />
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Support 🫶
|
||||||
|
|
||||||
|
- Star this repository to show your support.
|
||||||
|
- Share PaperMod with others who might find it useful.
|
||||||
|
- Sponsor the project on [GitHub Sponsors](https://github.com/sponsors/adityatelange) or [Ko-Fi](https://ko-fi.com/adityatelange).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Special Thanks 🌟
|
||||||
|
|
||||||
|
- [Highlight.js](https://github.com/highlightjs/highlight.js)
|
||||||
|
- [Fuse.js](https://github.com/krisk/fuse)
|
||||||
|
- [Feather Icons](https://github.com/feathericons/feather)
|
||||||
|
- [Simple Icons](https://github.com/simple-icons/simple-icons)
|
||||||
|
- All contributors and supporters
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Stargazers 📈
|
||||||
|
|
||||||
|
[](https://starchart.cc/adityatelange/hugo-PaperMod)
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
.not-found {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
height: 80%;
|
||||||
|
font-size: 160px;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
.archive-posts {
|
||||||
|
width: 100%;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.archive-year {
|
||||||
|
margin-top: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.archive-year:not(:last-of-type) {
|
||||||
|
border-bottom: 2px solid var(--border);
|
||||||
|
}
|
||||||
|
|
||||||
|
.archive-month {
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
padding: 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.archive-month-header {
|
||||||
|
margin: 25px 0;
|
||||||
|
width: 200px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.archive-month:not(:last-of-type) {
|
||||||
|
border-bottom: 1px solid var(--border);
|
||||||
|
}
|
||||||
|
|
||||||
|
.archive-entry {
|
||||||
|
position: relative;
|
||||||
|
padding: 5px;
|
||||||
|
margin: 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.archive-entry-title {
|
||||||
|
margin: 5px 0;
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
.archive-count,
|
||||||
|
.archive-meta {
|
||||||
|
color: var(--secondary);
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
.footer,
|
||||||
|
.top-link {
|
||||||
|
font-size: 12px;
|
||||||
|
color: var(--secondary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer {
|
||||||
|
max-width: calc(var(--main-width) + var(--gap) * 2);
|
||||||
|
margin: auto;
|
||||||
|
padding: calc((var(--footer-height) - var(--gap)) / 2) var(--gap);
|
||||||
|
text-align: center;
|
||||||
|
line-height: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer span {
|
||||||
|
margin-inline-start: 1px;
|
||||||
|
margin-inline-end: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer span:last-child {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer a {
|
||||||
|
color: inherit;
|
||||||
|
text-underline-offset: 0.25rem;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-link {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 4rem;
|
||||||
|
right: 2rem;
|
||||||
|
z-index: 99;
|
||||||
|
background: var(--tertiary);
|
||||||
|
width: 2.5rem;
|
||||||
|
height: 2.5rem;
|
||||||
|
padding: 10px;
|
||||||
|
border-radius: 64px;
|
||||||
|
transition: visibility .3s, opacity .3s cubic-bezier(0.4, 0, 1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.hidden {
|
||||||
|
visibility: hidden;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-link,
|
||||||
|
.top-link svg {
|
||||||
|
filter: drop-shadow(0px 0px 0px var(--theme));
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer a:hover,
|
||||||
|
.top-link:hover {
|
||||||
|
color: var(--primary);
|
||||||
|
}
|
||||||
@@ -0,0 +1,101 @@
|
|||||||
|
.header-nav {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: space-between;
|
||||||
|
max-width: calc(var(--nav-width) + var(--gap) * 2);
|
||||||
|
margin: auto;
|
||||||
|
line-height: var(--header-height);
|
||||||
|
padding: 0 var(--gap);
|
||||||
|
column-gap: var(--gap);
|
||||||
|
}
|
||||||
|
|
||||||
|
.header-nav a {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo,
|
||||||
|
.menu {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
align-items: center;
|
||||||
|
column-gap: 0.55rem;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo a {
|
||||||
|
font-size: 24px;
|
||||||
|
font-weight: 700;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
column-gap: 0.55rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo a img,
|
||||||
|
.logo a svg {
|
||||||
|
pointer-events: none;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.theme-toggle {
|
||||||
|
padding: 0 0.4rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme="dark"] .moon {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme="light"] .sun {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo-switches {
|
||||||
|
display: inline-flex;
|
||||||
|
gap: 0.4rem;
|
||||||
|
align-items: inherit;
|
||||||
|
min-height: stretch;
|
||||||
|
flex-wrap: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo-switches>* {
|
||||||
|
min-height: inherit;
|
||||||
|
align-items: center;
|
||||||
|
display: inline-flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-sep {
|
||||||
|
color: var(--secondary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.lang-menu * {
|
||||||
|
display: inherit;
|
||||||
|
min-height: inherit;
|
||||||
|
align-items: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lang-menu a {
|
||||||
|
font-size: 1rem;
|
||||||
|
font-weight: 500;
|
||||||
|
padding: 0 0.4rem;
|
||||||
|
display: inline-flex
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu {
|
||||||
|
list-style: none;
|
||||||
|
word-break: keep-all;
|
||||||
|
overflow-x: auto;
|
||||||
|
white-space: nowrap;
|
||||||
|
column-gap: var(--gap);
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu a {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu .active {
|
||||||
|
font-weight: 500;
|
||||||
|
text-decoration: underline;
|
||||||
|
text-underline-offset: 0.3rem;
|
||||||
|
text-decoration-thickness: 2px;
|
||||||
|
}
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
.main {
|
||||||
|
position: relative;
|
||||||
|
min-height: calc(100vh - var(--header-height) - var(--footer-height));
|
||||||
|
max-width: calc(var(--main-width) + var(--gap) * 2);
|
||||||
|
margin: auto;
|
||||||
|
padding: var(--gap);
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-header h1 {
|
||||||
|
font-size: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination a {
|
||||||
|
color: var(--theme);
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 36px;
|
||||||
|
background: var(--primary);
|
||||||
|
border-radius: calc(36px / 2);
|
||||||
|
padding: 0 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination .next {
|
||||||
|
margin-inline-start: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.social-icons a {
|
||||||
|
display: inline-flex;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.social-icons a svg {
|
||||||
|
height: 26px;
|
||||||
|
width: 26px;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
direction: ltr;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.highlight,
|
||||||
|
pre {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.copy-code {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
top: 4px;
|
||||||
|
right: 4px;
|
||||||
|
color: rgba(255, 255, 255, 0.8);
|
||||||
|
background: rgba(78, 78, 78, 0.8);
|
||||||
|
border-radius: var(--radius);
|
||||||
|
padding: 0 5px;
|
||||||
|
font-size: 14px;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.highlight:hover .copy-code,
|
||||||
|
pre:hover .copy-code {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
@@ -0,0 +1,253 @@
|
|||||||
|
.md-content h3,
|
||||||
|
.md-content h4,
|
||||||
|
.md-content h5,
|
||||||
|
.md-content h6 {
|
||||||
|
margin: 24px 0 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content h1 {
|
||||||
|
margin: 40px auto 32px;
|
||||||
|
font-size: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content h2 {
|
||||||
|
margin: 32px auto 24px;
|
||||||
|
font-size: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content h3 {
|
||||||
|
font-size: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content h4 {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content h5 {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content h6 {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content a:not(.anchor) {
|
||||||
|
text-underline-offset: 0.3rem;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content del {
|
||||||
|
text-decoration: line-through;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content dl:not(:last-child),
|
||||||
|
.md-content ol:not(:last-child),
|
||||||
|
.md-content p:not(:last-child),
|
||||||
|
.md-content figure:not(:last-child),
|
||||||
|
.md-content ul:not(:last-child) {
|
||||||
|
margin-bottom: var(--content-gap);
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content ol,
|
||||||
|
.md-content ul {
|
||||||
|
padding-inline-start: 1.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content li {
|
||||||
|
margin-top: 0.3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content li p {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content dl {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content dt {
|
||||||
|
width: 25%;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content dd {
|
||||||
|
width: 75%;
|
||||||
|
margin-inline-start: 0;
|
||||||
|
padding-inline-start: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content dd~dd,
|
||||||
|
.md-content dt~dt {
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content table {
|
||||||
|
margin-bottom: var(--content-gap);
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content table th,
|
||||||
|
.md-content table:not(.highlighttable, .highlight table, .gist .highlight) td {
|
||||||
|
min-width: 80px;
|
||||||
|
padding: 6px 13px;
|
||||||
|
line-height: 1.5;
|
||||||
|
border: 1px solid var(--border);
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content table th {
|
||||||
|
text-align: start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content table:not(.highlighttable) td code:only-child {
|
||||||
|
margin: auto 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content .highlight table {
|
||||||
|
border-radius: var(--radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content .highlight:not(table) {
|
||||||
|
margin-bottom: var(--content-gap);
|
||||||
|
background: var(--code-block-bg) !important;
|
||||||
|
border-radius: var(--radius);
|
||||||
|
direction: ltr;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content li>.highlight {
|
||||||
|
margin-inline-end: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content ul pre {
|
||||||
|
margin-inline-start: calc(var(--gap) * -2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content .highlight pre {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content .highlighttable {
|
||||||
|
table-layout: fixed;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content .highlighttable td:first-child {
|
||||||
|
width: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content .highlighttable td .linenodiv {
|
||||||
|
padding-inline-end: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content .highlighttable td .highlight,
|
||||||
|
.md-content .highlighttable td .linenodiv pre {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-content code {
|
||||||
|
padding: 0.2rem 0.3rem;
|
||||||
|
font-size: 0.78em;
|
||||||
|
line-height: 1.5;
|
||||||
|
background: var(--code-bg);
|
||||||
|
border-radius: 0.2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content pre code {
|
||||||
|
display: grid;
|
||||||
|
margin: auto 0;
|
||||||
|
padding: 10px;
|
||||||
|
color: rgb(213, 213, 214);
|
||||||
|
background: var(--code-block-bg) !important;
|
||||||
|
border-radius: var(--radius);
|
||||||
|
overflow-x: auto;
|
||||||
|
word-break: break-all;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content blockquote {
|
||||||
|
margin: 1rem 0;
|
||||||
|
padding-inline-start: 1rem;
|
||||||
|
border-inline-start: 0.3rem solid var(--content);
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content hr {
|
||||||
|
margin: 30px 0;
|
||||||
|
height: 2px;
|
||||||
|
background: var(--tertiary);
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content iframe {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content img {
|
||||||
|
border-radius: var(--radius);
|
||||||
|
margin: 1rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content img[src*="#center"] {
|
||||||
|
margin: 1rem auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content figure.align-center {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content figure>figcaption {
|
||||||
|
color: var(--primary);
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 8px 0 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content figure>figcaption>p {
|
||||||
|
color: var(--secondary);
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content h1:hover .anchor,
|
||||||
|
.md-content h2:hover .anchor,
|
||||||
|
.md-content h3:hover .anchor,
|
||||||
|
.md-content h4:hover .anchor,
|
||||||
|
.md-content h5:hover .anchor,
|
||||||
|
.md-content h6:hover .anchor {
|
||||||
|
display: inline-flex;
|
||||||
|
color: var(--secondary);
|
||||||
|
margin-inline-start: 0.5em;
|
||||||
|
font-weight: 500;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.anchor:hover {
|
||||||
|
color: var(--content) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content img.in-text {
|
||||||
|
display: inline;
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
mark {
|
||||||
|
border-radius: 2px;
|
||||||
|
padding: 0 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
audio {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
border: 1px solid var(--border);
|
||||||
|
border-radius: var(--radius);
|
||||||
|
overflow: hidden;
|
||||||
|
height: 2.5rem;
|
||||||
|
margin-bottom: var(--content-gap);
|
||||||
|
}
|
||||||
|
|
||||||
|
audio::-webkit-media-controls-enclosure {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
video {
|
||||||
|
border: 1px solid var(--code-bg);
|
||||||
|
border-radius: var(--radius);
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
@@ -0,0 +1,129 @@
|
|||||||
|
.first-entry {
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
min-height: 320px;
|
||||||
|
margin: var(--gap) 0 calc(var(--gap) * 2) 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.first-entry .entry-header {
|
||||||
|
overflow: hidden;
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-line-clamp: 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.first-entry .entry-header h1 {
|
||||||
|
font-size: 34px;
|
||||||
|
line-height: 1.3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.first-entry .entry-header h2 {
|
||||||
|
font-size: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.first-entry .entry-content {
|
||||||
|
margin: 14px 0;
|
||||||
|
font-size: 16px;
|
||||||
|
-webkit-line-clamp: 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.first-entry .entry-footer {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.home-info .entry-content {
|
||||||
|
--content-gap: 0.5rem;
|
||||||
|
-webkit-line-clamp: unset;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.home-info .social-icons a:first-of-type {
|
||||||
|
padding-inline-start: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.post-entry {
|
||||||
|
position: relative;
|
||||||
|
margin-bottom: var(--gap);
|
||||||
|
padding: var(--gap);
|
||||||
|
background: var(--entry);
|
||||||
|
border-radius: var(--radius);
|
||||||
|
transition: transform 0.25s ease;
|
||||||
|
border: 1px solid var(--border);
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-entry:hover,
|
||||||
|
.post-entry:focus-within {
|
||||||
|
transform: translateY(-2px);
|
||||||
|
border-color: var(--tertiary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.tag-entry .entry-cover {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-header h2 {
|
||||||
|
font-size: 24px;
|
||||||
|
line-height: 1.3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content {
|
||||||
|
margin: 8px 0;
|
||||||
|
color: var(--secondary);
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 1.6;
|
||||||
|
overflow: hidden;
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-line-clamp: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.home-info .entry-content p {
|
||||||
|
margin-block-start: 1em;
|
||||||
|
margin-block-end: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-footer {
|
||||||
|
color: var(--secondary);
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-link {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
border-radius: var(--radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-hint {
|
||||||
|
color: var(--secondary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-hint-parent {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-cover {
|
||||||
|
font-size: 14px;
|
||||||
|
margin-bottom: var(--gap);
|
||||||
|
text-align: center;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: .5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-cover img {
|
||||||
|
border-radius: var(--radius);
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-cover a {
|
||||||
|
text-underline-offset: 0.3rem;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
@@ -0,0 +1,215 @@
|
|||||||
|
.page-header,
|
||||||
|
.post-header {
|
||||||
|
margin: 24px auto var(--content-gap) auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-title {
|
||||||
|
font-size: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-description {
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-meta {
|
||||||
|
margin-top: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-meta,
|
||||||
|
.breadcrumbs {
|
||||||
|
color: var(--secondary);
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.breadcrumbs {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.breadcrumbs a {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.breadcrumbs svg {
|
||||||
|
height: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.i18n_list {
|
||||||
|
display: inline-flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-meta .i18n_list li {
|
||||||
|
list-style: none;
|
||||||
|
margin: auto 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-meta a,
|
||||||
|
.toc a:hover {
|
||||||
|
text-underline-offset: 0.3rem;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-meta a {
|
||||||
|
color: var(--secondary);
|
||||||
|
text-decoration-style: dotted;
|
||||||
|
}
|
||||||
|
|
||||||
|
details.toc {
|
||||||
|
margin-bottom: var(--content-gap);
|
||||||
|
background: var(--code-bg);
|
||||||
|
border-radius: var(--radius);
|
||||||
|
border: 1px solid var(--border);
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme="dark"] details.toc {
|
||||||
|
background: var(--entry);
|
||||||
|
}
|
||||||
|
|
||||||
|
details.toc summary {
|
||||||
|
padding: 0.3rem 1.2rem;
|
||||||
|
border-radius: var(--radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
details summary {
|
||||||
|
cursor: pointer;
|
||||||
|
display: list-item;
|
||||||
|
width: 100%;
|
||||||
|
margin-inline-start: 0;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
details .title {
|
||||||
|
display: inline;
|
||||||
|
font-weight: 500;
|
||||||
|
margin-inline-start: 0.2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
details {
|
||||||
|
interpolate-size: allow-keywords;
|
||||||
|
}
|
||||||
|
|
||||||
|
details::details-content {
|
||||||
|
height: 0;
|
||||||
|
opacity: 0;
|
||||||
|
overflow: clip;
|
||||||
|
transition: height 150ms ease,
|
||||||
|
opacity 150ms ease,
|
||||||
|
content-visibility 150ms allow-discrete;
|
||||||
|
}
|
||||||
|
|
||||||
|
details[open]::details-content {
|
||||||
|
height: auto;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
details .inner {
|
||||||
|
margin: 0 2.4rem;
|
||||||
|
padding-bottom: 0.6rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
details li ul {
|
||||||
|
margin-inline-start: var(--gap);
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-content {
|
||||||
|
color: var(--content);
|
||||||
|
margin: 30px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-footer {
|
||||||
|
margin-top: var(--content-gap);
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-footer>* {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-tags {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-tags li {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-tags a,
|
||||||
|
.share-buttons,
|
||||||
|
.paginav {
|
||||||
|
border-radius: var(--radius);
|
||||||
|
background: var(--code-bg);
|
||||||
|
border: 1px solid var(--border);
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-tags a {
|
||||||
|
display: block;
|
||||||
|
padding: 0 14px;
|
||||||
|
color: var(--secondary);
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 34px;
|
||||||
|
background: var(--code-bg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-tags a:hover,
|
||||||
|
.paginav a:hover {
|
||||||
|
background: var(--border);
|
||||||
|
}
|
||||||
|
|
||||||
|
.share-buttons {
|
||||||
|
padding: 10px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
overflow-x: auto;
|
||||||
|
gap: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.share-buttons li,
|
||||||
|
.share-buttons a {
|
||||||
|
display: inline-flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.share-buttons a:not(:last-of-type) {
|
||||||
|
margin-inline-end: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paginav {
|
||||||
|
display: flex;
|
||||||
|
line-height: 1.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paginav .title {
|
||||||
|
letter-spacing: 1px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-size: 0.8rem;
|
||||||
|
color: var(--secondary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.paginav a {
|
||||||
|
width: 50%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 0.5rem;
|
||||||
|
padding: 0.8rem;
|
||||||
|
border-radius: var(--radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
.paginav span:hover:not(.title) {
|
||||||
|
text-underline-offset: 0.2rem;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paginav .next {
|
||||||
|
margin-inline-start: auto;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
[dir="rtl"] .paginav .next {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1>a>svg {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
.buttons,
|
||||||
|
.main .profile {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main .profile {
|
||||||
|
align-items: center;
|
||||||
|
min-height: calc(100vh - var(--header-height) - var(--footer-height) - (var(--gap) * 2));
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile .profile_inner {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
gap: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile img {
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.buttons {
|
||||||
|
flex-wrap: wrap;
|
||||||
|
max-width: 400px;
|
||||||
|
gap: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button {
|
||||||
|
background: var(--tertiary);
|
||||||
|
border-radius: var(--radius);
|
||||||
|
padding: 0.4rem 0.8rem;
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
.searchbox input {
|
||||||
|
padding: 4px 10px;
|
||||||
|
width: 100%;
|
||||||
|
color: var(--primary);
|
||||||
|
font-weight: bold;
|
||||||
|
border: 2px solid var(--tertiary);
|
||||||
|
border-radius: var(--radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
.searchResults li {
|
||||||
|
list-style: none;
|
||||||
|
border-radius: var(--radius);
|
||||||
|
padding: 10px 15px;
|
||||||
|
position: relative;
|
||||||
|
font-weight: 500;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
background: var(--entry);
|
||||||
|
transition: transform .25s ease;
|
||||||
|
border: 1px solid var(--border);
|
||||||
|
}
|
||||||
|
|
||||||
|
.searchResults {
|
||||||
|
margin: var(--content-gap) 0;
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.searchResults li:hover,
|
||||||
|
.searchResults li:focus-within {
|
||||||
|
transform: translateY(-2px);
|
||||||
|
border-color: var(--tertiary);
|
||||||
|
}
|
||||||
|
|
||||||
|
.searchResults li .entry-link:focus {
|
||||||
|
outline: 2px solid var(--secondary);
|
||||||
|
outline-offset: -2px;
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
.terms-tags {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 1em;
|
||||||
|
margin-top: var(--content-gap);
|
||||||
|
}
|
||||||
|
|
||||||
|
.terms-tags li {
|
||||||
|
display: inline-block;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.terms-tags a {
|
||||||
|
display: block;
|
||||||
|
padding: 4px 10px;
|
||||||
|
background: var(--tertiary);
|
||||||
|
border-radius: var(--radius);
|
||||||
|
transition: transform 0.1s;
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
/*
|
||||||
|
PaperMod v8+
|
||||||
|
License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE
|
||||||
|
Copyright (c) 2020 nanxiaobei and adityatelange
|
||||||
|
Copyright (c) 2021-2026 adityatelange
|
||||||
|
*/
|
||||||
@@ -0,0 +1,118 @@
|
|||||||
|
*,
|
||||||
|
::after,
|
||||||
|
::before {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
-webkit-tap-highlight-color: transparent;
|
||||||
|
overflow-y: scroll;
|
||||||
|
-webkit-text-size-adjust: 100%;
|
||||||
|
text-size-adjust: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
a,
|
||||||
|
button,
|
||||||
|
body,
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6 {
|
||||||
|
color: var(--primary);
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
||||||
|
font-size: 18px;
|
||||||
|
line-height: 1.6;
|
||||||
|
word-break: break-word;
|
||||||
|
background: var(--theme);
|
||||||
|
}
|
||||||
|
|
||||||
|
article,
|
||||||
|
aside,
|
||||||
|
figcaption,
|
||||||
|
figure,
|
||||||
|
footer,
|
||||||
|
header,
|
||||||
|
hgroup,
|
||||||
|
main,
|
||||||
|
nav,
|
||||||
|
section,
|
||||||
|
table {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6 {
|
||||||
|
line-height: 1.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6,
|
||||||
|
p {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
body,
|
||||||
|
figure,
|
||||||
|
ul {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
width: 100%;
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0;
|
||||||
|
overflow-x: auto;
|
||||||
|
word-break: keep-all;
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
input,
|
||||||
|
textarea {
|
||||||
|
padding: 0;
|
||||||
|
font: inherit;
|
||||||
|
background: 0 0;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
input,
|
||||||
|
textarea {
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
input[type=button],
|
||||||
|
input[type=submit] {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
input:-webkit-autofill,
|
||||||
|
textarea:-webkit-autofill {
|
||||||
|
box-shadow: 0 0 0 50px var(--theme) inset;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
display: block;
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
:root {
|
||||||
|
--gap: 24px;
|
||||||
|
--content-gap: 20px;
|
||||||
|
--nav-width: 1024px;
|
||||||
|
--main-width: 720px;
|
||||||
|
--header-height: 60px;
|
||||||
|
--footer-height: 60px;
|
||||||
|
--radius: 8px;
|
||||||
|
--theme: rgb(255, 255, 255);
|
||||||
|
--entry: rgb(255, 255, 255);
|
||||||
|
--primary: rgb(30, 30, 30);
|
||||||
|
--secondary: rgb(108, 108, 108);
|
||||||
|
--tertiary: rgb(214, 214, 214);
|
||||||
|
--content: rgb(31, 31, 31);
|
||||||
|
--code-block-bg: rgb(28, 29, 33);
|
||||||
|
--code-bg: rgb(245, 245, 245);
|
||||||
|
--border: rgb(238, 238, 238);
|
||||||
|
color-scheme: light;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root[data-theme="dark"] {
|
||||||
|
--theme: rgb(29, 30, 32);
|
||||||
|
--entry: rgb(46, 46, 51);
|
||||||
|
--primary: rgb(218, 218, 219);
|
||||||
|
--secondary: rgb(155, 156, 157);
|
||||||
|
--tertiary: rgb(65, 66, 68);
|
||||||
|
--content: rgb(196, 196, 197);
|
||||||
|
--code-block-bg: rgb(46, 46, 51);
|
||||||
|
--code-bg: rgb(55, 56, 62);
|
||||||
|
--border: rgb(51, 51, 51);
|
||||||
|
color-scheme: dark;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list {
|
||||||
|
background: var(--code-bg);
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-theme="dark"] .list {
|
||||||
|
background: var(--theme);
|
||||||
|
}
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
@media screen and (max-width: 768px) {
|
||||||
|
/* theme-vars */
|
||||||
|
:root {
|
||||||
|
--gap: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* profile-mode */
|
||||||
|
.profile img {
|
||||||
|
transform: scale(0.85);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* post-entry */
|
||||||
|
.first-entry {
|
||||||
|
min-height: 260px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* archive */
|
||||||
|
.archive-month {
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.archive-year {
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* footer */
|
||||||
|
.footer {
|
||||||
|
padding: calc((var(--footer-height) - var(--gap) - 10px) / 2) var(--gap);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* footer */
|
||||||
|
@media screen and (max-width: 900px) {
|
||||||
|
.list .top-link {
|
||||||
|
transform: translateY(-5rem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 340px) {
|
||||||
|
.share-buttons {
|
||||||
|
justify-content: unset;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (prefers-reduced-motion) {
|
||||||
|
/* terms; profile-mode; post-single; post-entry; post-entry; search; search */
|
||||||
|
.terms-tags a:active,
|
||||||
|
.button:active,
|
||||||
|
.post-entry:active,
|
||||||
|
.top-link,
|
||||||
|
.searchResults .focus,
|
||||||
|
.searchResults li:active {
|
||||||
|
transform: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
/*
|
||||||
|
This is just a placeholder blank stylesheet so as to support adding custom styles budled with theme's default styles
|
||||||
|
|
||||||
|
Read https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs#bundling-custom-css-with-themes-assets for more info
|
||||||
|
*/
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
.chroma {
|
||||||
|
background-color: unset !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.chroma .hl {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.chroma .lnt {
|
||||||
|
padding: 0 0 0 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight pre.chroma code {
|
||||||
|
padding: 8px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight pre.chroma .line .cl,
|
||||||
|
.chroma .ln {
|
||||||
|
padding: 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.chroma .lntd:last-of-type {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
@@ -0,0 +1,86 @@
|
|||||||
|
/* Background */ .bg { color: #cad3f5; background-color: #24273a; }
|
||||||
|
/* PreWrapper */ .chroma { color: #cad3f5; background-color: #24273a; }
|
||||||
|
/* Other */ .chroma .x { }
|
||||||
|
/* Error */ .chroma .err { color: #ed8796 }
|
||||||
|
/* CodeLine */ .chroma .cl { }
|
||||||
|
/* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
|
||||||
|
/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
|
||||||
|
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
|
||||||
|
/* LineHighlight */ .chroma .hl { background-color: #474733 }
|
||||||
|
/* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #8087a2 }
|
||||||
|
/* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #8087a2 }
|
||||||
|
/* Line */ .chroma .line { display: flex; }
|
||||||
|
/* Keyword */ .chroma .k { color: #c6a0f6 }
|
||||||
|
/* KeywordConstant */ .chroma .kc { color: #f5a97f }
|
||||||
|
/* KeywordDeclaration */ .chroma .kd { color: #ed8796 }
|
||||||
|
/* KeywordNamespace */ .chroma .kn { color: #8bd5ca }
|
||||||
|
/* KeywordPseudo */ .chroma .kp { color: #c6a0f6 }
|
||||||
|
/* KeywordReserved */ .chroma .kr { color: #c6a0f6 }
|
||||||
|
/* KeywordType */ .chroma .kt { color: #ed8796 }
|
||||||
|
/* Name */ .chroma .n { }
|
||||||
|
/* NameAttribute */ .chroma .na { color: #8aadf4 }
|
||||||
|
/* NameBuiltin */ .chroma .nb { color: #91d7e3 }
|
||||||
|
/* NameBuiltinPseudo */ .chroma .bp { color: #91d7e3 }
|
||||||
|
/* NameClass */ .chroma .nc { color: #eed49f }
|
||||||
|
/* NameConstant */ .chroma .no { color: #eed49f }
|
||||||
|
/* NameDecorator */ .chroma .nd { color: #8aadf4; font-weight: bold }
|
||||||
|
/* NameEntity */ .chroma .ni { color: #8bd5ca }
|
||||||
|
/* NameException */ .chroma .ne { color: #f5a97f }
|
||||||
|
/* NameFunction */ .chroma .nf { color: #8aadf4 }
|
||||||
|
/* NameFunctionMagic */ .chroma .fm { color: #8aadf4 }
|
||||||
|
/* NameLabel */ .chroma .nl { color: #91d7e3 }
|
||||||
|
/* NameNamespace */ .chroma .nn { color: #f5a97f }
|
||||||
|
/* NameOther */ .chroma .nx { }
|
||||||
|
/* NameProperty */ .chroma .py { color: #f5a97f }
|
||||||
|
/* NameTag */ .chroma .nt { color: #c6a0f6 }
|
||||||
|
/* NameVariable */ .chroma .nv { color: #f4dbd6 }
|
||||||
|
/* NameVariableClass */ .chroma .vc { color: #f4dbd6 }
|
||||||
|
/* NameVariableGlobal */ .chroma .vg { color: #f4dbd6 }
|
||||||
|
/* NameVariableInstance */ .chroma .vi { color: #f4dbd6 }
|
||||||
|
/* NameVariableMagic */ .chroma .vm { color: #f4dbd6 }
|
||||||
|
/* Literal */ .chroma .l { }
|
||||||
|
/* LiteralDate */ .chroma .ld { }
|
||||||
|
/* LiteralString */ .chroma .s { color: #a6da95 }
|
||||||
|
/* LiteralStringAffix */ .chroma .sa { color: #ed8796 }
|
||||||
|
/* LiteralStringBacktick */ .chroma .sb { color: #a6da95 }
|
||||||
|
/* LiteralStringChar */ .chroma .sc { color: #a6da95 }
|
||||||
|
/* LiteralStringDelimiter */ .chroma .dl { color: #8aadf4 }
|
||||||
|
/* LiteralStringDoc */ .chroma .sd { color: #6e738d }
|
||||||
|
/* LiteralStringDouble */ .chroma .s2 { color: #a6da95 }
|
||||||
|
/* LiteralStringEscape */ .chroma .se { color: #8aadf4 }
|
||||||
|
/* LiteralStringHeredoc */ .chroma .sh { color: #6e738d }
|
||||||
|
/* LiteralStringInterpol */ .chroma .si { color: #a6da95 }
|
||||||
|
/* LiteralStringOther */ .chroma .sx { color: #a6da95 }
|
||||||
|
/* LiteralStringRegex */ .chroma .sr { color: #8bd5ca }
|
||||||
|
/* LiteralStringSingle */ .chroma .s1 { color: #a6da95 }
|
||||||
|
/* LiteralStringSymbol */ .chroma .ss { color: #a6da95 }
|
||||||
|
/* LiteralNumber */ .chroma .m { color: #f5a97f }
|
||||||
|
/* LiteralNumberBin */ .chroma .mb { color: #f5a97f }
|
||||||
|
/* LiteralNumberFloat */ .chroma .mf { color: #f5a97f }
|
||||||
|
/* LiteralNumberHex */ .chroma .mh { color: #f5a97f }
|
||||||
|
/* LiteralNumberInteger */ .chroma .mi { color: #f5a97f }
|
||||||
|
/* LiteralNumberIntegerLong */ .chroma .il { color: #f5a97f }
|
||||||
|
/* LiteralNumberOct */ .chroma .mo { color: #f5a97f }
|
||||||
|
/* Operator */ .chroma .o { color: #91d7e3; font-weight: bold }
|
||||||
|
/* OperatorWord */ .chroma .ow { color: #91d7e3; font-weight: bold }
|
||||||
|
/* Punctuation */ .chroma .p { }
|
||||||
|
/* Comment */ .chroma .c { color: #6e738d; font-style: italic }
|
||||||
|
/* CommentHashbang */ .chroma .ch { color: #6e738d; font-style: italic }
|
||||||
|
/* CommentMultiline */ .chroma .cm { color: #6e738d; font-style: italic }
|
||||||
|
/* CommentSingle */ .chroma .c1 { color: #6e738d; font-style: italic }
|
||||||
|
/* CommentSpecial */ .chroma .cs { color: #6e738d; font-style: italic }
|
||||||
|
/* CommentPreproc */ .chroma .cp { color: #6e738d; font-style: italic }
|
||||||
|
/* CommentPreprocFile */ .chroma .cpf { color: #6e738d; font-weight: bold; font-style: italic }
|
||||||
|
/* Generic */ .chroma .g { }
|
||||||
|
/* GenericDeleted */ .chroma .gd { color: #ed8796; background-color: #363a4f }
|
||||||
|
/* GenericEmph */ .chroma .ge { font-style: italic }
|
||||||
|
/* GenericError */ .chroma .gr { color: #ed8796 }
|
||||||
|
/* GenericHeading */ .chroma .gh { color: #f5a97f; font-weight: bold }
|
||||||
|
/* GenericInserted */ .chroma .gi { color: #a6da95; background-color: #363a4f }
|
||||||
|
/* GenericOutput */ .chroma .go { }
|
||||||
|
/* GenericPrompt */ .chroma .gp { }
|
||||||
|
/* GenericStrong */ .chroma .gs { font-weight: bold }
|
||||||
|
/* GenericSubheading */ .chroma .gu { color: #f5a97f; font-weight: bold }
|
||||||
|
/* GenericTraceback */ .chroma .gt { color: #ed8796 }
|
||||||
|
/* GenericUnderline */ .chroma .gl { text-decoration: underline }
|
||||||
|
/* TextWhitespace */ .chroma .w { }
|
||||||
@@ -0,0 +1,194 @@
|
|||||||
|
import * as params from '@params';
|
||||||
|
|
||||||
|
const resList = document.getElementById('searchResults');
|
||||||
|
const sInput = document.getElementById('searchInput');
|
||||||
|
const searchBox = document.getElementById('searchbox');
|
||||||
|
|
||||||
|
let fuse;
|
||||||
|
let currentElement = null;
|
||||||
|
let firstResult = null;
|
||||||
|
let lastResult = null;
|
||||||
|
|
||||||
|
const defaultFuseOptions = {
|
||||||
|
distance: 100,
|
||||||
|
threshold: 0.4,
|
||||||
|
ignoreLocation: true,
|
||||||
|
keys: ['title', 'permalink', 'summary', 'content']
|
||||||
|
};
|
||||||
|
|
||||||
|
const buildFuseOptions = () => {
|
||||||
|
if (!params.fuseOpts) {
|
||||||
|
return defaultFuseOptions;
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
isCaseSensitive: params.fuseOpts.iscasesensitive ?? false,
|
||||||
|
includeScore: params.fuseOpts.includescore ?? false,
|
||||||
|
includeMatches: params.fuseOpts.includematches ?? false,
|
||||||
|
minMatchCharLength: params.fuseOpts.minmatchcharlength ?? 1,
|
||||||
|
shouldSort: params.fuseOpts.shouldsort ?? true,
|
||||||
|
findAllMatches: params.fuseOpts.findallmatches ?? false,
|
||||||
|
keys: params.fuseOpts.keys ?? defaultFuseOptions.keys,
|
||||||
|
location: params.fuseOpts.location ?? 0,
|
||||||
|
threshold: params.fuseOpts.threshold ?? defaultFuseOptions.threshold,
|
||||||
|
distance: params.fuseOpts.distance ?? defaultFuseOptions.distance,
|
||||||
|
ignoreLocation: params.fuseOpts.ignorelocation ?? defaultFuseOptions.ignoreLocation
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
const debounce = (fn, delay) => {
|
||||||
|
let timeout;
|
||||||
|
return (...args) => {
|
||||||
|
clearTimeout(timeout);
|
||||||
|
timeout = window.setTimeout(() => fn(...args), delay);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
const reset = () => {
|
||||||
|
currentElement = null;
|
||||||
|
firstResult = null;
|
||||||
|
lastResult = null;
|
||||||
|
resList.innerHTML = '';
|
||||||
|
sInput.value = '';
|
||||||
|
sInput.focus();
|
||||||
|
};
|
||||||
|
|
||||||
|
const setActiveResult = (element) => {
|
||||||
|
document.querySelectorAll('.focus').forEach((item) => item.classList.remove('focus'));
|
||||||
|
|
||||||
|
if (!element) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
element.focus();
|
||||||
|
element.parentElement?.classList.add('focus');
|
||||||
|
currentElement = element;
|
||||||
|
};
|
||||||
|
|
||||||
|
const renderResults = (results) => {
|
||||||
|
if (!Array.isArray(results) || results.length === 0) {
|
||||||
|
resList.innerHTML = '';
|
||||||
|
firstResult = lastResult = currentElement = null;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const fragment = document.createDocumentFragment();
|
||||||
|
|
||||||
|
for (const result of results) {
|
||||||
|
const li = document.createElement('li');
|
||||||
|
const titleText = document.createTextNode(result.item.title);
|
||||||
|
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
||||||
|
svg.setAttribute('width', '24');
|
||||||
|
svg.setAttribute('height', '24');
|
||||||
|
svg.setAttribute('viewBox', '0 0 24 24');
|
||||||
|
svg.setAttribute('fill', 'none');
|
||||||
|
svg.setAttribute('stroke', 'currentColor');
|
||||||
|
svg.setAttribute('stroke-width', '2');
|
||||||
|
svg.setAttribute('stroke-linecap', 'round');
|
||||||
|
svg.setAttribute('stroke-linejoin', 'round');
|
||||||
|
svg.classList.add('feather', 'feather-chevrons-right');
|
||||||
|
|
||||||
|
svg.innerHTML = '<polyline points="13 17 18 12 13 7"></polyline><polyline points="6 17 11 12 6 7"></polyline>';
|
||||||
|
|
||||||
|
const link = document.createElement('a');
|
||||||
|
link.className = 'entry-link';
|
||||||
|
link.href = result.item.permalink;
|
||||||
|
link.setAttribute('aria-label', result.item.title);
|
||||||
|
|
||||||
|
li.appendChild(titleText);
|
||||||
|
li.appendChild(svg);
|
||||||
|
li.appendChild(link);
|
||||||
|
fragment.appendChild(li);
|
||||||
|
}
|
||||||
|
|
||||||
|
resList.innerHTML = '';
|
||||||
|
resList.appendChild(fragment);
|
||||||
|
firstResult = resList.firstElementChild;
|
||||||
|
lastResult = resList.lastElementChild;
|
||||||
|
};
|
||||||
|
|
||||||
|
const performSearch = () => {
|
||||||
|
if (!fuse) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const query = sInput.value.trim();
|
||||||
|
if (!query) {
|
||||||
|
renderResults([]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const searchOptions = params.fuseOpts?.limit ? { limit: params.fuseOpts.limit } : undefined;
|
||||||
|
const results = searchOptions ? fuse.search(query, searchOptions) : fuse.search(query);
|
||||||
|
renderResults(results);
|
||||||
|
};
|
||||||
|
|
||||||
|
const initSearch = async () => {
|
||||||
|
if (!sInput || !resList) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sInput.disabled = false;
|
||||||
|
sInput.focus();
|
||||||
|
|
||||||
|
try {
|
||||||
|
const response = await fetch('../index.json');
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error(`Search index load failed: ${response.status}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
const data = await response.json();
|
||||||
|
if (data) {
|
||||||
|
fuse = new Fuse(data, buildFuseOptions());
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error(error);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
window.addEventListener('load', initSearch);
|
||||||
|
|
||||||
|
sInput?.addEventListener('input', debounce(performSearch, 150));
|
||||||
|
|
||||||
|
sInput?.addEventListener('search', () => {
|
||||||
|
if (!sInput.value) {
|
||||||
|
reset();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
document.addEventListener('keydown', (event) => {
|
||||||
|
const { key } = event;
|
||||||
|
const active = document.activeElement;
|
||||||
|
const isInSearchBox = searchBox?.contains(active);
|
||||||
|
|
||||||
|
if (key === 'Escape') {
|
||||||
|
reset();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!firstResult || !isInSearchBox) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (key === 'ArrowDown') {
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
if (active === sInput) {
|
||||||
|
setActiveResult(firstResult.querySelector('.entry-link'));
|
||||||
|
} else if (active?.parentElement !== lastResult) {
|
||||||
|
setActiveResult(active?.parentElement?.nextElementSibling?.querySelector('.entry-link'));
|
||||||
|
}
|
||||||
|
} else if (key === 'ArrowUp') {
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
if (active?.parentElement === firstResult) {
|
||||||
|
setActiveResult(sInput);
|
||||||
|
} else if (active !== sInput) {
|
||||||
|
setActiveResult(active?.parentElement?.previousElementSibling?.querySelector('.entry-link'));
|
||||||
|
}
|
||||||
|
} else if (key === 'ArrowRight') {
|
||||||
|
if (active?.matches?.('.entry-link')) {
|
||||||
|
active.click();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
/*
|
||||||
|
PaperMod v8+
|
||||||
|
License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE
|
||||||
|
Copyright (c) 2020 nanxiaobei and adityatelange
|
||||||
|
Copyright (c) 2021-2026 adityatelange
|
||||||
|
*/
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
module github.com/adityatelange/hugo-PaperMod
|
||||||
|
|
||||||
|
go 1.16
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "السابق"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "التالي"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one: "دقيقة واحدة"
|
||||||
|
two: "دقيقتان"
|
||||||
|
few: "بضع ثوان"
|
||||||
|
zero: "الآن"
|
||||||
|
other: "دقائق {{ .Count }}"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "فهرس المحتوى"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "ترجمات أخرى"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "الصفحة الرئيسية"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "تم النسخ!"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "نسخ الكود"
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Папярэдняя"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Наступная"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
zero: "0 хвілін"
|
||||||
|
one: "1 хвіліна"
|
||||||
|
few: "{{ .Count }} хвіліны"
|
||||||
|
many: "{{ .Count }} хвілін"
|
||||||
|
other: "{{ .Count }} хвілін"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
zero: "няма слоў"
|
||||||
|
one: "1 слова"
|
||||||
|
few: "{{ .Count }} слова"
|
||||||
|
many: "{{ .Count }} слоў"
|
||||||
|
other: "{{ .Count }} слова"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Змест"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Пераклады"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Галоўная"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Рэдагаваць"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "капіяваць"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "скапіявана!"
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Предишна страница"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Следваща страница"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "1 мин"
|
||||||
|
other: "{{ .Count }} мин"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Съдържание"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Преводи"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "পূর্ববর্তী"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "পরবর্তী"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "১ মিনিট"
|
||||||
|
other: "{{ .Count }} মিনিট"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one : "১ টি শব্দ"
|
||||||
|
other: "{{ .Count }} টি শব্দ"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "সূচিপত্র"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "অনুবাদসমূহ"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "হোম"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "সম্পাদনা করুন"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "কপি করুন"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "কপি হয়েছে!"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Pàgina anterior"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Pàgina següent"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "1 minut"
|
||||||
|
other: "{{ .Count }} minuts"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one : "paraula"
|
||||||
|
other: "{{ .Count }} paraules"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Taula de Continguts"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Traduccions"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Inici"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Editar"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "copiar"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "copiat!"
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "پەڕەی پێشتر"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "پەڕەی دواتر"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "1 خولەک"
|
||||||
|
other: "{{ .Count }} خولەک"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "پێڕست"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "وەرگێڕانەکان"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "ماڵەوە"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "لەبەری بگرەوە"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "لەبەر گیرایەوە!"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Předchozí"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Další"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "1 min"
|
||||||
|
other: "{{ .Count }} min"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one : "slovo"
|
||||||
|
other: "{{ .Count }} slov"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Obsah"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Překlady"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Domů"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Upravit"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "kopírovat"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "zkopírováno!"
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Forrige Side"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Næste Side"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one: "1 min"
|
||||||
|
other: "{{ .Count }} min"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Indholdsfortegnelse"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Oversættelser"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Start"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Rediger"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "kopier"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "kopieret!"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Vorherige"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Nächste"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one: "1 Minute"
|
||||||
|
other: "{{ .Count }} Minuten"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one : "Wort"
|
||||||
|
other: "{{ .Count }} Wörter"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Inhaltsverzeichnis"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Übersetzungen"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Home"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Bearbeiten"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "Kopieren"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "Kopiert!"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Προηγούμενο"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Επόμενο"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one: "1 λεπτό"
|
||||||
|
other: "{{ .Count }} λεπτά"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one: "λέξη"
|
||||||
|
other: "{{ .Count }} λέξεις"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Πίνακας Περιεχομένων"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Μεταφράσεις"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Αρχική"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Επεξεργασία"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "αντιγραφή"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "αντιγράφηκε!"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Prev"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Next"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "1 min"
|
||||||
|
other: "{{ .Count }} min"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one : "word"
|
||||||
|
other: "{{ .Count }} words"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Table of Contents"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Translations"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Home"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Edit"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "copy"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "copied!"
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "antaŭa paĝo"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "sekva paĝo"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "1 min"
|
||||||
|
other: "{{ .Count }} min"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Enhavo"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "tradukoj"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "ĉefpaĝo"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "kopii"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "kopiite!"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Anterior"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Siguiente"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "1 min"
|
||||||
|
other: "{{ .Count }} min"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one : "palabra"
|
||||||
|
other: "{{ .Count }} palabras"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Tabla de Contenidos"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Traducciones"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Inicio"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Editar"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "copiar"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "¡copiado!"
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "صفحه قبلی"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "صفحه بعدی"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one: "۱ دقیقه"
|
||||||
|
other: "{{ .Count }} دقیقه"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "فهرست مطالب"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "ترجمه ها"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "خانه"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "ویرایش"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "کپی"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "کپی شد!"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Edellinen"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Seuraava"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "1 min"
|
||||||
|
other: "{{ .Count }} minuuttia"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one : "sana"
|
||||||
|
other: "{{ .Count }} sanaa"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Sisällysluettelo"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Käännökset"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Etusivu"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Muokkaa"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "Kopioi"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "Kopioitu!"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Précédent"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Suivant"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "1 min"
|
||||||
|
other: "{{ .Count }} min"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one : "mot"
|
||||||
|
other: "{{ .Count }} mots"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Table des matières"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Traductions"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Accueil"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Modifier"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "Copier"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "Copié !"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "הקודם"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "הבא"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one: "דקה אחת"
|
||||||
|
other: "{{ .Count }} דקות"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one: "מילה אחת"
|
||||||
|
other: "{{ .Count }} מילים"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "תוכן עניינים"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "תרגומים"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "בית"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "ערוך"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "העתק"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "הועתק!"
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "पिछला"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "अगला"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "एक मिनट"
|
||||||
|
other: "{{ .Count }} मिनट"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "सुधारें"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "विषय - सूची"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "अनुवाद"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Prethodna stranica"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Sljedeća stranica"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "1 minuta"
|
||||||
|
other: "{{ .Count }} minute"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one : "riječ"
|
||||||
|
other: "{{ .Count }} riječi"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Tablica Sadržaja"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Prijevodi"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Početna stranica"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Promjeni"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "kopiraj"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "kopirano!"
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Előző oldal"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Következő oldal"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one: "1 perc"
|
||||||
|
other: "{{ .Count }} perc"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Tartalomjegyzék"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Fordítások"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Sebelumnya"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Selanjutnya"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "1 menit"
|
||||||
|
other: "{{ .Count }} menit"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one : "kata"
|
||||||
|
other: "{{ .Count }} kata"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Daftar isi"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Terjemahan"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Beranda"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Sunting"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "salin"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "disalin!"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Precedente"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Successivo"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one: "1 minuto"
|
||||||
|
other: "{{ .Count }} minuti"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one : "parola"
|
||||||
|
other: "{{ .Count }} parole"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Indice contenuti"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Traduzioni"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Home"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Modifica"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "copia"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "copiato!"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "前へ"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "次へ"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "1 分"
|
||||||
|
other: "{{ .Count }} 分"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one: "文字"
|
||||||
|
other: "{{ .Count }} 文字"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "目次"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "言語"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "ホーム"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "編集"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "コピー"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "コピーされました!"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "이전 페이지"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "다음 페이지"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "1 분"
|
||||||
|
other: "{{ .Count }} 분"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one : "단어"
|
||||||
|
other: "{{ .Count }} 단어"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "목차"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "번역"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "홈"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "편집"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "복사"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "복사 완료!"
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Rûpela Paş"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Rûpela Pêş"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "1 xulek"
|
||||||
|
other: "{{ .Count }} xulek"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Pêrist"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Wergeran"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Xanî"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "Jê bigire"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "Hat jêgirtin!"
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Ѳмнѳх"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Дараах"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "1 МИН"
|
||||||
|
other: "{{ .Count }} МИН"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Агуулга"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Орчуулга"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Нүүр"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "хуулах"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "хуулсан!"
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Halaman Sebelumnya"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Halaman Seterusnya"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one: "1 minit"
|
||||||
|
other: "{{ .Count }} minit"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Isi Kandungan"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Terjemahan"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Home"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Sunting"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "Salin"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "Disalin!"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Vorige"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Volgende"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one: "1 min"
|
||||||
|
other: "{{ .Count }} min"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one : "woord"
|
||||||
|
other: "{{ .Count }} woorden"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Inhoudsopgave"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Vertalingen"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Startpagina"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Bewerk"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "kopieer"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "gekopieerd!"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Forrige Side"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Neste Side"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one: "1 min"
|
||||||
|
other: "{{ .Count }} min"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one: "ord"
|
||||||
|
other: "{{ .Count }} ord"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Innholdsfortegnelse"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Oversettelser"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Hjem"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Rediger"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "Kopier"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "Kopiert!"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Prec."
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Seg."
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "1 min"
|
||||||
|
other: "{{ .Count }} min"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one : "mot"
|
||||||
|
other: "{{ .Count }} motss"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Taula de contengut"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Traduccions"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Acuèlh"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Modificar"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "copiar"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "copiat !"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "ਪਿਛਲਾ"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "ਅਗਲਾ"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one: "1 ਮਿੰਟ"
|
||||||
|
other: "{{ .Count }} ਮਿੰਟ"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one: "ਸ਼ਬਦ"
|
||||||
|
other: "{{ .Count }} ਸ਼ਬਦ"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "ਤਤਕਰਾ"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "ਅਨੁਵਾਦ"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "ਘਰ"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "ਸੋਧ"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "ਕਾਪੀ"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "ਕਾਪੀ ਕੀਤੀ ਗਈ!!"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Poprzednia"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Następna"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one: "1 min"
|
||||||
|
other: "{{ .Count }} min"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one : "słowo"
|
||||||
|
other: "{{ .Count }} słów"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Spis treści"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Tłumaczenia"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Strona Główna"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Edytuj"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "Kopiuj"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "Skopiowano!"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "پِچھلا"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "اگلا"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one: "ایک منٹ"
|
||||||
|
other: "مِنٹ {{ .Count }}"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one: "لفظ"
|
||||||
|
other: "لفظ {{ .Count }}"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "تتکرا"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "انوواد"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "گھر"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "سودھ"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "کاپی"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "کاپی کیتی گئی!"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Página Anterior"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Próxima Página"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one: "1 minuto"
|
||||||
|
other: "{{ .Count }} minutos"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one : "palavra"
|
||||||
|
other: "{{ .Count }} palavras"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Conteúdo"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Traduções"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Início"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Editar"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "copiar"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "copiado!"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Înapoi"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Înainte"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "1 minut"
|
||||||
|
other: "{{ .Count }} minute"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one : "cuvânt"
|
||||||
|
other: "{{ .Count }} cuvinte"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Sumar"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Traduceri"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Acasă"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Editează"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "copiază"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "copiat!"
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Предыдущая"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Следующая"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
zero: "0 минут"
|
||||||
|
one: "1 минута"
|
||||||
|
few: "{{ .Count }} минуты"
|
||||||
|
many: "{{ .Count }} минут"
|
||||||
|
other: "{{ .Count }} минута"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
zero: "0 слов"
|
||||||
|
one: "1 слово"
|
||||||
|
few: "{{ .Count }} слова"
|
||||||
|
many: "{{ .Count }} слов"
|
||||||
|
other: "{{ .Count }} слово"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Оглавление"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Переводы"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Главная"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Редактировать"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "копировать"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "скопировано!"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Predch"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Ďaľší"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "1 min"
|
||||||
|
other: "{{ .Count }} min"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one : "slovo"
|
||||||
|
other: "{{ .Count }} slov"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Obsah"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Preklady"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Domov"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Upraviť"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "kopírovať"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "skopírované!"
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Förra Sidan"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Nästa Sida"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one: "1 min"
|
||||||
|
other: "{{ .Count }} min"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Innehållsförteckning"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Översättningar"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Hem"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Redigera"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "kopiera"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "kopierad!"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Uliopita"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Ujao"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "dakika 1"
|
||||||
|
other: "dakika {{ .Count }}"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one : "neno"
|
||||||
|
other: "maneno {{ .Count }}"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Jedwali la Yaliyomo"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Tafsiri"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Mwanzo"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Hariri"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "nakili"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "nakiliwa!"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "ก่อนหน้า"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "ถัดไป"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "1 นาที"
|
||||||
|
other: "{{ .Count }} นาที"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one : "คำ"
|
||||||
|
other: "{{ .Count }} คำ"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "สารบัญ"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "การแปล"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "หน้าหลัก"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "แก้ไข"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "คัดลอก"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "คัดลอกแล้ว!"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Önceki"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Sonraki"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "1 dk"
|
||||||
|
other: "{{ .Count }} dk"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one : "sözcük"
|
||||||
|
other: "{{ .Count }} sözcük"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "İçindekiler"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Çeviriler"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Ana Sayfa"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Düzenle"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "Kopyala"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "Kopyalandı!"
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Попередня"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Наступна"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "1 хвилина"
|
||||||
|
other: "{{ .Count }} хвилин"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Зміст"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Переклади"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Головна"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "копіювати"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "скопійовано!"
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Oldingi sahifa"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Keyingi sahifa"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "Bir daqiqa"
|
||||||
|
other: "{{ .Count }} daqiqa"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Mundarija"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Tarjimalar"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Bosh sahifa"
|
||||||
|
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "Trang trước"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "Trang tiếp theo"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one: "1 phút"
|
||||||
|
other: "{{ .Count }} phút"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one: "từ"
|
||||||
|
other: "{{ .Count }} từ"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "Mục lục"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "Bản dịch"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "Trang chủ"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "Chỉnh sửa"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "Sao chép"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "Đã sao chép!"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "上一頁"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "下一頁"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "1 分鐘"
|
||||||
|
other: "{{ .Count }} 分鐘"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one: "字"
|
||||||
|
other: "{{ .Count }} 字"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "目錄"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "語言"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "首頁"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "編輯"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "複製"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "已複製!"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
- id: prev_page
|
||||||
|
translation: "上一页"
|
||||||
|
|
||||||
|
- id: next_page
|
||||||
|
translation: "下一页"
|
||||||
|
|
||||||
|
- id: read_time
|
||||||
|
translation:
|
||||||
|
one : "1 分钟"
|
||||||
|
other: "{{ .Count }} 分钟"
|
||||||
|
|
||||||
|
- id: words
|
||||||
|
translation:
|
||||||
|
one: "字"
|
||||||
|
other: "{{ .Count }} 字"
|
||||||
|
|
||||||
|
- id: toc
|
||||||
|
translation: "目录"
|
||||||
|
|
||||||
|
- id: translations
|
||||||
|
translation: "语言"
|
||||||
|
|
||||||
|
- id: home
|
||||||
|
translation: "主页"
|
||||||
|
|
||||||
|
- id: edit_post
|
||||||
|
translation: "编辑"
|
||||||
|
|
||||||
|
- id: code_copy
|
||||||
|
translation: "复制"
|
||||||
|
|
||||||
|
- id: code_copied
|
||||||
|
translation: "已复制!"
|
||||||
|
After Width: | Height: | Size: 138 KiB |
|
After Width: | Height: | Size: 16 KiB |
@@ -0,0 +1,3 @@
|
|||||||
|
{{- define "main" }}
|
||||||
|
<div class="not-found">404</div>
|
||||||
|
{{- end }}{{/* end main */ -}}
|
||||||