pub fn preprocess( text: &str, base_dir: &Path, profile: Option<&str>, ) -> Result<String, String>
Full preprocessing: resolve includes, then apply the profile.