اضافه کردن Markdown

جنگو

سلام

می خواهیم تجربه کاربری را با اضافه کردن markdown به قسمت متنی (textarea) فرم بهبود دهیم. این کار بسیار ساده و آسان خواهد بود.

ابتدا کتابخانه Python-Markdown را نصب می کنیم.

pip install markdown

حالا می خواهیم به مدل Post یک متد اضافه می کنیم.

boards/models.py (مشاهده کد کامل)

from django.db import models
from django.utils.html import mark_safe
from markdown import markdown

class Post(models.Model):
    # ...

    def get_message_as_markdown(self):
        return mark_safe(markdown(self.message, safe_mode='escape'))

فقط نکتۀ خیلی مهم این است که وقتی از تابع markdown در برنامه استفاده می شود؛ در واقع به کاربر اجازه می دهیم تا یک سری از کارکترهای خاص را به برنامه ارسال کند و بنابراین لازم است در قالب برنامه نیز به شکل امنی از آن استفاده کنیم. برای اینکار کافی است که در قالب های topic_posts.html و reply_topic.html عبارتِ

{{ post.message }}

 

را تغییر دهیم به:

{{ post.get_message_as_markdown }}

از این به بعد، کاربران می توانند از markdown در برنامۀ خود بهره ببرند.

و خروجی هم به شکل زیر شده و نوشته هایی با فرمت های مختلف و بر اساس علائم markdown خواهیم داشت.

ترجمۀ اختصاصی توسط تمدن

 

مطلب بعدی: ویرایشگر Markdown

مطلب قبلی: ویوی حساب کاربری

بدون دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

جنگو
پیکربندی گواهینامۀ https

سلام حالا می خواهیم برنامۀ خودمان را با گواهینامۀ https امن کنیم. ساده ترین کار برای انجام آن Let’s Encrypt است. قبل از Let’s Encrypt هرگز تنظیمات https به این راحتی نبوده و مهمتر اینکه اینکار کاملاً رایگان است. آن ها راه حلی به نام certbot را ارائه داده اند …

جنگو
پیکربندی سرویس ایمیل

سلام یکی از بهتر سرویس دهنده های ایمیل Mailgun با قابلیت ۱۲ هزار ایمیل رایگان در ماه است. به صورت رایگان ثبت نام کنید. برای اینکار باید آن را با سرویس دهندۀ دامین خود تنظیم کنید که در این آموزش از tamadon.org استفاده شده است. حالا اولین رکورد DNS را …

جنگو
پیکربندی NGINX

سلام کار بعدی که قرار است انجام شود؛ تنظیمان Nginx به شکلی است که پاسخگویی و سرویس دهی مربوط به فایل های استاتیک را خود انجام دهد و سایر درخواست ها را به Gunicorn بفرستد. یک فایل پیکربندی با نام boards را درون /etc/nginx/sites-available/ و با محتوای زیر اضافه می …

هرگونه استفادۀ از این آموزش به صورت رایگان و با ارجاع به تمدن جایز است.