frappe-impl-jinja

Build and debug Frappe Jinja templates for print formats and email templates.

Updated May 31, 2026
One-click install
npx skills add https://github.com/anonymousminati/Res-POS --skill frappe-impl-jinja-anonymousminati
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: frappe-impl-jinja
Source: https://github.com/anonymousminati/Res-POS/tree/main/.claude/skills/impl/frappe-impl-jinja
Command: npx skills add https://github.com/anonymousminati/Res-POS --skill frappe-impl-jinja-anonymousminati

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

It helps Frappe developers turn business documents into reliable templates without confusing Jinja with report print syntax, breaking child-table formatting, or shipping slow and fragile layouts.

Core Features & Use Cases

  • Build Print Formats for invoices, quotes, packing slips, and certificates.
  • Create Email Templates and Notifications with dynamic document data.
  • Add Portal Pages with custom context logic for authenticated users.
  • Register reusable Jinja methods and filters for consistent formatting.
  • Avoid common failures such as N+1 queries, unsafe HTML, missing translations, and PDF rendering mismatches.

Quick Start

Ask the assistant to create a Frappe Jinja print format for a Sales Invoice with a company header, formatted totals, child table rows, and translation-ready labels.

Frequently Asked Questions about frappe-impl-jinja

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

FAQPage Schema
How do I create a Frappe Jinja print format for a Sales Invoice with child tables?

Frappe Jinja print formats require correct syntax to render child table rows, formatted totals, and company headers for invoices. Use version-aware PDF styling across Frappe v14-v16 to ensure layouts match expectations without breaking formatting.

Why does my Frappe email template output broken HTML or missing translations?

Frappe email templates break when using unsafe HTML or missing translation tags. Apply safe HTML handling and translation-ready labels in your Jinja template to ensure notifications render dynamic document data correctly for multilingual users.

How do I add custom context logic to Frappe portal pages using Jinja?

Add custom context logic to Frappe portal pages by writing Jinja templates that inject dynamic data for authenticated users. This approach supports portal context pages, allowing you to build custom views without relying on standard report print syntax.

Does this approach work for registering reusable Jinja methods and filters in Frappe?

Yes, you can register reusable Jinja methods and filters to ensure consistent formatting across Frappe templates. This prevents common failures like N+1 queries and unsafe HTML by standardizing how document data is accessed and displayed.

What is the best way to avoid N+1 queries when rendering Frappe Jinja templates?

The best way to avoid N+1 queries in Frappe Jinja templates is to use performance-aware data access. By registering reusable Jinja methods and filters, you standardize data retrieval to prevent slow and fragile layouts in print formats and notifications.

When do I need version-aware PDF styling for Frappe print formats?

You need version-aware PDF styling for Frappe print formats when rendering layouts across Frappe v14-v16. Applying correct Jinja syntax and formatted field output ensures your invoice and certificate PDFs render consistently without version-specific mismatches.