# 博客应用的URL配置文件
from django.urls import path
from django.views.decorators.cache import cache_page  # 页面缓存装饰器

from . import views

app_name = "blog"  # 应用命名空间

urlpatterns = [
    # 首页相关
    path(
        r'',
        views.IndexView.as_view(),
        name='index'),  # 首页
    path(
        r'page/<int:page>/',
        views.IndexView.as_view(),
        name='index_page'),  # 首页分页
    
    # 文章详情页
    path(
        r'article/<int:year>/<int:month>/<int:day>/<int:article_id>.html',
        views.ArticleDetailView.as_view(),
        name='detailbyid'),  # 文章详情页（按ID）
    
    # 分类相关页面
    path(
        r'category/<slug:category_name>.html',
        views.CategoryDetailView.as_view(),
        name='category_detail'),  # 分类页面
    path(
        r'category/<slug:category_name>/<int:page>.html',
        views.CategoryDetailView.as_view(),
        name='category_detail_page'),  # 分类页面分页
    
    # 作者相关页面
    path(
        r'author/<author_name>.html',
        views.AuthorDetailView.as_view(),
        name='author_detail'),  # 作者页面
    path(
        r'author/<author_name>/<int:page>.html',
        views.AuthorDetailView.as_view(),
        name='author_detail_page'),  # 作者页面分页
    
    # 标签相关页面
    path(
        r'tag/<slug:tag_name>.html',
        views.TagDetailView.as_view(),
        name='tag_detail'),  # 标签页面
    path(
        r'tag/<slug:tag_name>/<int:page>.html',
        views.TagDetailView.as_view(),
        name='tag_detail_page'),  # 标签页面分页
    
    # 其他页面
    path(
        'archives.html',
        cache_page(60 * 60)(  # 缓存1小时
            views.ArchivesView.as_view()),
        name='archives'),  # 文章归档页
    path(
        'links.html',
        views.LinkListView.as_view(),
        name='links'),  # 友情链接页
    
    # 功能接口
    path(
        r'upload',
        views.fileupload,
        name='upload'),  # 文件上传接口
    path(
        r'clean',
        views.clean_cache_view,
        name='clean'),  # 清除缓存接口
]
