feat: Replace cookiecutter with built-in MiniJinja templating

- Add MiniJinja dependency for Jinja2-compatible templating
- Create new project_template.rs module for template rendering
- Bundle snowflake template in templates/snowflake/ directory
- Remove dependency on external cookiecutter Python tool
- Handle Gitea publishing natively in Rust instead of Python hooks
- Update default template path to use bundled template with fallback
- Update README to reflect new built-in templating
- All tests pass

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
2026-09-13 08:37:18 -05:00
parent 981cd853b9
commit caa0001922
41 changed files with 789 additions and 53 deletions
+7
View File
@@ -174,7 +174,14 @@ pub fn default_show_toolbar() -> bool {
}
/// Default cookiecutter template for **File ▸ New project…**.
/// First tries the bundled template, then falls back to the user's Cookiecutters directory.
pub fn default_project_template() -> PathBuf {
// Try the bundled template first
let bundled = PathBuf::from("templates/snowflake");
if bundled.join("cookiecutter.json").is_file() {
return bundled;
}
// Fallback to user's Cookiecutters directory
dirs::home_dir()
.unwrap_or_else(|| PathBuf::from("."))
.join("Documents")