پرش به محتوا

ابزار اشتراک‌گذاری متن - پیست بین رایگان برای قطعه کدها

به اشتراک‌گذاری متن و قطعه کدها به صورت فوری با ابزار پیست بین رایگان ما. با ویژگی‌های برجسته‌سازی نحو، انقضای سفارشی و URL‌های منحصر به فرد. بدون نیاز به ثبت‌نام!

ابزار اشتراک‌گذاری متن

0 کاراکتر
ماشین حساب بارگذاری...
📚

مستندات

ابزار اشتراک‌گذاری متن (پِیست‌بین)

ابزار اشتراک‌گذاری متن که اغلب پِیست‌بین نامیده می‌شود، صفحه‌ای وب برای درج یک بخش متن یا کد و دریافت پیوندی است که آن متن را به هر کسی که آن را باز کند نشان می‌دهد. این ابزار پِیست‌بین کاملاً در مرورگر اجرا می‌شود، به حساب کاربری نیاز ندارد و می‌تواند به‌صورت اختیاری برای متن برجسته‌سازی نحوی و برای پیوند زمان انقضا تعیین کند.

ابزار اشتراک‌گذاری متن چگونه کار می‌کند

بیشتر سرویس‌های پِیست‌بین، متن را روی یک سرور ذخیره می‌کنند و پیوند کوتاهی می‌فرستند که به یک ردیف پایگاه داده اشاره دارد. این ابزار متفاوت کار می‌کند. نه سرور دارد و نه پایگاه داده. در عوض، کل پِیست را در خود پیوند قرار می‌دهد.

وقتی کسی روی «ایجاد پیوند» کلیک می‌کند، ابزار چهار کار انجام می‌دهد:

  1. یک شیء کوچک شامل متن، زبان انتخاب‌شده و زمان انقضا می‌سازد (یا برای گزینه «هرگز»، هیچ مقداری قرار نمی‌دهد).
  2. آن شیء را به یک خط متن JSON تبدیل می‌کند.
  3. JSON را با استفاده از کدگذاری UTF-8، که وب همه‌جا از آن استفاده می‌کند، به بایت تبدیل می‌کند.
  4. آن بایت‌ها را به base64url کدگذاری می‌کند؛ طرحی که بایت‌های دلخواه را به حروف، رقم‌ها، - و _ تبدیل می‌کند تا نتیجه درون یک URL ایمن باشد.

متن کدگذاری‌شده در انتهای URL صفحه و پس از #p= قرار می‌گیرد. هر چیزی پس از # قطعه نامیده می‌شود. مرورگر هنگام بارگذاری صفحه، قطعه را هرگز به سرور ارسال نمی‌کند؛ بنابراین محتوای پِیست به هیچ جا انتقال نمی‌یابد. خواندن دوباره پیوند همین فرایند به‌صورت معکوس است: رمزگشایی متن base64url، تبدیل بایت‌ها به رشته JSON با UTF-8، و تجزیه JSON برای بازیابی متن، زبان و زمان انقضا.

چون قطعه شامل کل پِیست است، پیوند اشتراک‌گذاری روی هر دستگاه یا مرورگری کار می‌کند، نه فقط دستگاهی که آن را ایجاد کرده است. نیازی به جست‌وجوی چیزی نیست. باز کردن پیوند برای نمایش محتوا کافی است؛ همان‌طور که باز کردن یک فایل دانلودشده نیازمند پرسیدن محتوای فایل از سرور نیست.

ابزار همچنین برای سهولت، یک نسخه محلی از هر پِیست را به‌عنوان پیش‌نویس در فضای ذخیره‌سازی مرورگر نگه می‌دارد. این نسخه فقط به همان مرورگر کمک می‌کند پِیست‌های قبلی خود را دوباره پیدا کند؛ در باز کردن پیوند اشتراک‌گذاری نقشی ندارد و پاک کردن آن هیچ پیوند اشتراکی را از کار نمی‌اندازد، زیرا پیوند هرگز به آن وابسته نبوده است.

نشانه‌گذاری نحوی

نشانه‌گذاری نحوی بخش‌های کد، مانند کلمات کلیدی، رشته‌ها و توضیحات، را رنگی می‌کند تا خواندن ساختار آسان‌تر شود. این ابزار از ده گزینه پشتیبانی می‌کند:

  • متن ساده (بدون نشانه‌گذاری)
  • جاوااسکریپت
  • تایپ‌اسکریپت
  • پایتون
  • جاوا
  • HTML
  • CSS
  • JSON
  • SQL
  • Bash

زبان انتخاب‌شده درون محموله کدگذاری‌شده ذخیره می‌شود؛ بنابراین هنگام باز شدن پیوند، نشانه‌گذاری به‌طور خودکار اعمال می‌شود و بیننده نیازی به انتخاب چیزی ندارد.

فرمول انقضا

گزینه انقضا، یک مهر زمانی مطلق را تعیین می‌کند که برحسب میلی‌ثانیه از ۱ ژانویهٔ ۱۹۷۰ اندازه‌گیری می‌شود؛ این زمان یک نقطه مرجع رایج در محاسبات و موسوم به epoch یونیکس است. ابزار، مدت‌زمان ثابتی را به لحظه ایجاد پیوند اضافه می‌کند:

گزینهزمان افزوده‌شده
هرگزهیچ مهر زمانی ذخیره نمی‌شود
۱ ساعت۶۰ × ۶۰ × ۱٬۰۰۰ میلی‌ثانیه
۱ روز۲۴ × ۶۰ × ۶۰ × ۱٬۰۰۰ میلی‌ثانیه
۱ هفته۷ × ۲۴ × ۶۰ × ۶۰ × ۱٬۰۰۰ میلی‌ثانیه
۱ ماه۳۰ × ۲۴ × ۶۰ × ۶۰ × ۱٬۰۰۰ میلی‌ثانیه (۳۰ روز ثابت، نه یک ماه تقویمی)

برای مثال، اگر پیوند در زمانی ایجاد شود که ساعت ۱٬۷۰۰٬۰۰۰٬۰۰۰٬۰۰۰ میلی‌ثانیه را نشان می‌دهد و ایجادکننده «۱ هفته» را انتخاب کند، انقضای ذخیره‌شده چنین است:

۱٬۷۰۰٬۰۰۰٬۰۰۰٬۰۰۰ + (۷ × ۲۴ × ۶۰ × ۶۰ × ۱٬۰۰۰) = ۱٬۷۰۰٬۶۰۴٬۸۰۰٬۰۰۰ میلی‌ثانیه

وقتی بیننده پیوند را باز می‌کند، ابزار مهر زمانی ذخیره‌شده را با زمان فعلی مقایسه می‌کند. اگر زمان ذخیره‌شده گذشته باشد، ابزار به‌جای متن، پیام «این محتوا منقضی شده است» را نشان می‌دهد. چون مهر زمانی انقضا همراه با متن درون پیوند قرار دارد، این بررسی روی هر دستگاهی به یک شکل انجام می‌شود.

مثال عملی: پِیست چگونه به پیوند تبدیل می‌شود

فرض کنید کسی متن ساده Hello, world! را بدون انقضا به اشتراک می‌گذارد. ابزار این شیء JSON را با استفاده از نام‌های کوتاه برای فیلدها می‌سازد تا پیوند فشرده بماند:

1{"t":"Hello, world!","l":"plaintext","e":null}
2

آن JSON را به بایت‌های UTF-8 و سپس به base64url کدگذاری می‌کند و نتیجه زیر به دست می‌آید:

1eyJ0IjoiSGVsbG8sIHdvcmxkISIsImwiOiJwbGFpbnRleHQiLCJlIjpudWxsfQ
2

پیوند کامل اشتراک‌گذاری، نشانی صفحه به‌علاوه آن توکن پس از #p= است:

1https://whiz.tools/en/development/paste-bin-tool#p=eyJ0IjoiSGVsbG8sIHdvcmxkISIsImwiOiJwbGFpbnRleHQiLCJlIjpudWxsfQ
2

هر کسی که آن پیوند را باز کند، مرورگری خواهد داشت که توکن را رمزگشایی می‌کند، Hello, world! را به‌صورت متن ساده بازمی‌خواند و نمایش می‌دهد. هیچ درخواستی از سرور انجام نشده است.

چگونه متن یا کد را به اشتراک بگذاریم

  1. متن را در کادر متن تایپ یا جای‌گذاری کنید. شمارش نویسه‌ها هم‌زمان با تایپ متن به‌روزرسانی می‌شود.
  2. در صورت تمایل، زبانی را از منوی نشانه‌گذاری نحوی انتخاب کنید.
  3. در صورت تمایل، مدت اعتبار پیوند را انتخاب کنید.
  4. روی «ایجاد پیوند» کلیک کنید.
  5. با دکمه «کپی پیوند»، پیوند ایجادشده را کپی کنید و آن را به روش دلخواه بفرستید.

چگونه متن اشتراک‌گذاری‌شده را ببینیم

  1. پیوند اشتراک‌گذاری‌شده را باز کنید.
  2. متن بلافاصله نمایش داده می‌شود و اگر زبانی انتخاب شده باشد، نشانه‌گذاری نیز اعمال می‌شود.
  3. برای کپی کردن محتوا در کلیپ‌بورد، از «کپی متن» استفاده کنید.
  4. برای شروع یک پِیست تازه، از «ایجاد جدید» استفاده کنید.

پس از ایجاد پیوند، پِیست قابل ویرایش نیست. تغییر متن مستلزم ایجاد یک پِیست جدید و اشتراک‌گذاری پیوند جدید است.

کاربردهای رایج

  • توسعه‌دهندگانی که یک قطعه کد را برای بازبینی یا دریافت کمک در رفع اشکال به اشتراک می‌گذارند.
  • معلمانی که کد اولیه یا دستورالعمل‌ها را به اشتراک می‌گذارند.
  • هر کسی که بخواهد بخشی از متن، مانند یک فهرست یا مجموعه‌ای از یادداشت‌ها، را بین دو دستگاه خودش جابه‌جا کند.

برای متنی که چند نفر باید هم‌زمان بتوانند آن را ویرایش کنند، ابزار سند اشتراکی گزینه مناسب‌تری است. برای کدی که به سابقه دائمی نیاز دارد، سیستم کنترل نسخه‌ای مانند Git گزینه مناسب‌تری است.

محدودیت‌ها و حریم خصوصی

چون کل پِیست درون پیوند قرار دارد، محدودیت عملی اندازه، طول خود URL است، نه سهمیه ذخیره‌سازی. مرورگرها می‌توانند URLهای طولانی را مدیریت کنند، اما بسیاری از برنامه‌های ایمیل، برنامه‌های گفت‌وگو و سیستم‌های قدیمی، URLهای بسیار طولانی را کوتاه یا رد می‌کنند؛ بنابراین پِیست‌های بسیار بزرگ ممکن است از هر کانالی به‌خوبی عبور نکنند. پِیست‌های کوتاه و متوسط مشکلی ندارند.

قطعه هرگز به سرور ارسال نمی‌شود؛ بنابراین خود ابزار هرگز از محتوای درج‌شده باخبر نمی‌شود. هر کسی که پیوند دقیق را داشته باشد می‌تواند آن را باز کند؛ پس باید با پیوند مانند متن درون آن رفتار کرد: گذرواژه‌ها یا داده‌های حساس دیگر را به این روش به اشتراک نگذارید و اگر محتوا باید خصوصی بماند، پیوند را در جایی عمومی منتشر نکنید.

پرسش‌های متداول

متن اشتراک‌گذاری‌شده واقعاً کجا ذخیره می‌شود؟ جدا از پیوند، هیچ جا ذخیره نمی‌شود. متن، زبان انتخاب‌شده و زمان انقضا، همگی مستقیماً در قطعه پیوند، یعنی بخش پس از #، کدگذاری شده‌اند. خود پیوند تنها نسخه موجود است.

آیا پیوند روی دستگاه یا مرورگر دیگری کار می‌کند؟ بله. چون محتوا درون پیوند جابه‌جا می‌شود، هر دستگاهی که آن را باز کند می‌تواند محتوا را رمزگشایی و نمایش دهد. حساب کاربری یا مرورگر اولیه لازم نیست.

اگر داده‌های مرورگرم را پاک کنم چه اتفاقی می‌افتد؟ برای پیوندهای اشتراک‌گذاری‌شده موجود هیچ اتفاقی نمی‌افتد. آن‌ها به چیزی که در مرورگر ذخیره شده باشد وابسته نیستند و فقط به خود پیوند وابسته‌اند. پاک کردن داده‌های مرورگر فقط نسخهٔ محلی و کمکیِ پِیست‌هایی را که روی آن دستگاه ایجاد شده‌اند و مرورگر نگه می‌دارد، حذف می‌کند.

آیا پس از ایجاد پیوند می‌توانم پِیست را ویرایش کنم؟ خیر. برای هر تغییری باید پیوند جدیدی ایجاد شود، زیرا محتوا هنگام ایجاد درون پیوند تثبیت می‌شود.

وقتی یک پِیست منقضی می‌شود چه اتفاقی می‌افتد؟ باز کردن پیوند منقضی‌شده، به‌جای متن اصلی، پیامی مبنی بر منقضی شدن محتوا نشان می‌دهد. خود پیوند همچنان وجود دارد؛ فقط پس از گذشت مهر زمانی انقضای ذخیره‌شده، دیگر محتوا را نمایش نمی‌دهد.

آیا محدودیت اندازه وجود دارد؟ محدودیت ثابتی برای ذخیره‌سازی وجود ندارد، اما برخی سرویس‌گیرنده‌های ایمیل و برنامه‌های پیام‌رسان ممکن است URLهای بسیار طولانی را رد یا کوتاه کنند؛ بنابراین پِیست‌های بسیار بزرگ برای ابزار اختصاصی اشتراک‌گذاری فایل مناسب‌ترند.

منابع

  1. "UTF-8." مستندات وب MDN، موزیلا، https://developer.mozilla.org/en-US/docs/Glossary/UTF-8
  2. "Base64." مستندات وب MDN، موزیلا، https://developer.mozilla.org/en-US/docs/Glossary/Base64
  3. "URL." مستندات وب MDN، موزیلا، https://developer.mozilla.org/en-US/docs/Web/API/URL
  4. "Syntax highlighting." ویکی‌پدیا، بنیاد ویکی‌مدیا، https://en.wikipedia.org/wiki/Syntax_highlighting
  5. "Unix time." ویکی‌پدیا، بنیاد ویکی‌مدیا، https://en.wikipedia.org/wiki/Unix_time