Most AI presentation tools (Gamma, Beautiful.ai, SlidesAI) fail to support right-to-left layout correctly. Hebrew text reverses, bullets stay left-aligned, and punctuation jumps to the wrong position. Israeli users waste hours manually fixing RTL issues in business presentations.
Generate RTL-first Hebrew presentations with full right-to-left support. Use when you need to create a business presentation, startup pitch deck, quarterly report, or educational slideshow in Hebrew. Produces slides with Hebrew fonts, right-aligned bullets, and bilingual support in a single deck. Prevents hours of manual formatting and RTL issues that other tools fail to solve. Do NOT use for non-Hebrew presentations, video creation, or interactive web slideshows.
npx skills-il add skills-il/marketing-growth --skill presentation-generator -a claude-codeSupported Agents
Quick Nav
This skill generates Hebrew presentations with correct right-to-left (RTL) layout. It covers two practical output paths: Marp markdown for developers who want version-controlled, text-based slides, and python-pptx for anyone who needs a .pptx file compatible with PowerPoint and Google Slides.
Hebrew presentations have unique technical requirements that generic presentation tools ignore. Bullet alignment defaults to LTR. Punctuation jumps to the wrong end of a line. Number formatting in Israeli business contexts follows conventions that differ from what US-centric templates assume. This skill addresses all of those problems with working code and explicit configuration rather than workarounds.
Do not use this skill for fully English presentations (use standard Marp or PowerPoint templates), video export, or interactive web-based slideshows (use Reveal.js separately).
Ask your AI agent:
Create a 10-slide startup pitch deck in Hebrew for a B2B SaaS company in the legal-tech space.
Include: problem, solution, product demo, market size, business model, traction, team, and ask.
Use Marp format with RTL Hebrew layout.Or for a PPTX file:
Create a quarterly business report presentation in Hebrew (12 slides) as a .pptx file.
Include NIS financial figures, charts placeholders, and Hebrew section headers.Marp converts Markdown into slides. It is developer-friendly, version-controllable, and outputs PDF, HTML, or PPTX. RTL support is implemented via CSS directives embedded in the Marp theme.
Marp does not have native RTL support at the engine level. RTL is achieved by setting direction: rtl and text-align: right in the theme CSS, and using a Hebrew-capable font. This is a CSS-level workaround, but it is robust and widely used.
Install Marp CLI:
npm install -g @marp-team/marp-cliBasic Marp file structure with RTL:
---
marp: true
theme: rtl-hebrew
lang: he
dir: rtl
---
<!-- _class: title -->
# כותרת המצגתpython-pptx creates .pptx files directly. RTL support requires XML-level patches because python-pptx's Python API does not expose the RTL paragraph attribute. You must inject <a:rtl val="1"/> into each paragraph element after adding text.
Install:
pip install python-pptxSee scripts/create-presentation.py for a complete working example with all RTL patches applied.
For Google Slides output, use the Slides API with WritingDirection: RIGHT_TO_LEFT on text runs. This is more involved and requires OAuth; use python-pptx and import into Google Slides when a programmatic Google Slides workflow is not strictly necessary.
Save as themes/rtl-hebrew.css and reference it in your Marp config:
/* themes/rtl-hebrew.css */
@import url('https://fonts.googleapis.com/css2?family=Heebo:wght@300;400;700&display=swap');
section {
direction: rtl;
text-align: right;
font-family: 'Heebo', 'David Libre', Arial, sans-serif;
font-size: 28px;
background: #ffffff;
color: #1a1a2e;
padding: 60px 80px;
}
h1, h2, h3 {
text-align: right;
direction: rtl;
font-weight: 700;
}
ul, ol {
direction: rtl;
text-align: right;
padding-right: 1.5em;
padding-left: 0;
}
/* Reverse list marker position for RTL */
ul li::marker,
ol li::marker {
unicode-bidi: plaintext;
}
/* Override for LTR content blocks (English code, URLs) */
.ltr {
direction: ltr;
text-align: left;
font-family: 'Courier New', monospace;
}Reference in .marprc.yml:
theme: ./themes/rtl-hebrew.css
html: truepython-pptx exposes the paragraph.alignment property but not the rtl XML attribute. The patch inserts the XML node directly:
from pptx.oxml.ns import qn
from lxml import etree
def set_paragraph_rtl(paragraph):
"""Inject <a:rtl val="1"/> into a paragraph's pPr element."""
pPr = paragraph._p.get_or_add_pPr()
rtl_elem = pPr.find(qn('a:rtl'))
if rtl_elem is None:
rtl_elem = etree.SubElement(pPr, qn('a:rtl'))
rtl_elem.set('val', '1')Call this on every paragraph that contains Hebrew text. See references/pptx-rtl-patches.md for the full patch set including table cells and text frames.
| Font | Style | Notes |
|---|---|---|
| Heebo | Clean, modern sans-serif | Best for business/tech decks. Available on Google Fonts. |
| David Libre | Classic serif | Formal reports, legal documents. Available on Google Fonts. |
| Assistant | Rounded, approachable | Education, consumer-facing decks. Available on Google Fonts. |
| Rubik | Geometric, strong | Startup decks, bold headers. Available on Google Fonts. |
For Marp, load fonts via @import url(...) in the theme CSS. For python-pptx, fonts must be installed on the system running the script, or embedded in the PPTX by specifying the font name in text run properties.
Israeli VCs expect a specific ordering that differs from Silicon Valley conventions. The emphasis is on technical proof early, team credibility through military/academic context, and dual-market sizing.
Recommended 10-slide structure:
Use the shekel sign with no space before the number: ₪1,234,567
For thousands: Israeli convention in formal documents uses comma as the thousands separator (matching international financial standards), not period. ₪1,234,567.89 is correct. ₪1.234.567,89 is German-style and incorrect for Israeli business documents.
In mixed Hebrew/English documents, place the ₪ symbol before the number even in RTL text (the symbol itself is LTR). Use Unicode bidirectional control characters if the rendering engine displaces it: \u200e (LRM) before the currency symbol forces correct placement.
Israel's fiscal year runs January to December (same as calendar year), unlike the UK or US government fiscal years. Quarterly reports use Q1-Q4 with the following Hebrew labels:
Standard Israeli date format: DD/MM/YYYY or DD בחודש YYYY. For slide footers, מרץ 2026 is cleaner than 03/2026.
For educational content, bullet formatting differs from business:
• (U+2022) rather than - for bullet markers. They render more reliably in RTL.When a single slide needs both Hebrew and English (common in tech decks where code, API names, or English product names appear):
In Marp, wrap LTR blocks in a <div> with inline style:
# כותרת בעברית
- נקודה עברית ראשונה
- שימוש ב-<span style="direction:ltr;display:inline-block">API endpoint: /v1/users</span>
<div style="direction:ltr; text-align:left; font-family: monospace">
```python
response = client.get("/v1/users")
```
In python-pptx, set separate runs within the same paragraph, applying RTL to Hebrew runs and LTR to English runs:
from pptx.util import Pt
from pptx.oxml.ns import qn
from lxml import etree
def add_mixed_paragraph(text_frame, hebrew_text, english_term):
para = text_frame.add_paragraph()
set_paragraph_rtl(para) # RTL for the whole paragraph
# Hebrew run
run_he = para.add_run()
run_he.text = hebrew_text
run_he.font.name = 'Heebo'
# English term run (LTR within RTL paragraph)
run_en = para.add_run()
run_en.text = f' {english_term}'
run_en.font.name = 'Calibri'
# Bidi override for inline LTR in RTL paragraph
rPr = run_en._r.get_or_add_rPr()
rtl_attr = rPr.find(qn('a:rtl'))
if rtl_attr is None:
rtl_attr = etree.SubElement(rPr, qn('a:rtl'))
rtl_attr.set('val', '0')A common Israeli business pattern: Hebrew title on line one, English subtitle on line two. Both are handled correctly if you set the text frame to RTL and override alignment for the English line.
1. Hebrew punctuation displacement in PPTX exports
When exporting to PPTX from tools that do not set RTL at the XML level, periods and commas jump to the opposite end of the line. A sentence like הפתרון שלנו. renders as .הפתרון שלנו visually. The fix is <a:rtl val="1"/> on every paragraph element in the XML, not just at the text-frame level. The text-frame-level txBody attribute is insufficient; each <a:pPr> needs it.
2. Default bullet alignment is LTR
Both Marp (without custom CSS) and python-pptx (without XML patches) default all bullet lists to LTR. You will see bullets flush to the left margin with text flowing left-to-right. This is the single most common Hebrew presentation bug. It must be overridden explicitly: CSS direction: rtl; text-align: right for Marp, and the a:rtl paragraph attribute for PPTX. There is no global toggle in either tool.
3. Number formatting ambiguity
Israeli convention uses comma as the thousands separator for financial figures (matching the English-language standard). However, some Israeli government and academic documents use a period for thousands. Before generating slides with large numbers, confirm which convention the audience expects. For business and VC presentations, always use comma: ₪1,234,567. For government reports, ask explicitly.
4. Font fallback silently degrades quality
If Heebo or David Libre are not installed on the rendering machine, Marp and PPTX viewers fall back to Arial or Times New Roman. Both support Hebrew but are visually inferior and may have different line-height metrics that break slide layouts. Always verify font availability before presenting. For Marp PDF export, fonts are embedded via Chromium, so the export is safe. For PPTX shared to other machines, embed fonts: File > Options > Save > Embed fonts in the file (PowerPoint), or set the EmbedTrueTypeFonts property when saving via python-pptx (this requires python-pptx >= 0.6.21).
5. Mixed-direction tables flip column order
In RTL mode, table columns are displayed right to left. A table with columns [Date, Revenue, Growth] in a LTR Python array will render as [Growth, Revenue, Date] visually on an RTL slide. You must reverse the column order in your data structure before populating the table, so the visual left-to-right order matches what the reader expects. This is counterintuitive: in RTL, column index 0 is the rightmost column visually.
| Tool | Input | Output formats | RTL quality |
|---|---|---|---|
| Marp CLI | .md |
PDF, HTML, PPTX | Good (CSS-level) |
| python-pptx | Python script | .pptx |
Excellent (XML-level) |
| Google Slides API | API calls | Google Slides, PDF | Good (WritingDirection property) |
| LibreOffice Impress | .odp / .pptx |
PDF, PPTX | Partial (varies by version) |
For maximum compatibility with Israeli business recipients (who almost universally use Windows + PowerPoint or Google Slides), prefer python-pptx output. Marp PDF export is best for read-only sharing (email attachments, pitch email).
Text appears mirrored or reversed: The font is rendering but direction is not set. Add dir="rtl" to the HTML element (Marp HTML export) or verify <a:rtl val="1"/> is present on each <a:pPr> in the PPTX XML.
Bullet markers appear on the wrong side: CSS list-style-position: inside combined with direction: rtl fixes Marp. For PPTX, the bullet marker follows paragraph direction, so setting paragraph RTL is sufficient.
Mixed Hebrew/English line breaks poorly: Long English words in RTL paragraphs can cause unusual line breaks. Use word-break: break-word in Marp CSS, or break long English strings manually in PPTX.
Exported PDF has blank slides: Marp PDF requires Chromium. Run marp --allow-local-files presentation.md --pdf if fonts are local. Check marp --version confirms Chromium is bundled.
PPTX opens with font substitution warning: The Hebrew font named in the PPTX is not installed on the recipient's machine. Either embed fonts or instruct recipients to install Heebo from Google Fonts before opening.
Currency symbol renders on wrong side: Insert \u200e (Left-to-Right Mark) immediately before ₪ in Hebrew text to anchor it correctly in the bidi algorithm.
references/marp-rtl-guide.md in this skill folderreferences/pptx-rtl-patches.md in this skill folderCreate a 10-slide Hebrew pitch deck for a fintech startup. Include: problem, solution, market, business model, team, and key metrics.
Create a Q1 quarterly report presentation with NIS revenue figures, bar chart, and comparison to previous quarter.
Create an 8-slide Hebrew presentation on cybersecurity basics for beginners. Include key points per slide.
Trust Score
This skill can access environment variables which may contain secrets.
1 occurrences found in code
Optimize websites for Hebrew SEO and GEO (Generative Engine Optimization) on Google.co.il and AI search engines (ChatGPT, Perplexity, Gemini, Copilot, Claude). Use when user asks about Hebrew keyword research, Israeli SEO, .co.il domain optimization, Hebrew schema.org markup, AI search visibility, GEO optimization, EEAT, or asks about "kidum atarim", "milot mafteach", "SEO", "GEO", or Israeli search ranking. Includes Hebrew morphological analysis, Princeton GEO methods, platform-specific AI optimization, EEAT principles, JSON-LD structured data, and Israeli business schema (Shabbat hours, kosher certification). Do NOT use for paid advertising campaigns or social media marketing.
Plan and execute product launches targeting the Israeli tech market, including media outreach, VC demo day preparation, and community engagement. Use when user asks about launching a product in Israel, pitching Israeli media, Hebrew press releases, or asks about "hashkaa", "hasakat mutzar", "Geektime", "Calcalist", Israeli tech PR, or startup launch strategy. Covers Israeli tech media outlets, holiday timing, 8200 alumni networks, and early-adopter communities. Do NOT use for general global product launches, non-Israeli markets, or paid advertising campaigns.
Create social media content optimized for Israeli audiences across Facebook, Instagram, TikTok, and LinkedIn. Use when user asks about Israeli social media strategy, Hebrew social posts, posting schedules for Israel, Hebrew hashtags, or Israeli Facebook group marketing. Covers platform-specific best practices, Israeli cultural references, and Hebrew copywriting for social.
Want to build your own skill? Try the Skill Creator · Submit a Skill