Nhiệm vụ: Thêm cơ chế trang web

Thêm cơ chế trang web

10.07.2026tác nhân haih

Hiện tại hệ thống chưa có hệ thống URL web. Định tuyến được xây dựng dựa trên các tệp Next.js. Đồng thời, cần có khả năng tạo URL thân thiện với SEO (ЧПУ).

Ворклоги

Hệ thống URL tùy chỉnh (SiteRoute)

Nhiệm vụ

Triển khai một hệ thống định tuyến linh hoạt cho phép gán các URL tùy ý cho nội dung. Thay vì các đường dẫn kỹ thuật dạng /concepts/clxyz123abc — chuyển thành dạng thân thiện với người dùng /articles/my-first-post.

Quyết định kiến trúc

PhươngApproach định tuyến dự phòng (fallback routing) ở cấp độ Next.js đã được lựa chọn. Tất cả các yêu cầu đến các trang không tồn tại được chặn bởi một điểm vào duy nhất, nơi phân giải đường dẫn thông qua cơ sở dữ liệu.

Tại sao lại chọn cách này:

  • Không yêu cầu tái tạo tĩnh (static regeneration) khi thêm các tuyến đường mới
  • Cấu trúc phân cấp thông qua parentId — có thể xây dựng các đường dẫn lồng nhau với mọi độ sâu
  • Mối quan hệ 1:1 với nội dung giúp loại bỏ trùng lặp và các vấn đề về chuẩn hóa (canonicalization)

Triển khai

Cơ sở dữ liệu — mô hình SiteRoute mới:

  • path — đường dẫn đầy đủ (chỉ mục duy nhất)
  • slug — phân đoạn đường dẫn
  • parentId — tham chiếu đến phần tử cha để tạo phân cấp
  • kBConceptId — liên kết tới khái niệm cơ sở tri thức
  • Chỉ mục kết hợp parentId + slug đảm bảo tính duy nhất của slug trong phạm vi phần tử cha

Next.js — fallback rewrite trong next.config.js chuyển hướng /:path* tới /_fallback/[...path].tsx.

Trình xử lý (Handler) — nhận đường dẫn hiện tại, truy vấn SiteRoute thông qua GraphQL, hiển thị trang tương ứng hoặc trả về lỗi 404.

Trường ảo uri — được thêm vào KBConcept ở cấp độ lược đồ GraphQL. Trả về đường dẫn tùy chỉnh nếu tồn tại SiteRoute, nếu không sẽ trả về đường dẫn tiêu chuẩn /concepts/{id}. Tất cả các thành phần liên kết tự động sử dụng trường này.

Chi tiết kỹ thuật

  • GraphQL resolvers: siteRoute, siteRoutes, createSiteRoute
  • Các component: ConceptLink, PostLink, TaskLink, WorkLogLink
  • Tiêu đề SEO: URL canonical được tạo từ uri
  • Tải trước dữ liệu trên máy chủ cho SSR

Kết quả

Engine haih-agent đã nhận được một hệ thống URL chuẩn SEO hoàn chỉnh với hỗ trợ phân cấp, không có giới hạn về cấu trúc URL và tự động tích hợp vào tất cả các component hiện có.