🚀 Publish Page Link Settings

API:
Clean HTML তৈরি করে Cloudflare-এ publish করবে।
Mother EditorV3.12.1

আপনার স্বপ্ন পূরণে
আমাদের ডিজিটাল
প্রোডাক্ট

একটি সেরা ডিজিটাল প্রোডাক্ট যা আপনার
জীবনকে সহজ ও সফল করে তুলবে।

🛒  SHOP NOW
MOTHERDIGITAL
PRODUCT
সহজ ব্যবহারখুব সহজে ব্যবহার করা যায়
নিরাপদ১০০% নিরাপদ ও নির্ভরযোগ্য
সাপোর্ট২৪/৭ লাইভ সেবা

কেন আমাদের প্রোডাক্ট সেরা?

●  উচ্চ মানের কনটেন্ট

●  লাইফটাইম অ্যাক্সেস

●  টাকা ফেরতের গ্যারান্টি

●  বিশেষ বোনাস সামগ্রী

MOTHERDIGITAL
PRODUCT
🌿

আমাদের গ্রাহকদের রেটিং

4.8
★★★★★
(1250+ রিভিউ)সন্তুষ্ট গ্রাহকদের
আমাদের পরিবার
👨
রাকিব হাসান
★★★★★

দারুণ একটি প্রোডাক্ট! জীবন অনেক সহজ হয়ে গেছে।

২ দিন আগে
👩
সুমাইয়া আক্তার
★★★★★

ব্যবহার করা খুব সহজ এবং কাজের অনেক ভালো মানের।

৩ দিন আগে
👨
তানভীর ইসলাম
★★★★★

সাপোর্ট খুবই অসাধারণ। সবাইকে ব্যবহার করতে বলব।

৫ দিন আগে
আজকের বিশেষ অফার!
02ঘণ্টা
12মিনিট
09সেকেন্ড

অর্ডার করুন এখনই

পেমেন্ট পদ্ধতি

🪽 bKash
◉ নগদ

সাধারণ প্রশ্ন

প্রোডাক্টটি কিভাবে পাবো? +

পেমেন্ট সম্পন্ন হলে নির্দেশনা অনুযায়ী পাবেন।

মোবাইল দিয়ে ব্যবহার করা যাবে কি? +

হ্যাঁ, মোবাইল ও ডেস্কটপ উভয়েই ব্যবহারযোগ্য।

পেমেন্ট কিভাবে করবো? +

উপরের পেমেন্ট পদ্ধতি ব্যবহার করুন।

রিফান্ড পলিসি কি? +

প্রযোজ্য নীতিমালা অনুযায়ী রিফান্ড দেওয়া হবে।

'; } let publishingNow=false; function makeUniquePublishSlug(base){ const clean=(base||'my-digital-product').trim().toLowerCase().replace(/[^a-z0-9]+/g,'-').replace(/^-+|-+$/g,'').slice(0,70)||'my-digital-product'; const stamp=new Date().toISOString().replace(/[-:TZ.]/g,'').slice(0,14); const rand=Math.random().toString(36).slice(2,7); return clean+'-'+stamp+'-'+rand; } function rememberPublishedLink(slug,live){ const key='dp-published-links';let list=[];try{list=JSON.parse(localStorage.getItem(key)||'[]');}catch(_){list=[]} list.unshift({slug,live,at:new Date().toISOString()});list=list.slice(0,30);localStorage.setItem(key,JSON.stringify(list)); } async function copyLastLiveLink(){ const slug=(localStorage.getItem('dp-last-published-slug')||'').trim(); if(!slug)return toast('এখনও কোনো Live page publish করা হয়নি'); const live=PUBLISH_API+'/p/'+encodeURIComponent(slug); try{await navigator.clipboard.writeText(live);toast('Live Link copied ✓');}catch(_){window.prompt('Live Link কপি করুন:',live);} } async function publishCurrentPage(){ const status=document.getElementById('publishStatus'), slugEl=document.getElementById('publishSlug'), go=document.querySelector('#publishPanel .publish-go'); if(publishingNow)return; const custom=validateCustomSlug(slugEl.value||''); if(!custom.ok){status.textContent=custom.message;updateSlugCheck();return;} const customSlug=custom.slug; let slug=''; publishingNow=true; if(go){go.disabled=true;go.textContent='Processing…';} status.textContent='1/3 Clean HTML তৈরি হচ্ছে…'; try{ const html=buildPublishHTML(); status.textContent=customSlug?'2/3 Custom Live Link সেট করা হচ্ছে…':'2/3 ছোট নতুন Live Link তৈরি করা হচ্ছে…'; const res=await fetch(PUBLISH_API+'/api/publish',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({customSlug,html})}); const raw=await res.text(); let data;try{data=JSON.parse(raw)}catch(_){throw new Error('Server returned invalid JSON (HTTP '+res.status+')')} if(!res.ok||!data.ok)throw new Error(data.error||('Publish failed (HTTP '+res.status+')')); slug=data.slug||slug; const live=data.url||((PUBLISH_API)+'/p/'+encodeURIComponent(slug)); localStorage.setItem('dp-last-published-slug',slug);localStorage.setItem('dp-project-slug',slug);if(customSlug)localStorage.setItem('dp-custom-live-slug',customSlug);else localStorage.removeItem('dp-custom-live-slug');rememberPublishedLink(slug,live); status.innerHTML='3/3 Published ✓ Live Link তৈরি হয়েছে।
'; toast('নতুন Live Link তৈরি হয়েছে ✓'); }catch(e){status.textContent='Publish failed: '+(e?.message||e);toast('Publish failed');} finally{publishingNow=false;if(go){go.disabled=false;go.textContent='Publish';}} } function openSharePage(){ const slug=(localStorage.getItem('dp-last-published-slug')||'').trim(); if(!slug)return toast('এখনও কোনো Live page publish করা হয়নি'); const live=PUBLISH_API+'/p/'+encodeURIComponent(slug); const meta=Object.assign(defaultV3Meta(),window.__v3Meta||{}); const title=String(meta.title||document.title||'Digital Product').trim(); const desc=String(meta.description||'Digital Product Landing Page').trim(); const image=String(meta.ogImage||'').trim(); const w=window.open('','_blank','noopener'); if(!w){return toast('Share Page খুলতে popup allow করুন');} const safeLive=escapeAttr(live), safeTitle=escapeHTML(title), safeDesc=escapeHTML(desc); const imageHtml=image ? ''+safeTitle+'' : '
🖼️
'; const shareText=title+' — '+live; w.document.write(''+safeTitle+' — Share Page
'+imageHtml+'
Mother Editor · Share Page

'+safeTitle+'

'+safeDesc+'

👁️ Open Live Page
'); w.document.close(); } function openLivePage(){ const slug=(localStorage.getItem('dp-last-published-slug')||'').trim(); if(!slug)return toast('এখনও কোনো Live page publish করা হয়নি'); const live=PUBLISH_API+'/p/'+encodeURIComponent(slug); window.open(live,'_blank','noopener'); } function downloadHTML(){try{const html=buildPublishHTML();downloadBlob(new Blob([html],{type:'text/html'}),'digital-product-landing-page.html');toast('Clean HTML exported')}catch(e){toast('HTML export failed')}} function applyTemplate(kind){ snapshot(); const h=page.querySelector('.hero h1'),lead=page.querySelector('.hero .lead'),badge=page.querySelector('.hero .badge'),pt=page.querySelector('.product h2'); if(kind==='minimal'){h.innerHTML='Simple Digital Product Sales Page';lead.textContent='কম distraction, বেশি conversion—আপনার product-এর মূল offer সামনে রাখুন.';badge.textContent='✦ Minimal Sales Page'} if(kind==='course'){h.innerHTML='আপনার Online Course Launch করুন';lead.textContent='একটি conversion-focused course sales page দিয়ে আপনার কোর্স সুন্দরভাবে উপস্থাপন করুন।';badge.textContent='✦ Online Course';pt.textContent='কোর্সে যা যা থাকছে'} if(kind==='product'){h.innerHTML='আপনার ডিজিটাল পণ্যের জন্য একটি Professional Sales Page';lead.textContent='কোডিংয়ের ঝামেলা ছাড়াই আপনার পণ্যকে সুন্দরভাবে উপস্থাপন করুন এবং কাস্টমারকে দ্রুত সিদ্ধান্ত নিতে সাহায্য করুন।';badge.textContent='✦ প্রফেশনাল Landing Page';pt.textContent='Professional Digital Product Template'} refreshDropzones();selectBlock(page.querySelector('.block'));autoSaveSoon();toast('Template applied') } const pageLang={ bn:{brand:'YOUR BRAND',badge:'✦ প্রফেশনাল Landing Page',headline:'আপনার ডিজিটাল পণ্যের জন্য একটি Professional Sales Page',lead:'কোডিংয়ের ঝামেলা ছাড়াই আপনার পণ্যকে সুন্দরভাবে উপস্থাপন করুন এবং কাস্টমারকে দ্রুত সিদ্ধান্ত নিতে সাহায্য করুন।',cta1:'এখনই কিনুন',cta2:'বিস্তারিত দেখুন',productTitle:'Professional Digital Product Template',productDesc:'নিজের নাম, ছবি, লেখা, দাম ও লিংক বসিয়ে ব্যবহার করুন। এটি একটি sales-ready layout হিসেবে তৈরি করা হয়েছে।',linksTitle:'গুরুত্বপূর্ণ লিংকসমূহ',buy:'এখনই অর্ডার করুন',download:'Download',wa:'WhatsApp Support',pay:'পেমেন্ট করুন',count:'অফার শেষ হবে',faq:'❓ সাধারণ জিজ্ঞাসা',footer:'© 2026 YOUR BRAND. All Rights Reserved.'}, en:{brand:'YOUR BRAND',badge:'✦ Professional Landing Page',headline:'A Professional Sales Page for Your Digital Product',lead:'Present your product beautifully without coding and help customers make a faster buying decision.',cta1:'Buy Now',cta2:'View Details',productTitle:'Professional Digital Product Template',productDesc:'Add your own name, image, copy, price and links. Built as a sales-ready layout for digital products.',linksTitle:'Important Links',buy:'Order Now',download:'Download',wa:'WhatsApp Support',pay:'Payment Information',count:'Offer Ends In',faq:'❓ Frequently Asked Questions',footer:'© 2026 YOUR BRAND. All Rights Reserved.'} }; function setText(sel,val){const el=page.querySelector(sel);if(el)el.innerHTML=val} function setLang(lang,silent=false){currentLang=lang==='en'?'en':'bn';const d=pageLang[currentLang]; setText('.brand-page',d.brand);setText('.badge',d.badge);setText('.hero h1',d.headline);setText('.hero .lead',d.lead);setText('[data-edit="cta1"]',d.cta1);setText('[data-edit="cta2"]',d.cta2);setText('[data-edit="productTitle"]',d.productTitle);setText('[data-edit="productDesc"]',d.productDesc);setText('.links .section-title',d.linksTitle);setText('[data-edit="buyBtn"]',d.buy);setText('[data-edit="downloadBtn"]',d.download);setText('[data-edit="waBtn"]',d.wa);setText('.payment .section-title',d.pay);setText('[data-type="countdown"] .section-title',d.count);setText('[data-type="faq"] .section-title',d.faq);const foot=page.querySelector('.footer');if(foot)foot.innerHTML=d.footer; document.querySelectorAll('.lang button').forEach(b=>b.classList.toggle('active',(currentLang==='bn'&&b.textContent.trim()==='বাংলা')||(currentLang==='en'&&b.textContent.trim()==='English'))); document.documentElement.lang=currentLang;if(!silent)autoSaveSoon(); } let end=Date.now()+((2*86400+12*3600+30*60)*1000);setInterval(()=>{let x=Math.max(0,end-Date.now());let d=Math.floor(x/86400000);x%=86400000;let h=Math.floor(x/3600000);x%=3600000;let m=Math.floor(x/60000);let ss=Math.floor(x/1000);['dd','hh','mm','ss'].forEach((id,i)=>{const el=document.getElementById(id);if(el)el.textContent=String([d,h,m,ss][i]).padStart(2,'0')})},1000); window.addEventListener('keydown',e=>{if((e.ctrlKey||e.metaKey)&&e.key.toLowerCase()==='z'){e.preventDefault();undo()}if((e.ctrlKey||e.metaKey)&&e.key.toLowerCase()==='y'){e.preventDefault();redo()}if(e.key==='Delete'&&selected&&!['INPUT','TEXTAREA'].includes(document.activeElement.tagName)&&!document.activeElement.isContentEditable)deleteSelected()}); refreshDropzones();setLang('bn',true); window.addEventListener('resize',()=>{if(window.innerWidth>900)closeMobilePanels();}); window.addEventListener('orientationchange',()=>setTimeout(()=>{if(window.innerWidth<=900)showCanvas();},120)); // On touch devices, native HTML5 drag is unreliable; mobile uses explicit ↑/↓ section controls for dependable reordering. if('ontouchstart' in window){page.querySelectorAll('.block').forEach(b=>b.setAttribute('draggable','false'));}