Package Information
Available Nodes
Documentation generating…
Documentation
@bierwirth-it/n8n-nodes-linkedin-formatter
Turn Markdown into ready-to-post LinkedIn content — with proper handling of German umlauts.
The problem
LinkedIn has no text formatting. No bold, no italics, no headings, no lists, no anchor links. Every "bold" LinkedIn post you have seen uses Unicode look-alike characters — and that comes at a price:
- LinkedIn search does not index them. A bold 𝗻𝟴𝗻 is invisible to anyone searching for
n8n. - Screen readers mangle them. They spell out character names or skip them entirely.
- German umlauts do not exist in these Unicode blocks. There is no bold
ä,ö,üorß.
Every other formatter passes umlauts through unchanged, which breaks the typeface mid-word:
𝗤𝘂𝗮𝗹𝗶𝘁ä𝘁 ← what other tools produce
What this node does differently
Words containing an umlaut stay unformatted — entirely.
| Input | Output |
|---|---|
**Qualität** deutlich **steigern** |
Qualität deutlich 𝘀𝘁𝗲𝗶𝗴𝗲𝗿𝗻 |
**Wichtig!** |
𝗪𝗶𝗰𝗵𝘁𝗶𝗴! |
**Größe** |
Größe |
The typeface stays consistent and the word remains findable in LinkedIn search. Punctuation does not trigger the rule.
Beyond formatting, the node moves links out of the post body — links in the body cost roughly 60 % reach — and tells you what else is hurting your post.
Installation
In n8n, go to Settings → Community Nodes and enter:
@bierwirth-it/n8n-nodes-linkedin-formatter
Usage
The node has two parameters:
| Parameter | Purpose |
|---|---|
| Markdown | The text to convert. Type it directly, or drag in a field / use an expression such as {{ $json.markdown }}. |
| Destination Key | Where the result is written. Dot notation works, e.g. output.linkedin. |
Input
# Why **Qualität** beats quantity
Repetitive tasks cost **time**. Automate them instead — and **größer**
does not mean better.
- Ten live sessions
- Über 30 hands-on exercises
Read more: [the course](https://bierwirth-it.de/n8n-schulung/basic/)
#automation #n8n
Output
Why Qualität 𝗯𝗲𝗮𝘁𝘀 𝗾𝘂𝗮𝗻𝘁𝗶𝘁𝘆
Repetitive tasks cost 𝘁𝗶𝗺𝗲. Automate them instead — and größer does not mean better.
• Ten live sessions
• Über 30 hands-on exercises
Read more: the course
#automation #n8n
{
"text": "…",
"firstComment": "https://bierwirth-it.de/n8n-schulung/basic/",
"stats": {
"chars": 268,
"charsUtf16": 296,
"hookChars": 31,
"withinLimit": true,
"inSweetSpot": false
},
"warnings": [
"At 296 characters the post is short. Posts between 1301 and 2500 characters perform better."
]
}
Note what happened to the emphasis: Qualität and größer stayed plain because they carry umlauts, while beats, quantity and time turned bold. No broken typeface mid-word, and both German words remain findable in LinkedIn search.
firstComment holds the URLs removed from the body — post them as the first comment.
Options
Enabled by default
| Option | Effect |
|---|---|
| Bold | **text** becomes 𝗯𝗼𝗹𝗱 |
| Headings, bullet lists, numbered lists, paragraphs | Markdown structure becomes clean LinkedIn text |
| Links to comment | URLs move to a separate output field |
| Protect hashtags, protect code | excluded from Unicode conversion |
| Stats, warnings | reach diagnostics |
Elements LinkedIn cannot render are removed by default: images, HTML, tables, horizontal rules, footnote markers. Blockquotes are the exception — their text is kept, since the content still carries meaning.
Available, disabled by default
Italic, strikethrough, emoji bullets, separators and generated hashtags are fully implemented and take effect the moment you switch them on. They are off by default because they cost readability, searchability or accessibility.
Ten Unicode typefaces are selectable for bold and italic: sans-serif, monospace, script, fraktur, double-struck, small caps, circled and squared.
Reach warnings
The node inspects the finished text and reports:
- a blank line within the first 140 characters — it cuts the preview short
- more than three hashtags
- posts below 400 or above 3,000 characters
- length outside the most effective range of 1,301–2,500 characters
- phrasing that reads as engagement bait
Nothing is ever truncated — you get a warning, not a silent edit.
Character counting
Unicode look-alikes live above U+FFFF and occupy two UTF-16 units, so bold text doubles its computed length. Whether LinkedIn counts code points or UTF-16 units is not documented, so both numbers are reported and the limit check uses the less favourable one.
Limitations
Unicode formatting is not indexed by LinkedIn search and is read incorrectly, or not at all, by screen readers. Use it sparingly and never for your core message.
One Markdown detail worth knowing: unlike _, an asterisk creates emphasis inside a word as well. 3*4*5 therefore becomes 345. Escape the asterisks with \* to keep them.
Development
pnpm install
pnpm test # test suite
pnpm lint # n8n node linter
pnpm build # compile and verify the build output
pnpm build checks that the compiled output is complete and loadable. Tests run against the source, so an incomplete dist would otherwise only surface at the user.
Design rationale — including the umlaut rule and the choice of parser — is documented in docs/design.md.
Contributing
Bug reports and suggestions are welcome via issues.
Author
André Bierwirth — Bierwirth-IT, Frankfurt am Main
IT consulting, process automation and AI transformation, including n8n training in German.
License
MIT — Copyright 2026 André Bierwirth, Bierwirth-IT