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.