️ feat: add main page layout with navigation and footer

feat: create random labels page

feat: implement login page with OpenID Connect support

feat: add Gravatar component for user avatars

feat: create Navbar component with navigation menu

chore: create Sidebar component placeholder

feat: implement login form with OIDC and email/password options

feat: add reusable button component

feat: create card component for structured content display

feat: implement input component for forms

feat: create label component for form labels

feat: add navigation menu component for site navigation

chore: add configuration file for site metadata

feat: implement device context for responsive design

feat: add utility functions for class name management

feat: define OIDC configuration model

feat: define base response model for API responses

feat: define user model for user data

feat: implement i18n for internationalization support

feat: add English and Chinese translations for login

chore: create index for locale resources

chore: add blog home view placeholder
This commit is contained in:
2025-07-24 09:22:50 +08:00
parent 19c8a9eac5
commit 9ca307f4d9
57 changed files with 2453 additions and 108 deletions

View File

@ -1 +1,46 @@
package ctxutils
import (
"github.com/cloudwego/hertz/pkg/app"
"strconv"
)
type PaginationParams struct {
Page uint64
Size uint64
OrderedBy string
Reverse bool // 默认是从大值到小值
}
func GetPaginationParams(c *app.RequestContext) *PaginationParams {
page := c.Query("page")
size := c.Query("size")
orderedBy := c.Query("ordered_by")
reverse := c.Query("reverse")
if page == "" {
page = "1"
}
if size == "" {
size = "10"
}
var reverseBool bool
if reverse == "" || reverse == "false" || reverse == "0" {
reverseBool = false
} else {
reverseBool = true
}
pageNum, err := strconv.ParseUint(page, 10, 64)
if err != nil || pageNum < 1 {
pageNum = 1
}
sizeNum, err := strconv.ParseUint(size, 10, 64)
if err != nil || sizeNum < 1 {
sizeNum = 10
}
return &PaginationParams{
Page: pageNum,
Size: sizeNum,
OrderedBy: orderedBy,
Reverse: reverseBool,
}
}