document.addEventListener('DOMContentLoaded', () => {
	document.querySelectorAll('pre').forEach(pre => {
		const button = document.createElement('button');
		button.className = 'code-copy-button';
		button.setAttribute('aria-label', 'コードをコピー');
		button.innerHTML = '<i class="material-icons" aria-hidden="true">content_copy</i>';
		pre.appendChild(button);
		
		const getCodeText = () => {
			const codeElem = pre.querySelector('code');
			if (codeElem) return codeElem.innerText;
			return Array.from(pre.childNodes)
				.filter(node => !(node.tagName === 'BUTTON'))
				.map(node => node.textContent).join('');
		};
		
		button.addEventListener('click', async () => {
			const code = getCodeText();
			try {
				await navigator.clipboard.writeText(code);
				button.innerHTML = '<i class="material-icons" aria-hidden="true">done</i>';
				button.classList.add('copied');
				setTimeout(() => {
					button.innerHTML = '<i class="material-icons" aria-hidden="true">content_copy</i>';
					button.classList.remove('copied');
				}, 2000);
			} catch (err) {
				console.error('コードのコピーに失敗しました。', err);
				alert('コピーに失敗しました。');
			}
		});
	});
});
