Postable
اندازه‌ی قلم متن
تخمین مدت زمان مطالعه‌ی مطلب: دو دقیقه


ارسال سورس کد برنامه‌ها در بلاگر داستان خودش را دارد که پیشتر در مورد آن بحث شد.
اما این‌کار (تبدیل کاراکترهای غیرمجاز به نمونه‌های مجاز یا به اصطلاح escape آن‌ها) پس از یک مدت تبدیل به دردسر خواهد شد. به همین جهت برنامه‌ی کوچک زیر را برای ساده‌تر کردن این وضع تهیه کرده‌ام، که از آدرس زیر قابل دریافت است:



دریافت برنامه (برای اجرا نیاز به دات نت فریم ورک 2 دارد)

این برنامه‌ی کمکی، انجام چند کار زیر را در بلاگر برای شما ساده‌تر خواهد کرد:
الف) escape خودکار کاراکترهای غیرمجاز xml هنگام ارسال سورس کدهای خود و همچنین قرار دادن آن‌ها داخل تگ‌های div و pre مناسب.

روش برنامه نویسی آن:

public static string EscapeXml(string s)
{
var xml = s;
if (!string.IsNullOrEmpty(xml))
{
// replace literal values with entities
xml = xml.Replace("&", "&");
xml = xml.Replace("<", "&lt;");
xml = xml.Replace(">", "&gt;");
xml = xml.Replace("\"", "&quot;");
xml = xml.Replace("'", "&apos;");
}
return xml;
}
ب) حذف خطوط بین تگ‌های html . این مورد هنگام ارسال یک table استاندارد html در بلاگر لازم است. برای مثال در بلاگر ارسال کد زیر
<table>
<tr>
<td>data
</td>
</tr>
سبب ایجاد فواصل عجیبی در حین نمایش ردیف‌های جدول در سایت خواهد شد، زیرا بلاگر به ازای هر خط جدید یک br را به صورت خودکار نمایش خواهد داد. برای رفع این مشکل از دکمه remove html new lines استفاده کنید. به این صورت اطلاعات فوق به صورت خودکار به شکل زیر تبدیل می‌شوند:

<table> <tr> <td>data</td> </tr>

روش برنامه نویسی آن :

private static readonly Regex REGEX_BETWEEN_TAGS = new Regex(@">\s+<", RegexOptions.Compiled);
private static readonly Regex REGEX_LINE_BREAKS = new Regex(@"\n\s+", RegexOptions.Compiled);
public static string RemoveSpaces(string html)
{
html = REGEX_BETWEEN_TAGS.Replace(html, "> <");
return REGEX_LINE_BREAKS.Replace(html, string.Empty);

}

ج) حذف کاراکتر 0xA0 . البته این مورد ارتباطی به بلاگر پیدا نمی‌کند ولی اگر با CPP کار کرده باشید، حتما به مورد کپی سورس از اینترنت به داخل ادیتور و عدم کامپایل آن، برخورده‌اید. در سورس کدهای CPP مجاز به استفاده از کاراکتر No-Break Space نیستید (0xA0) و باید حذف شود. حال فرض کنید با بیش از 200 سطر سر و کار دارید. بنابراین نیاز به یک تمیز کننده سریع وجود خواهد داشت. (این مورد در ادیتور برنامه management studio اس کیوال سرور هم صادق است)

txtMod.Text = txtOrig.Text.Replace((char)160, ' ');
ساده است ولی انجام دستی آن مشکل خواهد بود.

  • #
    ‫۱۵ سال و ۹ ماه قبل، چهارشنبه ۷ اسفند ۱۳۸۷، ساعت ۱۱:۵۹
    استفاده از window live writer و افزونه‌های کپی-پیست کد مثل VSPaste هم گزینه خوبی است.
  • #
    ‫۱۳ سال و ۷ ماه قبل، جمعه ۱۲ فروردین ۱۳۹۰، ساعت ۱۹:۱۴
    سلام. می خواستم همینجوری سرکی تو کار شما بزنم و بفهمم که چطور می شه توی یه پست بلاگر کدهای جاوا و یا اجتمل رو به بقیه نشون داد. از توی سایت زیر یه آموزش پیدا کردم و اون رو عملی کردم اما مشکل اینجاست که هر کدی رو که می ذارم دو بار پشت سر هم نشونش می ده،مشکل کجاست؟

    http://www.techknowl.com/show-html-and-java-script-inside.html
    لطفا اگه خواستید پاسخ سوالم رو بدید، اون رو به ایمیلم بفرستید
  • #
    ‫۱۳ سال و ۷ ماه قبل، جمعه ۱۲ فروردین ۱۳۹۰، ساعت ۲۱:۱۸
    سلام،
    من از همین برنامه‌ای که اینجا معرفی کردم هنوز هم دارم استفاده می‌کنم
    به همراه این نکته
    https://www.dntips.ir/2008/10/syntax-highlighting.html
  • #
    ‫۱۳ سال و ۷ ماه قبل، یکشنبه ۱۴ فروردین ۱۳۹۰، ساعت ۱۸:۲۶
    نه با مطالب دیگری هم که ارسال کردید به همین صورت است برای مثال
    http://yourite/2011/03/blog-post_12.html
  • #
    ‫۱۳ سال و ۷ ماه قبل، یکشنبه ۱۴ فروردین ۱۳۹۰، ساعت ۱۸:۳۲
    انگار فهمیدم از کجاست.
    من چند وقت پیش قسمتی به عنوان به اشتراک بگذارید(همون دکمه ها ی بوکمارک) به قالب اضافه کردم و البته همون کد رو هم تغییراتی دادم.حالا که حذفش می کنم می بینم همه چی درست شده.