Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Helper functions for slug processing

Đang mở
#152 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
35/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
javascript
Lĩnh vực
api, backend

Hướng nghiên cứu

Bắt đầu bằng việc đọc issue liên quan #151 để hiểu ngữ cảnh xử lý slug được yêu cầu. Sau đó, xác định các contract của những helper được liệt kê cùng với hành vi xác thực, tra cứu, chuẩn hóa và chuyển giao của chúng theo issue này. Công việc hoàn tất khi tất cả helper được chỉ định hỗ trợ các trường hợp thành công và lỗi đã được tài liệu hóa, bao gồm rollback khi chuyển giao slug.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

enhancement

In support of #151, the following transforming library for slugs should be added:

  1. getSlugFromMetadata(__rerum:Object) -> validSlug:String
    • extract "this-slug" from DB record property {__rerum: { slug : "this-slug" } }
    • throw invalid argument if not __rerum metadata
    • return empty "" if slug property empty or missing
  2. assignSlug(slug:String, document:Object) -> document:Object
    • insert or overwrite "this-slug" to __rerum property for traditional save
    • empty/remove slug with empty ""
  3. findBySlug(slug:String) async -> document:Object
    • RERUM lookup for slug match
    • 404 on a miss, 400 on a bad slug
  4. transferSlug(toDocument:Object, fromDocument?:Object) async -> 200 <location>
    • RERUM upsert toDocument with "this-slug" and RERUM patch fromDocument with { __rerum.slug: "" }
    • A single transaction, revert on a failure
  5. slugExists(slug:String) async -> Boolean
    • *findBySlug(slug) is not 40x
  6. slugIsValid(slug:String) -> Boolean
    • slug and normalizeSlug(slug) match
  7. normalizeSlug(userSlug:String) -> validSlug:String
    • "This, That & the Other! Various Outré Considerations" -> "this-that-the-other-various-outre-considerations"
  8. buildSluggedId(validSlug:String) -> atIdUrl:Url

Only "normalizeSlug" takes user input.

Ngôn ngữ chính
JavaScript
Star
3
Fork
6
Merge trung bình
4 ngày 9 giờ
Pull request đã merge (30 ngày)
5

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của CenterForDigitalHumanities/rerum_server_nodejs

Tất cả issue của CenterForDigitalHumanities/rerum_server_nodejs

Issue tương tự

Thêm issue về JavaScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.