گفتوگو در سایت شما
کد را در صفحه بگذارید — بلوک گفتوگو همانجا که ظرفش هست پدیدار میشود. بقیه چیزها داخل قاب ما زندگی میکنند: نشانهگذاری، سبکها و اسکریپتهای شما همانطور که بودند میمانند.
روی صفحهٔ خودت امتحانش کن
کد آماده
<div data-vpvd-thread data-url="https://example.org/article" data-lang="fa" data-theme="auto"> <a href="https://vpvd.io/embed/fa?url=https%3A%2F%2Fexample.org%2Farticle&theme=auto" target="_blank" rel="noopener">گفتوگو را در vpvd باز کن</a> </div> <script src="https://vpvd.io/embed.js" async referrerpolicy="no-referrer"></script>
چیزی که خوانندگان میبینند
کجا بچسبانم
- سایتهای ایستا و قالبهای خودت
- WordPress
- Tilda
- Next.js, Nuxt, React
<div data-vpvd-thread data-url="https://example.org/article" data-lang="fa" data-theme="auto"> <a href="https://vpvd.io/embed/fa?url=https%3A%2F%2Fexample.org%2Farticle&theme=auto" target="_blank" rel="noopener">گفتوگو را در vpvd باز کن</a> </div> <script src="https://vpvd.io/embed.js" async referrerpolicy="no-referrer"></script>
Next.js, Nuxt, React
// components/VpvdThread.tsx — one page's discussion. Load the script once in the layout:
// <Script src="https://vpvd.io/embed.js" strategy="afterInteractive" />
'use client';
import { useEffect, useRef } from 'react';
export default function VpvdThread() {
const box = useRef<HTMLDivElement>(null);
useEffect(() => {
const el = box.current;
const vpvd = (window as any).vpvd;
if (el && vpvd) vpvd.mount(el);
return () => { if (el && vpvd) vpvd.destroy(el); };
}, []);
return (
<div ref={box} data-vpvd-thread data-url="https://example.org/article" data-lang="fa" data-theme="auto">
<a href="https://vpvd.io/embed/fa?url=https%3A%2F%2Fexample.org%2Farticle&theme=auto" target="_blank" rel="noopener">گفتوگو را در vpvd باز کن</a>
</div>
);
} صفحههایی که بدون بارگذاری دوباره عوض میشوند
// after every client-side transition: window.vpvd.refresh();
پوسته و قلم
ویژگیها
data-url- نشانی صفحهای که دربارهاش گفتوگو میشود. گفتوگو به آن گره خورده است، پس باید برای همه خوانندگان یکسان باشد.
data-lang- زبان بلوک — یکی از زبانهای فهرست زیر. هر مقدار دیگری خطای 404 میدهد: کادر به زبانهای دیگر وجود ندارد.
en— Englishzh-Hans— 简体中文es— Españolar— العربيةru— Русскийvi— Tiếng Việttr— Türkçefa— فارسی
data-theme- تم بلوک: خودکار (مانند صفحهٔ شما)، روشن یا تیره.
data-height- ارتفاعی که تا اعلام ارتفاع کادر برای بلوک رزرو میکنیم، به پیکسل، مثلاً 200. بعد از آن بلوک با ارتفاع واقعی همتراز میشود و مقدار میان 120 و 2000 میماند. اگر پرش در صفحهتان پیداست آن را بگذارید: بهطور پیشفرض 160 پیکسل رزرو میکنیم.
وقتی دیدگاهی میرسد
شمار دیدگاهها برای یک فهرست
کاری که کد نمیکند
بررسی کنید که جا افتاده
- کادر سر جایش است: بارگذار جای پیوند پشتیبان در ظرف را با آن عوض کرده
- بارگذار کار کرده: مقدار زیر تعریف شده و نسخهاش 1 است
window.vpvd - کادر ارتفاعش را اعلام کرده: عدد دیگر همان 160 رزروشده نیست و بلوک با گفتوگو همتراز شده
// 1
document.querySelector('iframe[data-vpvd-frame]')
// 2
window.vpvd.version
// 3
document.querySelector('iframe[data-vpvd-frame]').style.height سیاست سختگیرانه در سایت شما
script-src— اسکریپت بلوک از آنجا میآیدframe-src— خود گفتوگو داخل قاب ما نشان داده میشودchild-src→frame-src— اگر سیاستتان آن را تعیین کرده باشد، کادرها از آن پیروی میکنند نه از فرمان عمومی: مقداری از منبعی دیگر بیصدا همه کادرهای صفحه، از جمله کادر ما، را میبندد. نشانی ما را اینجا هم بنویسید یا آن فرمان را بردارید.