如何管理文章分类

2024-02-20·技术浅谈

如何管理文章分类

在 Taco 中,文章分类是组织和展示内容的重要方式。本文将详细介绍如何管理和自定义文章分类。

📁 分类系统概览

Taco 使用基于文件夹的分类系统,每个分类对应 data/posts/ 下的一个目录。

当前分类结构

data/posts/
├── essays/          # 技术文章分类
├── pieces/          # 随笔文章分类
└── yearly/          # 年度总结分类

⚙️ 分类配置文件

所有分类的配置都存储在 data/categories.data.js 文件中:

const categories = {
    "essays": {
        slug: "essays",
        name: "技术浅谈",
        description: "整齐排列的想法,和时不时的长篇大论。",
        banner: "https://example.com/essays-banner.jpg",
        title: "技术浅谈",
        subtitle: "代码与思考的碰撞"
    },
    "pieces": {
        slug: "pieces",
        name: "无心文字",
        description: "无处安放的有感而发和碎碎念。",
        banner: "https://example.com/pieces-banner.jpg",
        title: "无心文字",
        subtitle: "有感而发的碎碎念"
    },
    "yearly": {
        slug: "yearly",
        name: "年度总结",
        description: "每年一次的年度总结。",
        banner: "https://example.com/yearly-banner.jpg",
        title: "年度总结",
        subtitle: "时光荏苒,岁月如歌"
    }
}

module.exports = categories

📝 分类字段说明

必需字段

slug (字符串)

  • 分类的唯一标识符
  • 必须与 data/posts/ 下的目录名一致
  • 用于生成 URL 路径:/category/[slug]

name (字符串)

  • 分类的显示名称
  • 会在分类页面和导航中显示

description (字符串)

  • 分类的简短描述
  • 在分类页面顶部显示

可选字段

banner (字符串)

  • 分类页面的背景图片链接
  • 如果不设置,会使用默认样式

title (字符串)

  • 分类页面横幅的主标题
  • 如果不设置,会使用 name 字段

subtitle (字符串)

  • 分类页面横幅的副标题
  • 用于补充说明分类主题

➕ 添加新分类

步骤1:创建目录结构

data/posts/ 下创建新的分类目录:

mkdir data/posts/tutorials

步骤2:更新分类配置

data/categories.data.js 中添加新分类:

const categories = {
    // ... 现有分类 ...
    
    "tutorials": {
        slug: "tutorials",
        name: "教程专区",
        description: "详细的技术教程和操作指南。",
        banner: "https://images.unsplash.com/photo-1516321318423-f06f85e504b3",
        title: "教程专区",
        subtitle: "Learning by Doing"
    }
}

步骤3:创建测试文章

在新分类目录下创建一篇测试文章:

---
title: '分类测试文章'
date: '2024-03-01'
category: 'tutorials'
banner:
    img: "https://example.com/test-banner.jpg"
    title: "测试文章"
    subtitle: "验证新分类功能"
---

# 这是一篇测试文章

用于验证新分类是否正常工作。

✏️ 修改现有分类

更改分类名称和描述

直接编辑 data/categories.data.js 文件:

"essays": {
    slug: "essays",
    name: "技术博客",        // 修改显示名称
    description: "深度技术文章和经验分享。",  // 修改描述
    banner: "https://new-banner-url.jpg",     // 更换横幅图片
    title: "技术博客",
    subtitle: "深度思考与实践"
}

更改分类 slug

如果要更改分类的 slug,需要:

  1. 重命名目录

    mv data/posts/essays data/posts/tech-articles
    
  2. 更新配置文件

    "tech-articles": {  // 新的 slug
        slug: "tech-articles",
        name: "技术文章",
        // ... 其他配置
    }
    
  3. 更新现有文章: 将所有该分类下文章的 category 字段更新为新的 slug:

    ---
    title: '文章标题'
    date: '2024-01-15'
    category: 'tech-articles'  # 更新为新的 slug
    ---
    

🗂️ 分类页面功能

每个分类都有自己的专属页面,访问路径为:/category/[slug]

分类页面包含的内容

  1. 横幅区域

    • 背景图片(如果设置了 banner)
    • 分类标题和副标题
  2. 文章列表

    • 该分类下的所有文章
    • 按发布日期排序(最新在前)
    • 支持分页显示
  3. 文章预览卡片

    • 文章标题
    • 发布日期
    • 文章摘要(自动生成)
    • 阅读时间估算

🎨 分类页面自定义

横幅图片规格建议

  • 分辨率:推荐 2070x1380 像素
  • 格式:WebP、JPEG 或 PNG
  • 主题:与分类内容相关的高质量图片

推荐图片来源

  • Unsplashhttps://unsplash.com/
  • Pexelshttps://pexels.com/
  • 自定义设计:使用 Figma、Canva 等工具

示例横幅配置

// 技术类分类
banner: "https://images.unsplash.com/photo-1517077304055-6e89abbf09b0"

// 生活类分类  
banner: "https://images.unsplash.com/photo-1506905925346-21bda4d32df4"

// 年度总结类
banner: "https://images.unsplash.com/photo-1551288049-bebda4e38f71"

🔧 高级配置

分类权重排序

可以通过调整 categories.data.js 中对象的顺序来控制分类的显示顺序:

const categories = {
    "essays": { /* 首先显示 */ },
    "tutorials": { /* 其次显示 */ },
    "pieces": { /* 最后显示 */ }
}

隐藏分类

如果要临时隐藏某个分类,可以在分类配置中添加 hidden 字段:

"drafts": {
    slug: "drafts",
    name: "草稿",
    hidden: true,  // 隐藏此分类
    // ... 其他配置
}

注意:这需要在代码中添加相应的逻辑来处理 hidden 字段。

📊 分类统计

博客系统会自动统计每个分类的文章数量,并在相应页面显示。这些统计信息包括:

  • 分类下的文章总数
  • 最近更新时间
  • 文章发布时间分布

✅ 最佳实践

1. 分类命名建议

  • 使用有意义的英文单词作为 slug
  • 避免使用特殊字符和空格
  • 保持 slug 简短而清晰

2. 分类数量控制

  • 建议保持 3-6 个主要分类
  • 避免分类过多导致内容分散
  • 可以使用标签来进一步细分内容

3. 分类一致性

  • 确保分类主题明确且互不重叠
  • 维护一致的命名风格
  • 定期整理和归档旧内容

4. SEO 优化

  • 为每个分类编写清晰的描述
  • 使用相关关键词但避免堆砌
  • 确保横幅图片有合适的 alt 文本

🎯 总结

通过合理的分类管理,你可以:

  • ✅ 让读者更容易找到感兴趣的内容
  • ✅ 提升博客的专业度和组织性
  • ✅ 改善 SEO 表现
  • ✅ 为不同类型的内容提供合适的展示方式

现在你已经掌握了 Taco 分类系统的完整使用方法,开始组织你的优质内容吧!📚