MediumEditor는 사용자가 손쉽게 텍스트를 편집할 수 있는 오픈 소스 WYSIWYG(What You See Is What You Get) 편집기입니다. 이 편집기는 기본적인 기능 외에도 많은 기능을 제공하고 있으며, 사용자가 콘텐츠를 편집할 때 편리한 툴바를 제공합니다.
이번에는 MediumEditor의 기본 툴바에 “이미지 크기 선택” 기능을 추가하는 방법에 대해 알아보겠습니다. 사용자가 이미지를 삽입할 때 이미지의 크기를 선택할 수 있는 버튼을 툴바에 추가해보겠습니다.
단계 1: MediumEditor 설치
먼저 MediumEditor를 설치해야 합니다. npm을 사용하는 경우 다음 명령어로 패키지를 설치할 수 있습니다:
npm install medium-editor
또는 CDN을 통해 직접 스크립트를 추가할 수도 있습니다:
<script src="https://cdn.jsdelivr.net/npm/medium-editor@5.23.3/dist/js/medium-editor.min.js"></script>
단계 2: 툴바에 이미지 크기 선택 버튼 추가하기
MediumEditor의 툴바는 HTML 요소로 구현되어 있습니다. 따라서 JavaScript를 사용하여 툴바에 버튼을 추가할 수 있습니다.
var toolbarOptions = {
buttons: ['bold', 'italic', 'underline', 'anchor', 'imageSize'], // 이미지 크기 선택 버튼 추가
diffLeft: 0,
diffTop: -10,
updateOnEmptySelection: true
};
var editor = new MediumEditor('.editable', {
toolbar: toolbarOptions
});
toolbarOptions
객체에서 buttons
배열에 imageSize
버튼을 추가하면 됩니다. 이제 툴바에 “이미지 크기 선택” 버튼이 추가되었습니다.
단계 3: 이미지 크기 선택 기능 구현하기
이제 “이미지 크기 선택” 버튼을 클릭했을 때 이미지 크기를 선택할 수 있는 팝업 창을 띄우도록 기능을 구현해야 합니다.
var imageSizeButton = MediumEditor.extensions.button.extend({
name: 'imageSize',
action: function() {
var selectedImage = editor.getSelectedParentElement();
if (selectedImage && selectedImage.tagName === 'IMG') {
// 이미지 크기 선택 팝업 창 표시
showImageSizePopup(selectedImage);
}
}
});
MediumEditor.extensions.imageSize = imageSizeButton;
imageSizeButton
객체를 생성하고, action
메소드에서 선택한 이미지를 확인한 후 이미지 크기 선택 팝업 창을 열도록 코드를 작성합니다. showImageSizePopup
함수는 이미지 크기 선택 팝업 창을 표시하는 사용자 정의 함수입니다.
단계 4: 이미지 크기 선택 팝업 창 구현하기
마지막으로 이미지 크기 선택 팝업 창을 구현해야 합니다. 이 팝업 창은 HTML, CSS 및 JavaScript를 사용하여 직접 만들어야 합니다.
<div id="imageSizePopup" style="display: none;">
<label for="imageWidth">Width:</label>
<input type="number" id="imageWidth">
<label for="imageHeight">Height:</label>
<input type="number" id="imageHeight">
<button id="applyButton">Apply</button>
</div>
#imageSizePopup {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-color: #fff;
padding: 10px;
border: 1px solid #ccc;
z-index: 9999;
}
#imageSizePopup label, #imageSizePopup input {
display: block;
margin-bottom: 5px;
}
#applyButton {
margin-top: 10px;
}
function showImageSizePopup(selectedImage) {
var popup = document.getElementById('imageSizePopup');
var imageWidthInput = document.getElementById('imageWidth');
var imageHeightInput = document.getElementById('imageHeight');
var applyButton = document.getElementById('applyButton');
// 이미지 크기 정보 가져오기
var imageWidth = selectedImage.width;
var imageHeight = selectedImage.height;
// 팝업 창에 이미지 크기 설정
imageWidthInput.value = imageWidth;
imageHeightInput.value = imageHeight;
// 팝업 창 표시
popup.style.display = 'block';
// "적용" 버튼 클릭 이벤트 처리
applyButton.onclick = function() {
// 사용자가 입력한 이미지 크기로 설정
selectedImage.width = imageWidthInput.value;
selectedImage.height = imageHeightInput.value;
// 팝업 창 닫기
popup.style.display = 'none';
};
}
showImageSizePopup
함수에서는 선택한 이미지의 크기를 가져와 팝업 창에 표시하고, 사용자가 이미지 크기를 입력한 후 “적용” 버튼을 클릭하면 입력한 값을 이미지 크기로 설정하도록 구현합니다.
이제 MediumEditor에 “이미지 크기 선택” 기능이 추가되었습니다. 사용자는 이미지를 삽입할 때 이미지 크기를 선택할 수 있습니다.
참고: