# 行尾策略：仓库内统一 LF，checkout 不做自动转换。
#
# 理由见 AGENTS.md：shell 脚本必须 UTF-8 无 BOM + LF。
# 这个项目还会被队友在 Windows / WSL / Linux 上 clone，
# 不固定行尾的话，每次提交都会出现"整文件都变了"的假 diff。
* text=auto eol=lf

# ---- 文本，显式声明 ----
*.py    text eol=lf
*.md    text eol=lf
*.toml  text eol=lf
*.yml   text eol=lf
*.yaml  text eol=lf
*.json  text eol=lf
*.cfg   text eol=lf
*.txt   text eol=lf
*.tex   text eol=lf
*.bib   text eol=lf
.gitignore     text eol=lf
.gitattributes text eol=lf
.editorconfig  text eol=lf

# PowerShell：必须是纯 ASCII + LF（Windows PowerShell 5.1 无 BOM 时按 ANSI 解析，
# 中文会直接导致语法错误）。见 docs/04-environment.md §8。
*.ps1 text eol=lf

# 批处理必须 CRLF，否则 cmd 解析会出问题
*.bat text eol=crlf
*.cmd text eol=crlf

# ---- 二进制，禁止任何转换 ----
*.png  binary
*.jpg  binary
*.jpeg binary
*.gif  binary
*.pdf  binary
*.eps  binary
*.svg  text
*.xlsx binary
*.xls  binary
*.docx binary
*.pptx binary
*.zip  binary
*.exe  binary
*.dll  binary
*.db   binary
*.ico  binary

# ---- diff 行为 ----
# 笔记本是 JSON 文本，可以正常 diff，但不要参与语言统计
*.ipynb -linguist-detectable
