Multi-line and long values are formatted clearly with line-by-line diffs in collapsible sections.
Configuration files, JSON policies, and user data scripts can be huge. tfplan2md automatically detects large values and moves them to a dedicated section with collapsible details, keeping the main report clean.
112-line XML policy embedded in strings with \n escape sequences—nearly impossible to spot changes.
| Attribute | Before | After |
|---|---|---|
| xml_content | (see below) | (see below) |
Large values: xml_content (112 lines, 57 changed)
<policies>
<inbound>
- <!-- Rate limiting policy -->
- <rate-limit calls="100" renewal-period="60" />
+ <!-- Rate limiting policy with increased limits -->
+ <rate-limit calls="200" renewal-period="60" />
+ <!-- IP filtering with additional networks -->
<ip-filter action="allow">
<address>10.0.0.0/24</address>
<address>172.16.0.0/16</address>
+ <address>192.168.1.0/24</address>
</ip-filter>
- <!-- CORS policy -->
+ <!-- CORS policy with additional origins -->
<cors allow-credentials="true">
<allowed-origins>
<origin>https://example.com</origin>
<origin>https://app.example.com</origin>
+ <origin>https://portal.example.com</origin>
</allowed-origins>
<allowed-methods>
<method>GET</method>
<method>POST</method>
<method>PUT</method>
<method>DELETE</method>
+ <method>PATCH</method>
</allowed-methods>
<allowed-headers>
<header>Content-Type</header>
<header>Authorization</header>
<header>X-Requested-With</header>
+ <header>X-API-Key</header>
</allowed-headers>
</cors>
<!-- Authentication, backend, headers... -->
- <set-backend-service base-url="https://backend-old.example.com" />
+ <set-backend-service base-url="https://backend-new.example.com" />
... 80+ more lines with inline character-level highlighting ...
</policies>
### 🔄 azurerm_api_management_policy.global
| Attribute | Before | After |
| ----------- | -------- | ------- |
| xml_content | *(see below)* | *(see below)* |
Large values: xml_content (112 lines, 57 changed)
##### **xml_content:**
<pre><code><policies>
<inbound>
<span style="background-color: #fff5f5; ...">- <!-- Rate limiting policy --></span>
<span style="background-color: #fff5f5; ...">- <rate-limit calls="100" renewal-period="60" /></span>
<span style="background-color: #f0fff4; ...">+ <!-- <span style="...">Rate limiting policy with increased limits</span> --></span>
<span style="background-color: #f0fff4; ...">+ <rate-limit calls="200" renewal-period="60" /></span>
...
</policies>
</code></pre>
Readable XML with character-level diff highlighting—every change is visible and reviewable.
Control the diff format for large values using the --render-target CLI option:
# Default: azuredevops (HTML with character-level highlighting)
tfplan2md plan.json
# GitHub-compatible diff format (markdown code blocks)
tfplan2md plan.json --render-target github
Note: The --large-value-format flag has been deprecated. Use --render-target azuredevops instead of inline-diff, or --render-target github instead of standard-diff.
Large value handling automatically detects and formats multi-line or long attribute values for better readability.