[javascript] Clipboard.js를 사용하여 웹페이지에서 복사한 내용의 언어 설정하기

웹사이트에서 복사한 내용을 클립보드에 저장하고, 해당 내용의 언어를 설정하여 코드 하이라이팅을 적용하고 싶다면, Clipboard.js 라이브러리를 사용할 수 있습니다. Clipboard.js는 클립보드에 텍스트를 복사하는 기능을 제공하면서, 해당 텍스트의 언어를 설정하여 웹페이지에서 코드에 하이라이팅을 적용할 수 있도록 도와줍니다.

Clipboard.js 소개

Clipboard.js는 간단한 자바스크립트 라이브러리로, 복사 버튼을 클릭하면 클립보드에 텍스트를 복사하는 기능을 구현할 수 있습니다. 또한, 텍스트에 속한 언어 정보를 설정하여 코드 하이라이팅 라이브러리와 연동하여 웹페이지에서 코드를 보기 좋게 표시할 수 있습니다.

사용 방법

먼저, clipboard.js라는 파일을 다운로드하여 웹페이지에 포함시켜야 합니다. 그런 다음, 자바스크립트에서 Clipboard.js를 초기화하고 복사 버튼 클릭 이벤트에 대한 핸들러를 정의해야 합니다. 아래는 간단한 예제입니다.

<!DOCTYPE html>
<html>
<head>
    <title>Clipboard.js Example</title>
    <link rel="stylesheet" href="highlight.js/styles/default.css">
    <script src="highlight.js/highlight.pack.js"></script>
    <script src="clipboard.js"></script>
</head>
<body>
    <pre><code class="language-javascript" id="codeBlock">
        // 여기에 코드를 입력하세요
    </code></pre>
    <button id="copyButton">Copy to Clipboard</button>

    <script>
        document.getElementById('copyButton').addEventListener('click', function() {
            var codeText = document.getElementById('codeBlock').textContent;
            
            var clipboard = new ClipboardJS('#copyButton', {
                text: function() {
                    // 클립보드에 복사할 텍스트를 반환합니다.
                    // 해당 텍스트에 언어 정보를 추가하여 하이라이팅할 수 있도록 합니다.
                    return '```javascript\n' + codeText + '\n```';
                }
            });

            clipboard.on('success', function(e) {
                console.log(e);
                // 복사 성공 시 실행할 코드 작성
            });

            clipboard.on('error', function(e) {
                console.log(e);
                // 복사 실패 시 실행할 코드 작성
            });
        });

        // 코드 하이라이팅 적용
        hljs.highlightBlock(document.getElementById('codeBlock'));
    </script>
</body>
</html>

위의 코드에서 clipboard.js 파일은 highlight.jshighlight.js/styles/default.css가 필요합니다. highlight.js는 코드 하이라이팅 라이브러리로, 앞선 예제에서는 language-javascript 클래스를 통해 자바스크립트 코드를 하이라이팅하고 있습니다.

위의 예제에서는 텍스트를 복사할 때 \``javascript` 형식으로 표시하고 있습니다. 클립보드에 복사되는 텍스트에서 언어 정보를 인식하여 코드 하이라이팅 라이브러리에서 해당 언어에 맞게 하이라이팅을 적용할 수 있습니다.

결론

Clipboard.js를 사용하여 웹페이지에서 복사한 내용의 언어 설정을 적용하는 방법을 소개했습니다. 이를 통해 코드를 보다 가독성 좋게 표시하고, 웹페이지에서 코드 공유 기능을 간편하게 구현할 수 있습니다.