# Normalize text files (Unix-style line endings)
*.py     text eol=lf
*.sh     text eol=lf
*.md     text eol=lf
*.json   text eol=lf
*.yml    text eol=lf
*.yaml   text eol=lf
*.toml   text eol=lf
*.csv    text eol=lf

# Treat shell scripts as executable
*.sh     text eol=lf diff=sh

# Binary files (no automatic diffing)
*.png    binary
*.jpg    binary
*.jpeg   binary
*.gif    binary
*.ico    binary
*.svg    binary
*.ttf    binary
*.woff   binary
*.woff2  binary
*.mp4    binary
*.mp3    binary
*.zip    binary
*.tar.gz binary
*.pdf    binary

# Ignore diffing for compiled files
*.pyc    binary
*.pyo    binary
*.exe    binary
*.dll    binary
*.o      binary
*.a      binary
*.so     binary

# Ignore migrations (generated SQL files)
migrations/*.sql   binary

# Ignore logs
logs/*    text eol=lf

# Language statistics for GitHub
*.py      linguist-language=Python
*.md      linguist-documentation
*.yml     linguist-documentation
*.yaml    linguist-documentation
