نود Markdown در N8N
نود Markdown در n8n به شما کمک میکند متنهای مارکداون را به خروجیهای قابل استفاده در سناریوهای واقعی تبدیل کنید؛ مثل تبدیل Markdown به HTML برای ایمیل و وب، یا آمادهسازی متن استاندارد برای ذخیرهسازی و ارسال به سرویسهای مختلف. اگر در ورکفلوها گزارش، پیامهای قالبدار، مستندات کوتاه، خلاصههای روزانه یا متنهای چندخطی تولید میکنید، این نود یک ابزار سریع و کاربردی است.
معرفی نود در N8N
نود Markdown معمولاً برای پردازش متن با فرمت Markdown به کار میرود؛ رایجترین کاربرد آن تبدیل Markdown به HTML است تا بتوان خروجی را در کانالهایی مثل ایمیل، صفحات وب، ابزارهای مدیریت پروژه یا پیامرسانها استفاده کرد.
- کارکرد اصلی: تبدیل/پردازش متن Markdown و تولید خروجی قابل استفاده (اغلب HTML)
- دستهبندی نود: Function / Transform (نودهای پردازشی و تبدیلی)
- اهمیت در ورکفلو: استانداردسازی متن، ساخت خروجیهای خوانا، تولید پیامهای قالبدار و کاهش نیاز به قالبنویسی دستی در نودهای دیگر
موارد استفاده
1) ساخت ایمیلهای HTML از روی Markdown
تیمها معمولاً گزارشها را به صورت Markdown تولید میکنند (چون سریع و خواناست). با این نود میتوانید Markdown را به HTML تبدیل کنید و در نود Email یا Gmail ارسال کنید.
- ورودی: یک فیلد متنی شامل Markdown (مثلاً گزارش روزانه)
- خروجی: HTML آماده ارسال
2) تولید توضیحات (Description) برای تسکها در Jira/Trello/Linear
بسیاری از ابزارهای مدیریت کار Markdown یا متن قالبدار را میپذیرند. میتوانید متن را در n8n بسازید، بخشهایی را با دادههای دینامیک پر کنید، سپس تبدیل/یکدست کنید و ارسال نمایید.
3) انتشار محتوا در CMS یا وبهوکها
اگر محتوا را به Markdown تولید میکنید (مثلاً خروجی یک مدل AI یا خلاصه خبرها)، میتوانید HTML نهایی را به CMS یا Endpoint سفارشی ارسال کنید.
4) تبدیل پیامهای چندخطی به خروجی سازگار با پیامرسانها
برخی پیامرسانها HTML میخواهند یا اجازه Markdown استاندارد نمیدهند. تبدیل به HTML یا پاکسازی ساختار میتواند از بههمریختگی متن جلوگیری کند.
ترکیبهای متداول با نودهای دیگر
- Set برای ساخت فیلد markdown از دادههای ورودی (قالبسازی اولیه)
- Markdown برای تبدیل Markdown به HTML
- Email/Gmail/Outlook برای ارسال HTML
- HTTP Request برای ارسال HTML به API یا CMS
- IF برای انتخاب قالبهای مختلف Markdown بر اساس شرایط (مثلاً وضعیت خطا/موفقیت)
- Code برای ساخت Markdown پیچیدهتر یا sanitize کردن دادهها قبل از تبدیل
پارامترها و تنظیمات
نام و جزئیات دقیق فیلدها ممکن است با نسخه n8n و نوع نود (Community/Official) کمی تفاوت داشته باشد، اما تنظیمات رایج نود Markdown معمولاً حول همین موارد میچرخد.
فهرست پارامترهای رایج
- Operation (نوع داده: String)کاربرد: انتخاب نوع عملیات روی Markdown، معمولاً تبدیل Markdown به HTML.
مثال عملی: Operation = Markdown to HTML برای اینکه متن Markdown به HTML تبدیل شود.
- Markdown یا Text (نوع داده: String)کاربرد: متنی که باید پردازش شود. میتواند ثابت یا با Expression از آیتمهای ورودی خوانده شود.
مثال عملی: قرار دادن Expression مثل {{$json.reportMarkdown}} برای تبدیل گزارش تولید شده در مراحل قبل.
- Output Field (نوع داده: String)کاربرد: تعیین نام فیلدی که خروجی در آن ذخیره میشود (مثلاً html).
مثال عملی: Output Field = html تا خروجی در $json.html قرار بگیرد.
- Options (نوع داده: Object)کاربرد: تنظیمات اضافی مربوط به رندر Markdown. بسته به پیادهسازی نود ممکن است شامل مواردی مثل فعال/غیرفعال کردن HTML خام، تبدیل line break، یا پشتیبانی از ویژگیهای خاص باشد.
مثال عملی: فعال کردن تبدیل line break برای اینکه متنهای چندخطی ساده بهتر به HTML تبدیل شوند.
نکات مهم هنگام پیکربندی
- از Expression درست استفاده کنید: اگر ورودی در فیلدی مثل content است، مقدار Markdown را با {{$json.content}} بدهید.
- به سازگاری HTML مقصد توجه کنید: ایمیلها معمولاً با HTML محدودتر کار میکنند. ممکن است لازم باشد بعد از تبدیل، HTML را ساده نگه دارید یا از CSS پیچیده استفاده نکنید.
- دادههای دینامیک را sanitize کنید: اگر بخشی از Markdown از ورودی کاربر میآید، احتمال تزریق لینک/کد یا بههمریختگی قالب وجود دارد. قبل از تبدیل، دادهها را پاکسازی کنید.
- محتوای طولانی: برای گزارشهای خیلی بزرگ، بهتر است خروجی را ذخیره کنید (مثلاً در فایل یا دیتابیس) و فقط لینک/خلاصه را ارسال کنید.
ورودیها و خروجیها
ورودی (Input)
نود Markdown معمولاً از آیتمهای ورودی n8n استفاده میکند. هر آیتم یک JSON دارد و شما یک فیلد (یا Expression) را به عنوان Markdown معرفی میکنید.
نمونه ورودی JSON
فرض کنید از نود Set یا HTTP Request این خروجی را دارید:
{ "reportMarkdown": "# گزارش روزانهnn- فروش امروز: **120** سفارشn- خطاهای سیستم: 2 موردnn## جزئیاتnلینک داشبورد: https://example.com/dashboard"}
خروجی (Output)
پس از اجرای نود، معمولاً یک فیلد جدید به آیتم اضافه میشود (مثلاً html) که HTML رندرشده را نگه میدارد.
نمونه خروجی JSON
{ "reportMarkdown": "# گزارش روزانهnn- فروش امروز: **120** سفارشn- خطاهای سیستم: 2 موردnn## جزئیاتnلینک داشبورد: https://example.com/dashboard", "html": "<h1>گزارش روزانه</h1>n<ul>n<li>فروش امروز: <strong>120</strong> سفارش</li>n<li>خطاهای سیستم: 2 مورد</li>n</ul>n<h2>جزئیات</h2>n<p>لینک داشبورد: <a href="https://example.com/dashboard">https://example.com/dashboard</a></p>"}
در عمل، داخل n8n مقدار HTML به صورت رشته ذخیره میشود و هنگام ارسال به ایمیل/وبهوک به عنوان HTML استفاده میشود.
نکات پیشرفته و ترفندها
1) ساخت قالب Markdown با دادههای دینامیک
با نود Set یا Code یک قالب بسازید و مقادیر را تزریق کنید:
# وضعیت سفارش {{$json.orderId}}- مشتری: {{$json.customerName}}- مبلغ: **{{$json.total}}** تومان- وضعیت: {{$json.status}}
2) خروجی متفاوت برای موفقیت/خطا
با نود IF مسیرها را جدا کنید و برای هر مسیر یک Markdown متفاوت بسازید؛ سپس هر دو را به Markdown Node بدهید تا خروجی HTML استاندارد بگیرید.
3) آمادهسازی HTML برای ایمیل
- تیترها و لیستها را نگه دارید، اما از جدولهای پیچیده و استایلهای سنگین خودداری کنید.
- اگر مقصد Gmail/SMTP است، بهتر است HTML سادهتر باشد تا رندر بههم نریزد.
4) تولید فایل HTML
اگر میخواهید خروجی را به فایل تبدیل کنید، میتوانید HTML را به Binary تبدیل کنید (با نودهایی مثل Move/Convert به Binary یا Code) و سپس در S3/Google Drive/FTP ذخیره نمایید.
5) کنترل خط جدید و فاصلهها
برخی ورودیها از منابعی مثل Google Sheets یا فرمها میآیند و newline آنها متفاوت است. در صورت نیاز قبل از Markdown از نود Code برای نرمالسازی استفاده کنید (مثلاً تبدیل rn به n).
محدودیتها و خطاها
محدودیتها
- تفاوت رندر Markdown: همه Markdownها دقیقاً یکسان رندر نمیشوند. برخی ویژگیها مثل جدولها، footnote یا task-list ممکن است بسته به موتور رندر فعال/غیرفعال باشد.
- امنیت HTML: اگر اجازه HTML خام در Markdown فعال باشد، ممکن است ریسک تزریق محتوای ناامن ایجاد شود، مخصوصاً وقتی ورودی کاربر است.
- سازگاری مقصد: HTML تولیدی ممکن است در ایمیلها یا برخی سرویسها دقیقاً مثل مرورگر نمایش داده نشود.
خطاهای رایج و راهحلها
- خروجی خالی استعلتهای معمول: فیلد Markdown اشتباه انتخاب شده، مقدار null است، یا Expression درست نیست.
راهحل: با n8n UI مقدار $json را بررسی کنید و مطمئن شوید فیلد انتخابی واقعاً متن دارد.
- HTML بههمریخته یا ناقصعلتهای معمول: Markdown ورودی استاندارد نیست، فاصلهگذاری لیستها اشتباه است، یا line break ها درست منتقل نشدهاند.
راهحل: Markdown را سادهتر کنید، بین بخشها یک خط خالی بگذارید، و در صورت نیاز newline را نرمال کنید.
- نمایش نامطلوب در ایمیلعلتهای معمول: محدودیتهای CSS/HTML در کلاینت ایمیل.
راهحل: HTML ساده تولید کنید، از تگهای پایه استفاده کنید، و تست را در چند کلاینت انجام دهید.
ایده ها
- تولید گزارش روزانه از دادههای فروش (Sheets/DB) و ارسال به ایمیل به صورت HTML مرتب
- ساخت خلاصه هفتگی از تسکهای Jira و ارسال به Slack/Email با قالب Markdown و خروجی HTML
- تولید صفحه HTML از روی Markdown و ذخیره در Google Drive یا S3 به عنوان آرشیو گزارشها
- ساخت پیامهای استاندارد Incident برای تیم عملیات (عنوان، شدت، لینکها) و ارسال به کانالهای مختلف
- تبدیل خروجی AI (که معمولاً Markdown است) به HTML برای انتشار مستقیم در CMS یا خبرنامه
