Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

릴리즈 2.4.0 이상



API

SynapEditor.addPlugin(pluginName, pluginGenerator)

사이냅에디터에 플러그인을 추가합니다.

Params:

Name

Type

Description

pluginNamestring플러그인의 이름입니다.

pluginGenerator

function플러그인 객체를 생성해주는 함수입니다.

Example:

var pluginName = "pluginName";
var pluginGenerator = function (editor) {
	//플러그인 객체를 반환합니다.
	return {
		//...
	};
};
SynapEditor.addPlugin(pluginName, pluginGenerator);

플러그인 객체의 형태

속성타입설명속성 정의
buttonDefArray | Object

툴바 영역 또는 메뉴 영역에 버튼을 추가하기 위한 buttonDef입니다.

Array 형태

buttonDef: [{
	name: '버튼의 이름', //버튼이 2개 이상인 경우 반드시 있어야 합니다. UI에 추가하기 위해 각 버튼의 이름을 사용하면 됩니다.
	label: '버튼에 보여질 텍스트',
	iconSVG: '버튼의 아이콘으로 사용될 SVG 태그',
	onClickFunc: function () {
		//버튼이 클릭되었을 때 실행될 함수
	}
}, ...]

Object 형태

buttonDef: {
	name: '버튼의 이름', //버튼이 1개인 경우 없어도 됩니다. UI상 추가하기 위해 플러그인의 이름을 사용하면 됩니다.
	label: '버튼에 보여질 텍스트',
	iconSVG: '버튼의 아이콘으로 사용될 SVG 태그',
	onClickFunc: function () {
		//버튼이 클릭되었을 때 실행될 함수
	}
}
shortcutDefArray | Object

단축키를 추가하기 위한 shortcutDef입니다.

  • 단축키 생성에 사용할 수 있는 Key
    • Backspace
    • Tab
    • Enter
    • Esc
    • Space
    • PageUp
    • PageDown
    • End
    • Home
    • Left
    • Up
    • Right
    • Down
    • Insert
    • Delete
    • Cmd(맥용)
    • 0~9
    • A~Z
    • F1~F12
    • ;
    • +
    • ,
    • -
    • .
    • /
    • `
    • [
    • \
    • ]
    • '
  • 단축키 생성 방법
    • +를 이용하면 연결하면 됩니다.
    • 예)
      • 'Ctrl+A'
      • 'Cmd+Backspace'

Array 형태

shortcutDef: [{
	key: {
		windows: '윈도우에서 사용할 단축키',
		mac: '맥에서 사용할 단축키'
	},
	option: {
		action: '에디터 액션 이름', 
		params: ['에디터 액션 파라미터 1', ...],
		focusIme: true or false //단축키 동작 후 에디터 포커스 설정 여부
	}
}, ...]

Object 형태

shortcutDef: {
	key: {
		windows: '윈도우에서 사용할 단축키',
		mac: '맥에서 사용할 단축키'
	},
	option: {
		action: '에디터 액션 이름', 
		params: ['에디터 액션 파라미터 1', ...],
		focusIme: true or false //단축키 동작 후 에디터 포커스 설정 여부
	}
}

예제

'Hello World~'를 에디터에 삽입하는 플러그인

PluginGenerator 정의

./plugins/helloWorldInserter.js
var pluginName = "helloWorldInserter";
var pluginGenerator = function(editor) {
    return {
        buttonDef: {
            label: 'Hello World Inserter',
            iconSVG: `<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 16 16">
                        <g xmlns="http://www.w3.org/2000/svg"><title>Layer 1</title>
                            <text stroke="#000000" transform="matrix(0.7835232019424438,0,0,1,0.2672135476022959,0) " xml:space="preserve"
                                    text-anchor="start" font-family="Helvetica, Arial, sans-serif" font-size="13" y="12.580528" x="-1.056391" fill="#000000">HW</text>
                        </g>
                 </svg>`,
            onClickFunc: function () {
                editor.execCommand('insertText', 'Hello World~');
            }
        }
    };
};
 
SynapEditor.addPlugin(pluginName, pluginGenerator);

작성한 플러그인 로드

index.html
<!-- synapeditor plugin -->
<script type="text/javascript" src="./plugins/helloWorldInserter.js"></script>

에디터 툴바 영역에 플러그인 버튼 달기

./synapeditor.config.js
"editor.toolbar": ["bold", "italic", "underline", "strike", "helloWorldInserter"] //helloWorldInserter 플러그인을 툴바 영역에 설정합니다.

결과


  • No labels