from django.urls import path
from django.views.decorators.cache import cache_page

from . import views

app_name = "blog" #zhq: 应用命名空间，用于URL反向解析
urlpatterns = [
#zhq: 首页路由 - 显示文章列表
    path(
        r'',
        views.IndexView.as_view(),
        name='index'),
#zhq: 首页分页路由 - 支持分页浏览
    path(
        r'page/<int:page>/',
        views.IndexView.as_view(),
        name='index_page'),
#zhq: 文章详情页路由 - 包含年月日信息用于SEO优化
    path(
        r'article/<int:year>/<int:month>/<int:day>/<int:article_id>.html',
        views.ArticleDetailView.as_view(),
        name='detailbyid'),
#zhq: 文章详情页路由 - 包含年月日信息用于SEO优化
    path(
        r'category/<slug:category_name>.html',
        views.CategoryDetailView.as_view(),
        name='category_detail'),
#zhq: 文章详情页路由 - 包含年月日信息用于SEO优化
    path(
        r'category/<slug:category_name>/<int:page>.html',
        views.CategoryDetailView.as_view(),
        name='category_detail_page'),
#zhq: 文章详情页路由 - 包含年月日信息用于SEO优化
    path(
        r'author/<author_name>.html',
        views.AuthorDetailView.as_view(),
        name='author_detail'),
#zhq: 文章详情页路由 - 包含年月日信息用于SEO优化
    path(
        r'author/<author_name>/<int:page>.html',
        views.AuthorDetailView.as_view(),
        name='author_detail_page'),
#zhq: 文章详情页路由 - 包含年月日信息用于SEO优化
    path(
        r'tag/<slug:tag_name>.html',
        views.TagDetailView.as_view(),
        name='tag_detail'),
#zhq: 文章详情页路由 - 包含年月日信息用于SEO优化
    path(
        r'tag/<slug:tag_name>/<int:page>.html',
        views.TagDetailView.as_view(),
        name='tag_detail_page'),
#zhq: 文章详情页路由 - 包含年月日信息用于SEO优化
    path(
        'archives.html',
        cache_page(
            60 * 60)(
            views.ArchivesView.as_view()),
        name='archives'),
#zhq: 友情链接页路由 - 显示所有启用的友情链接
    path(
        'links.html',
        views.LinkListView.as_view(),
        name='links'),
#zhq: 友情链接页路由 - 显示所有启用的友情链接
    path(
        r'upload',
        views.fileupload,
        name='upload'),
# zhq: 缓存清理路由 - 手动清理系统缓存
    path(
        r'clean',
        views.clean_cache_view,
        name='clean'),
]
