Select an IDML file and export its contents to CSV
📁
Script will auto-detect:
🇩🇪 DE IDML &
🇬🇧 GB IDML,
🔗 linked assets,
🖼 cover picture and
🌐 product name translations (.xlsx)
Stories to include:
🖼 Product picture detected:
🌐 Product name translations not detected
🌐 Product name translations detected:
Drop updated Excel (.xlsx) here to replace translations
⚠
Critical alignment issue detected!
Fix the alignment in CSV Data before continuing.
✓
Alignment confirmed — DE and EN-GB are now in sync.
CSV Preview
Layout Preview 100%
🚫 Forbidden Expressions
Forbidden expression
Replace with
Forbidden expression
→
✏ Character Style Mappings
Type a replacement tag (e.g. <bold>), click DELETE to strip tags and keep text, or click Keep if the style is correct and should not be flagged.
Detected style
Replace with
No unsupported character styles found. Run Detect unsupported character styles first.
🔍 Alignment Debug Report
Running…
☁ GitHub Gist Sync
Create a Secret Gist with 3 files:
sm_mappings.json, usm_mappings.json, asset_mappings.json — each containing {}.
Generate a token with the gist scope only.
Your token is stored in this browser only.
🗺 Blueprint Manifest
Not configured
✦ Detected from file:
General Information
Power Supply *
Product Specific Information
Select at least one
GPQ Answer Tags
Brand: LIDL
Source blueprint ID
Brand: Parkside
Source blueprint ID
Lab: TÜV
Tag ID
Lab: OBL
Tag ID
SQ Answer Tags — ✓ checked tag / ☐ empty tag
Accessories
Battery operated
Built-in battery
Battery Pack (LIDL)
Power: Elec battery
Power: Electrical
Power: Non-electrical
Parkside: General
Parkside: Parts
Parkside: Power tools
LIDL: General/Parts
LIDL: Power tools
LIDL: Watches
Sync mappings → Gist blueprint_mappings.json
Uses the same Gist configured in the ☁ Sync button. blueprint_mappings.json is included in every sync.
Mappings
Processing
Automated tasks
Check rows alignment Detects misalignments between DE and EN-GB columns using structural anchor pairs (WARNUNG/WARNING, section headers, etc.). Marks affected rows in the COMMENT column with ⚠ ALIGNMENT: …. Run before all other tasks.
Detect sections Scans paragraph styles and content to tag rows in the COMMENT column by section type: marks standard text sections (Entsorgung, Garantie, Service…), introduction text (Einleitung), product name, and symbols table rows. Required before "Remove standard texts" and "Adjust columns in tables".
✓ Language tags cleaned automatically on preview generation
Extract footnotes Finds all <footnote>…</footnote> tags in DE and EN-GB. Replaces each tag in the source row with a <CharacterCustom9>*</CharacterCustom9> marker, then inserts a new row directly below with the footnote text, PARAGRAPH_STYLE = Body, and SCRIPT_LABEL = FOOTNOTE_1 (FOOTNOTE_2 for a second footnote, etc.).
Remove standard texts Deletes all rows tagged STANDARD_TEXT in the COMMENT column (set by "Detect sections"). These are boilerplate sections like Disposal, Warranty, and Service that are shared across documents and not individually translated.
Convert introduction Replaces the Einleitung (introduction) section with a single Pergamon topic reference code in the DE column (<IT01805> for Lidl, <IT01739> for Parkside). Keeps the Headline-01 row, removes duplicates, and sets LOCALIZATION_MODE to PergamonTM_Multi.
Confirm tag location Sets the TAGS column on every row to the full Pergamon folder path derived from the IDML filename. Extracts the IAN code (e.g. 515722_2501 from 03_515722_2501_DE.idml) and builds: Customer→LIDL→Migrated projects (LIDL)→{IAN}.
Apply conditional style mappings 0 rulesReplaces style names in PARAGRAPH_STYLE, TABLE_PARAGRAPH_STYLE, TABLE_STYLE, and TABLE_CELL_STYLE columns according to your mapping rules. Supports exact match, ANY_STYLE wildcard, and optional conditions (e.g. only when COMMENT equals SYMBOLS_TABLE_ICON).
Apply mappings for unsupported styles 0/0 mappedReplaces styles not listed in Pergamon supported styles with mapped equivalents. Task completes only when every unsupported style has a replacement assigned.
Apply asset mappings Replaces named linked asset references with mapped equivalents. Only named assets are considered (unidentified placeholders are ignored).
Adjust columns in tables Sets TABLE_COLUMN_1_WIDTH and TABLE_COLUMN_3_WIDTH to "1/7" in the symbols table header row (SYMBOLS_TABLE_HEADLINE_OPENER), matching the required column proportions for the symbols explanation table in Pergamon. Also sets TABLE_STYLE to BasicTableWithBorders on the Table opener and Table closer rows of that table.
Merge tab-indented IS_TABLE rows into previous row Finds IS_TABLE = YES rows where DE or EN-GB begins with [[:TAB:]] — indicating a second InDesign paragraph from the same cell that was exported as a separate row. Appends the content (with [[:TAB:]] replaced by [[:FLB:]]) to the immediately preceding row's corresponding column, then removes the now-empty IS_TABLE row. Run Restart sequence afterwards.
Split indented paragraphs in table cells Finds rows where IS_TABLE = YES and DE or EN-GB contains [[:TAB:]] not at the very start of the text — indicating that two InDesign paragraphs were merged into one cell during export. Splits each such row into two: the first row keeps the text before the tab, the second row starts with [[:TAB:]] and inherits all table metadata from the original row. Run Restart sequence afterwards to renumber rows.
Conversion of headline-02 tables with symbol Detects 2-row tables (Table opener immediately followed by Table closer) where the opener row contains an asset placeholder in DE or EN-GB and the closer row has any Headline- paragraph style. Merges both rows into one non-table row: the asset placeholder is prepended to the headline text (separated by a single space), and all table metadata is cleared.
Apply "With headers" preset to header-style tables Scans all tables, skipping only the symbols explanation table (SYMBOLS_TABLE_HEADLINE_OPENER). For each remaining table, detects whether any content row already carries TableHeaderParagraph as its PARAGRAPH_STYLE: if so, applies the With headers preset (first N rows → TableHeaderParagraph, rest → Body, where N = column count); otherwise applies the Without headers preset (all content rows → Body). In both cases, opener/closer rows receive TABLE_PARAGRAPH_STYLE = InlinePicture and TABLE_STYLE = BasicTableWithBorders. The layout preview shows a green With headers or brown Without headers badge above each table.
Product name replacement Finds all rows with ProductName in PARAGRAPH_STYLE and replaces the DE and EN-GB content with the topic code <IT02046>.
Fix spacing before part markers Replaces any whitespace immediately before a product part marker — (1), [1], up to two digits — with a non-breaking space [[:NBSP:]] in the DE column. Ensures markers stay attached to the preceding word and never wrap to a new line.
Fix spacing around Inline_Small objects Replaces any regular whitespace immediately before and after an asset with object style Inline_Small with a non-breaking space [[:NBSP:]] in the DE and EN-GB columns. Keeps inline icons attached to surrounding words without wrapping.
Add approved status column Adds a STATUS column to the CSV (if not already present) and fills every data row with Approved.
Replace forbidden expressions Replaces all occurrences of expressions in the 🚫 Forbidden list with their configured replacements in DE and EN-GB columns. Reports which cells were changed.
Detect unsupported character styles Scans DE and EN-GB columns for paired character-style tags (e.g. <No Break>…</No Break>). Detected styles appear in Current Issues — click any issue to open the mapping window and choose a replacement or DELETE.
Apply character style mappings —Applies all character style replacements and deletions configured in the Character styles mapping. Tags mapped to another style are replaced; tags mapped to DELETE have their wrapper tags stripped while preserving inner text.
Detect headlines in tables Finds rows with a Headline- paragraph style inside a table (IS_TABLE = YES). Marks them with HEADLINE_IN_TABLE in the COMMENT column and lists each occurrence in Current Issues and the layout preview.
Detect assets in symbols table by descriptions 0 rulesFor each row with SYMBOLS_TABLE_DESCRIPTION in COMMENT, looks up the DE text in the Symbols table descriptions mapping and writes the matching <ASSET ID="…" objectStyle="Inline_Medium"> to the icon row above (DE and EN-GB). Rows not found in the mapping receive the default fallback asset. Skips rows where the icon row already has a resolved asset ID.
Add script labels Finds rows with SYMBOLS_TABLE_HEADLINE_OPENER in the COMMENT column and writes IN_TABLE_HEADLINE_01 into their SCRIPT_LABEL column.
Convert tables into Signal Words Automatically detects and converts IS_TABLE groups that are signal word tables. Type is determined by three rules: (1) Notice — first or second row EN-GB text contains "NOTICE" or "NOTE" (without WARNING/DANGER/CAUTION); (2) Warning — any body row (row 2 onwards) contains an asset tag; (3) Danger — no asset found in any row. First row gets the signal word style (SignalWordNotice/Warning/Danger), body rows get the corresponding Body style. IS_TABLE is set to NO, all TABLE_* columns are cleared. Asset-only rows are collected and prepended to the first body row. Already-converted groups are skipped.
Apply "Without headers" preset to tables in Technical data section Finds the section starting at any Headline row whose DE/EN-GB text matches Technische Daten / Technical data and ending at the next Headline-01. Runs after signal word conversion so signal word tables are already excluded. Applies the Without headers preset to every table in that range: all rows receive PARAGRAPH_STYLE = Body and TABLE_CELL_STYLE = TableCellBody1; opener/closer rows also receive TABLE_PARAGRAPH_STYLE = InlinePicture and TABLE_STYLE = BasicTableWithBorders.
Sync Bold tags from DE to EN-GB For Numbers rows where DE contains <Bold>…</Bold> but EN-GB does not, counts how many sentences are bolded in DE and applies <Bold> to the same number of sentences in EN-GB. Sentence boundaries are detected by punctuation (. ! ?) followed by an uppercase letter. Rows where EN-GB has fewer sentences than the DE bold count are bolded entirely and flagged in the log.
Unify embedded assets For each row where DE and EN-GB both contain <Asset Name Not Identified self="…"> tags, replaces the self ID in DE with the corresponding one from EN-GB (matched by position). All other tag attributes are preserved. This ensures both columns reference the same embedded asset graphic.
Restart sequence Renumbers the SEQUENCE column from 1 to N for every data row, ensuring a clean sequential order after rows have been added, removed, or reordered.
CSV Data — yellow = changed cells, blue = spanned columns
Layout Preview 100%
Automated tasks
Current issues:
Linked assets:
Embedded assets:
PDF Reference
📄Drop a PDF hereor click to browse
/ —
Pergamon Styles
Each line is one available style name. These lists are used as autocomplete options in Style Mappings and may be referenced by other functions.
Style Mappings
Input: exact style name (e.g. <Indent(Body Styles)>) or ANY_STYLE as wildcard for any value.
Replacement: the new style name to write.
Condition(optional): COLUMN:value — only apply when that column contains the value (e.g. COMMENT:SYMBOLS_TABLE_ICON).
Rules with a condition run before unconditional ones. Exact-match rules run before ANY_STYLE.
Find Asset
Asset database
Match found
Recently used
Results
Object Style
Size adj.%
Occurrences
Asset Board
Search assets
Results — drag to replace
Assets in document ▶
Replace asset:
🔍 Find replacement
↩ Apply to all occurrences
Occurrences
Embedded Assets Mapping
👤 Manual
Open an IDML file to begin
⚙ Script Powered
Open an IDML file to begin
Convert signal word table:
signal word with bullets
signal word with symbol
TO BE ADDED
TO BE ADDED
⚙ Table options
Presets
Cell style dropdowns are active in table above
Unsupported Style Mappings
0 / 0 mapped
Load a CSV first.
Linked Asset Mappings
0 rules
Choose asset for this symbol:
Symbols table descriptions
0 rules
Preview Style Settings
🌐 Product Name Translations
Lang
Product Name
Paste or type translations — one per line.
Format: LANG[tab or colon or space] Product Name
Example: GB 12V Cordless Garden Saw