首次提交:初始化项目代码

This commit is contained in:
sunct
2026-07-31 14:44:48 +08:00
commit a4fe393571
119 changed files with 29105 additions and 0 deletions
+80
View File
@@ -0,0 +1,80 @@
package main
import (
"fmt"
"io/ioutil"
"os"
"path/filepath"
"regexp"
"strconv"
"strings"
)
var pxRegex = regexp.MustCompile(`(\d+\.?\d*)px`)
func pxToRem(pxStr string) string {
px, err := strconv.ParseFloat(pxStr, 64)
if err != nil {
return pxStr + "px"
}
if px == 0 {
return "0"
}
rem := px / 16.0
if rem == float64(int(rem)) {
return fmt.Sprintf("%drem", int(rem))
}
return fmt.Sprintf("%.2frem", rem)
}
func convertFile(filePath string) error {
content, err := ioutil.ReadFile(filePath)
if err != nil {
return err
}
original := string(content)
converted := pxRegex.ReplaceAllStringFunc(original, func(match string) string {
num := strings.TrimSuffix(match, "px")
return pxToRem(num)
})
if original == converted {
return nil
}
return ioutil.WriteFile(filePath, []byte(converted), 0644)
}
func main() {
if len(os.Args) < 2 {
fmt.Println("Usage: go run convert_units.go <directory>")
os.Exit(1)
}
dir := os.Args[1]
count := 0
err := filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if !info.IsDir() && strings.HasSuffix(path, ".html") {
err := convertFile(path)
if err != nil {
fmt.Printf("Error converting %s: %v\n", path, err)
return nil
}
count++
fmt.Printf("Converted: %s\n", path)
}
return nil
})
if err != nil {
fmt.Printf("Error walking directory: %v\n", err)
os.Exit(1)
}
fmt.Printf("\nTotal files converted: %d\n", count)
}