frappe-syntax-jinja

Author and validate Jinja templates for ERPNext/Frappe Print Formats, Email Templates, and Portal Pages.

163|53|Updated Jan 14, 2026
One-click install
npx skills add https://github.com/OpenAEC-Foundation/Frappe_Claude_Skill_Package --skill frappe-syntax-jinja
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: frappe-syntax-jinja
Source: https://github.com/OpenAEC-Foundation/Frappe_Claude_Skill_Package/tree/main/skills/source/syntax/frappe-syntax-jinja
Command: npx skills add https://github.com/OpenAEC-Foundation/Frappe_Claude_Skill_Package --skill frappe-syntax-jinja

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill provides a comprehensive, deterministic guide for authoring Jinja templates within Frappe/ERPNext, reducing errors across Print Formats, Email Templates, and Portal Pages.

Core Features & Use Cases

  • Clear Jinja syntax references for Print Formats, Email Templates, and Portal Pages across v14–v16.
  • Context-aware guidance including available objects, whitelisted methods, translation, and formatting helpers.
  • Real-world examples and patterns to promote safe, maintainable templates in production.

Quick Start

Create a sample Jinja template for a Print Format that uses doc.get_formatted(), translation, and a child table loop.

Frequently Asked Questions about frappe-syntax-jinja

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write Jinja templates for Frappe Print Formats?▼

Author Frappe Print Formats using Jinja by leveraging doc.get_formatted() for field display, translation via _(), and formatting helpers. This Skill provides deterministic syntax references and context-aware examples to ensure printable documents render reliably.

What context objects are available in ERPNext Jinja email templates?▼

ERPNext Jinja email templates can access standard context objects and whitelisted frappe.* methods. This Skill outlines available variables, translation techniques, and safe rendering patterns to generate dynamic email content.

What's the best way to loop through child tables in Frappe Jinja templates?▼

The best way to loop through child tables in Frappe Jinja templates involves iterating over the child table array within the doc object context. This Skill provides real-world loop examples and formatting guidance for child table rows.

Can I use whitelisted frappe methods inside Portal Page templates?▼

Yes, you can call whitelisted frappe methods inside Portal Page templates to fetch server-side data. This Skill details safe rendering practices, method availability, and syntax rules for Frappe v14 through v16.

Why does my Frappe Jinja template fail to render correctly?▼

Frappe Jinja templates often fail due to incorrect context objects, non-whitelisted method calls, or syntax errors. This Skill offers deterministic validation guidance and standard reference files to troubleshoot rendering failures.