عرض تخفيض في النص الخاص بي
-
06-07-2019 - |
سؤال
أنا أستخدم BlueCloth لإنشاء HTML من Markdown من المحتوى الذي يدخله المستخدمون في Textarea مثل هذا:
def create
@post = Post.new(params[:post]) do |post|
body = BlueCloth.new(post.body)
post.body = body.to_html
end
...
end
هذا يعمل بشكل رائع! أحصل على HTML المخزنة في قاعدة البيانات بشكل جيد ، ولكن كيف يمكنني إظهار التخفيض في Textarea عندما يقوم المستخدم بتحرير؟ حاولت:
def edit
@post = Post.find(params[:id])
@post.body = BlueCloth.new(@post.body)
@post.body.text
end
يشبه الإخراج في Textarea:
#<BlueCloth:0x10402d578>
المحلول
وثائق BlueCloth غير محددة جيدًا. لست متأكدًا من وجود طريقة سهلة لتحويل HTML => Markdown.
ومع ذلك ، لا يوجد شيء يمنعك من تخزين التخفيض في قاعدة البيانات الخاصة بك ، وتحويله إلى HTML حسب الضرورة.
إذا كنت تريد أن يكون HTML هو الافتراضي الذي تم إرجاعه بواسطة @post.body ، فيمكنك دائمًا تجاوز الملحق.
class Post < ActiveRecord::Base
...
def body
BlueCloth.new(@body).to_html
end
def markdown
@body
end
end
الآن @post.body إرجاع إصدار HTML من Markdown. بينما @post.markdown إرجاع مصدر Markdown.
لا تنتمي إلى StackOverflow