Citation Generator

Generate properly formatted citations for books, websites and journals in APA, MLA and Chicago styles instantly.

Advertisement

Source type

Citation format

Advertisement

Related tools

let source='book',format='apa'; function setSource(s,btn){source=s;document.querySelectorAll('.src-btn').forEach(b=>b.classList.remove('active'));btn.classList.add('active');['book','website','journal'].forEach(t=>document.getElementById('fields-'+t).style.display=t===s?'':'none');} function setFormat(f,btn){format=f;document.querySelectorAll('.fmt-btn').forEach(b=>b.classList.remove('active'));btn.classList.add('active');} function v(id){return(document.getElementById(id)||{}).value||'';} function generateCitation(){ let cite=''; const today=new Date().toLocaleDateString('en-US',{year:'numeric',month:'long',day:'numeric'}); if(source==='book'){ const last=v('b-last'),first=v('b-first'),title=v('b-title'),year=v('b-year'),pub=v('b-pub'),city=v('b-city'); if(!last||!title){alert('Please enter at least author last name and book title.');return;} if(format==='apa')cite=`${last}, ${first?first[0]+'.':''} (${year||'n.d.'}). ${title}. ${city?city+': ':''}${pub}.`; else if(format==='mla')cite=`${last}${first?', '+first:''}. ${title}. ${pub}${year?', '+year:''}.`; else cite=`${last}${first?', '+first:''}. ${title}. ${city?city+': ':''}${pub}${year?', '+year:''}.`; } else if(source==='website'){ const last=v('w-last'),first=v('w-first'),title=v('w-title'),site=v('w-site'),url=v('w-url'),date=v('w-date'); const dateStr=date?new Date(date).toLocaleDateString('en-US',{year:'numeric',month:'long',day:'numeric'}):today; if(!title){alert('Please enter at least a page title.');return;} if(format==='apa')cite=`${last?last+', '+(first?first[0]+'. ':''):''}(n.d.). ${title}. ${site}. Retrieved ${dateStr}, from ${url}`; else if(format==='mla')cite=`${last?last+(first?', '+first:'.')+'. ':''}${'"'+title+'"'} ${site}, ${dateStr}, ${url}.`; else cite=`${last?last+(first?', '+first:'')+'. ':''}${'"'+title+'"'} ${site}. Accessed ${dateStr}. ${url}.`; } else { const last=v('j-last'),first=v('j-first'),title=v('j-title'),journal=v('j-journal'),year=v('j-year'),vol=v('j-vol'),pages=v('j-pages'),doi=v('j-doi'); if(!last||!title){alert('Please enter at least author last name and article title.');return;} if(format==='apa')cite=`${last}, ${first?first[0]+'.':''} (${year||'n.d.'}). ${title}. ${journal}${vol?', '+vol:''}${pages?', '+pages:''}.${doi?' https://doi.org/'+doi:''}`; else if(format==='mla')cite=`${last}${first?', '+first:''}. "${title}." ${journal}${vol?' '+vol:''}${year?' ('+year+')':''}${pages?': '+pages:''}.`; else cite=`${last}${first?', '+first:''}. "${title}." ${journal}${vol?' '+vol:''}${year?' ('+year+')':''}${pages?': '+pages:''}.${doi?' https://doi.org/'+doi:''}`; } document.getElementById('cite-text').innerHTML=cite; document.getElementById('cite-result').style.display='block'; } function copyCite(){ const text=document.getElementById('cite-text').innerText; navigator.clipboard.writeText(text).then(()=>{const btn=document.getElementById('copy-btn');btn.textContent='Copied!';btn.style.background='#D1FAE5';setTimeout(()=>{btn.textContent='Copy citation';btn.style.background='';},2000);}); } document.addEventListener('DOMContentLoaded',()=>{ document.getElementById('w-date').value=new Date().toISOString().split('T')[0]; document.getElementById('related-grid').innerHTML=TOOLS.filter(t=>t.category==='writing'&&t.slug!=='citation-generator').slice(0,4).map(buildToolCard).join(''); });