Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Status
title릴리즈 2.2.0 이상

Table of Contents
stylenone

1. Synap Editor 초기화

사이냅 에디터의 초기화는 아래와 같이 새 객체를 생성하는 구문으로 간단히 이루어집니다.

Code Block
languagejs
themeEmacs
new SynapEditor('synapEditor');

추가적인 환경설정은 SynapEditor 객체 생성시에 인자로 명시하거나, 별도의 설정 파일을 통해서도 가능합니다.

1.1 객체 생성을 통한 환경설정

Code Block
languagejs
themeEmacs
window.editor = new SynapEditor('synapEditor', {
	'editor.license': '/resource/license.json',
	'editor.toolbar': ['new','open','|', 'paragraphStyleWithText', '|', 'fontFamilyWithText', '|','fontSizeWithText', '|','bold', 'italic', 'underline', 'strike', '|','fontColor', 'fontBackgroundColor'],
	'editor.size.width': '100%',
	'editor.size.height': '100%',
	'editor.lang.default': 'en',
	'editor.menu.show': false
});

1.2 독립적인 config file을 이용한 환경설정

설정 객체 사용방법: 스크립트 추가, 에디터 초기화 config를 설정합니다.

Code Block
languagejs
themeEmacs
<!DOCTYPE html>
<html lang="ko">
    <script src='synapeditor.config.js'></script>
    <script>
        function initEditor() {
            new SynapEditor('synapEditor', synapEditorConfig);
        }
    </script>
    <body onload="initEditor();">
        <div id="synapEditor"></div>
    </body>
</html>

사이냅 에디터 기본 설정 객체 입니다.

key, value 형태로 설정하며, 사용하지 않는 설정 제거시 기본설정으로 동작합니다.

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
var synapEditorConfig = {
	'editor.license': '/resource/license.json',
	'editor.size.width': '100%',
	'editor.size.height': '100%',
	'editor.lang.default': 'en',
	'editor.menu.show': false,
	'editor.toolbar': ['new','open','|', 'paragraphStyleWithText', '|', 'fontFamilyWithText', '|','fontSizeWithText', '|','bold', 'italic', 'underline', 'strike', '|','fontColor', 'fontBackgroundColor']
}

1.3 라이센스 설정

라이센스 파일의 경로 또는 라이센스 객체를 설정합니다.

'editor.license' 설정은 필수 설정이며, 미 설정시 에디터가 동작하지 않습니다.

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
    'editor.license': '/resource/license.json'
}
Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
    'editor.license': {
        'company': 'SynapSoft',
        'key': [
            'licenseKey'
        ]
    }
}

1.4 초기화 예시

위와 같은 파라메터들을 설정한 경우 사이냅에디터는 아래와 보입니다.

Image Removed

2. 툴바 설정

'editor.toolbar'키를 이용해서 아래와 같이 설정합니다.

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
	'editor.toolbar': ['new','open','|', 'paragraphStyleWithText', '|', 'fontFamilyWithText', '|','fontSizeWithText', '|','bold', 'italic', 'underline', 'strike', '|','fontColor', 'fontBackgroundColor']
}

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

paragraphStyle

...

Image Removed

...

paragraphStyleWithText

...

Image Removed

...

fontFamily

...

Image Removed

...

fontFamilyWithText

...

Image Removed

...

fontSize

...

Image Removed

...

fontSizeWithText

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

align

...

Image Removed > Image Removed Image Removed Image Removed Image Removed

...

문단정렬 (드롭다운: left, center, right, justify)

...

alignLeft

alignCenter

alignRight

alignJustify

...

Image Removed

Image Removed

Image Removed

Image Removed

...

왼쪽정렬

중앙정렬

오른쪽정렬

양쪽정렬

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

3. 글꼴 목록

'editor.fontFamily'로 편집시 사용할 폰트 목록을 설정합니다. 

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
	'editor.fontFamily': {
    	'ko': [
            '돋움', '굴림', '바탕', '궁서', '맑은고딕',
            'Arial', 'Comic Sans MS', 'Courier New', 'Georgia',
            'Lucida Sans Unicode', 'Tahoma', 'Times New Roman', 'Trebuchet MS', 'Verdana'
        ],
        'en': [
            'Arial', 'Comic Sans MS', 'Courier New', 'Georgia',
            'Lucida Sans Unicode', 'Tahoma', 'Times New Roman', 'Trebuchet MS', 'Verdana'
        ]
    }
}

...

Image RemovedImage RemovedImage Removed

...

Image RemovedImage Removed

...

'editor.menu.show'키로 메뉴 사용여부를 결정한다.

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
	'editor.menu.show': true
}

'editor.menu.list'를 이용해서 1 depth 메뉴를 구성한다.

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
	'editor.menu.list': [
    	'file',
	    'edit',
	    'view',
	    'insert',
	    'format',
	    'table',
	    'tools'
	  ]
}

 'editor.menu.definition'를 이용해서 서브메뉴를 구성한다.

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
	'editor.menu.definition': {
    	'file': [
	      'new',
	      'open',
	      '-',
	      'template',
	      'autoSave',
	      'print',
	      'pageBreak'
	    ],
	    'edit': [
	      'undo',
	      'redo',
	      '-',
	      'copy',
	      '-',
	      'find'
	    ],
	    'view': [
	      'fullScreen',
	      '-',
	      'source',
	      'preview'
	    ],
	    'insert': [
	      'link',
	      'image',
	      'background',
	      '-',
	      'video',
	      'file',
	      'horizontalLine',
	      '-',
	      'specialCharacter',
	      'emoji'
	    ],
	    'format': [
	      'bold',
	      'italic',
	      'underline',
	      'strike',
	      '-',
	      'superScript',
	      'subScript',
	      '-',
	      {
	        'groupName': 'list',
	        'subMenuItems': [
	          'bulletList',
	          'numberedList',
	          'multiLevelList'
	        ]
	      },
	      'increaseIndent',
	      'decreaseIndent',
	      '-',
	      {
	        'groupName': 'align',
	        'subMenuItems': [
	          'alignLeft',
	          'alignCenter',
	          'alignRight',
	          'alignJustify'
	        ]
	      },
	      {
	        'groupName': 'format',
	        'subMenuItems': [
	          'copyRunStyle',
	          'pasteRunStyle',
	          'removeRunStyle'
	        ]
	      },
	      'paragraphProperties'
	    ],
	    'table': [
	      'table',
	      'deleteTable',
	      'tableProperties',
	      '-',
	      {
	        'groupName': 'row',
	        'subMenuItems': [
	          'insertRowBefore',
	          'insertRowAfter',
	          'deleteRow'
	        ]
	      },
	      {
	        'groupName': 'column',
	        'subMenuItems': [
	          'insertColBefore',
	          'insertColAfter',
	          'deleteCol'
	        ]
	      },
	      {
	        'groupName': 'cell',
	        'subMenuItems': [
	          'mergeCell',
	          'splitCell',
	          'cellProperties'
	        ]
	      }
	    ],
	    'tools': [
	      {
			'groupName': 'conversion',
			'subMenuItems': ['upperCase', 'lowerCase', 'titleCase', 'toggleCase']
          }
	    ]
	  }
}

...

'file': [
    'new',
    'open',
    '-',
    'template',
    'autoSave',
    'print',
    'pageBreak'
]

...

Image Removed

...

'edit': [
    'undo',
    'redo',
    '-',
    'copy',
    '-',
    'find'
]
 

...

'view': [
    'fullScreen',
    '-',
    'source',
    'preview'
]

...

Image Removed

...

'insert': [
    'link',
    'image',
    'background',
    '-',
    'video',
    'file',
    'horizontalLine',
    '-',
    'specialCharacter',
    'emoji'
]

...

Image Removed

...

'format': [
    'bold',
    'italic',
    'underline',
    'strike',
    '-',
    'superScript',
    'subScript',
    '-',
    {
        'groupName': 'list',
        'subMenuItems': [
            'bulletList',
            'numberedList',
            'multiLevelList'
        ]
    },
    'increaseIndent',
    'decreaseIndent',
    '-',
    {
        'groupName': 'align',
        'subMenuItems': [
            'alignLeft',
            'alignCenter',
            'alignRight',
            'alignJustify'
        ]
    },
    {
        'groupName': 'style',
        'subMenuItems': [
            'copyRunStyle',
            'pasteRunStyle',
            'removeRunStyle'
        ]
    },
    'paragraphProperties'
]

...

Image Removed 

...

'table': [
    'table',
    'deleteTable',
    'tableProperties',
    '-',
    {
        'groupName': 'row',
        'subMenuItems': [
            'insertRowBefore',
            'insertRowAfter',
            'deleteRow'
        ]
    },
    {
        'groupName': 'column',
        'subMenuItems': [
            'insertColBefore',
	          'insertColAfter',
	          'deleteCol'
        ]
    },
    {
        'groupName': 'cell',
        'subMenuItems': [
            'mergeCell',
            'splitCell',
            'cellProperties'
        ]
    }
]

...

Image Removed

...

'tools': [{
    'groupName': 'conversion',
    'subMenuItems': ['upperCase', 'lowerCase', 'titleCase', 'toggleCase']
}]

...

5. 언어 설정

'editor.lang.default' 키를 이용해서 기본언어를 설정합니다. 기본언어는 사용자환경에 맞는 언어가 없을 경우 표시되는 언어를 말합니다.

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
	'editor.lang.default': 'en'
}

사용자 환경에 관계없이 특정 언어를 서비스를 하려면 'editor.lang' 키를 이용합니다.

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
	'editor.lang' : 'en'
}

6. UI 설정

6.1 버튼 크기 설정

Status
title릴리즈 2.3.0 이상

'editor.ui.button.size'  설정으로 버튼의 크기를 조절할 수 있습니다. (기본값 = 35, 최소값 = 22, 단위 px)

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
	'editor.ui.button.size': 35
}

...

Image Removed

...

Image Removed

...

Image Removed

6.2 높이 조절

'editor.resizable' 설정으로 에디터의 높이 조절가능 여부를 설정합니다.  (기본값 = false)

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
	'editor.resizable': false
}

...

Image Removed

...

Image Removed

6.3 가로 스크롤

'editor.horizontalScroll' 설정을 true로 설정하면 에디터에서 가로스크롤을 사용합니다. (기본값 = true)

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
	'editor.horizontalScroll': true
}

...

Image Removed

...

Image Removed

6.4 레이어 가이드

'editor.guide.div' 설정을 true로 설정하면 에디터에서 레이어 가이드를 표시합니다. (기본값 = false)

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
	'editor.guide.div': false
}

6.5 툴바영역 고정

'editor.mode.sticky' 설정으로 에디터에서 헤더 영역을 외부 스크롤에 고정할지 여부를 설정합니다.  (기본값 = false)

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
	'editor.mode.sticky': false
}

6.6 표 핸들 사용

Status
title릴리즈 2.3.0 이상

'editor.table.handle' 설정으로 표 핸들을 사용할지 여부를 설정합니다. (기본값 = true)

false로 설정시 행, 열 선택 및 삽입 핸들이 사라지며, 풍선팝업에 행, 열 삽입버튼이 추가됩니다.

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
	'editor.table.handle': true,
}

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

7. 고급 설정

7.1 포커스 지정

'editor.initFocus' 설정으로 에디터 첫 로딩후 안쪽으로 포커스 지정 여부를 설정합니다. (기본값 = true)

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
	'editor.initFocus': true
}

7.2 템플릿

브라우저에서 접근가능한 특정 위치에 template 파일을 등록하고 아래와 같이 설정하면 template기능을 사용 할 수 있습니다.

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
	'editor.template': [
	{
		'category': 'template_category1',
		'label': 'Report',
		'items': [
		{
			'name': 'Research Report',
			'path': '/resource/template/template1.html'
		},
		{
			'name': 'Sales Report',
			'path': '/resource/template/template2.html'
		}]
	}]

}

7.3 사용자 정의 스타일 (Custom style)

사용자정의 문단스타일을 사용하려면 아래와 같이 환경설정을 해야 합니다.

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
	'editor.customStyle.paragraph': [
    {
      'name': 'Gray',
      'style': {
        'color': {
          'r': 170,
          'g': 170,
          'b': 170
        }
      }
    }
  ],
}
  • 사용자정의 문단스타일 적용결과
    Image Removed

사용자 정의 런스타일은 아래와 같이 설정합니다.

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
	'editor.customStyle.textRun': [
    {
      'name': 'BigRed',
      'style': {
        'fontSize': 32,
        'color': {
          'r': 255,
          'g': 0,
          'b': 0
        }
      }
    },
    {
      'name': 'SmallBlue',
      'style': {
        'fontSize': 16,
        'color': {
          'r': 0,
          'g': 0,
          'b': 255
        }
      }
    }
  ]
}
  • 사용자 정의 런스타일 설정 결과
    Image Removed

7.4 기본 스타일 지정 (Default Style)

  • 기본 스타일을 지정하여 inline-style로 랜더링 됩니다.

'editor.defaultStyle': 지정하고싶은 모델 Element Type에 기본 속성을 지정할 수 있습니다.

  • cssText String 형태로 지정하고싶은 Style을 설정
  • 현재 나열된 Element들의 속성만 지정 가능
Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
'editor.defaultStyle': {
    'Body': 'font-family: Arial, Helvetica, sans-serif; font-size: 11pt; line-height: 1.2;',
    'Paragraph': '',
    'TextRun': '',
    'Div': '',
    'Image': '',
    'Video': '',
    'List': '',
    'ListItem': '',
    'Quote': '',
    'Table': '',
    'TableRow': '',
    'TableCell': '',
    'HorizontalLine': '',
    'Iframe': ''
},

...

7.5 자동 저장

자동저장 사용여부 및 저장주기는 아래와 같이 설정가능합니다.

단위: ms (기본값 = 60000)

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
	'editor.autoSave': true,
	'editor.autoSave.period': 60000,
}

7.6 ContentFilter

'editor.contentFilter.allowIFrame' 설정을 false로 설정하면 사용자 iframe tag 삽입을 제한하여 자동 태그 제거합니다.

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
	'editor.contentFilter.allowIFrame': false
}

'editor.contentFilter.allowIScript' 설정을 false로 설정하면 사용자 script tag 삽입을 제한하여 자동 태그 제거합니다.

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
	'editor.contentFilter.allowScript': false
}

7.7 Unload 메세지

'editor.unloadMessage' 설정을 true로 설정하면 웹페이지가 unload 되었을 때 '페이지를 나가시겠습니까' 확인메세지가 보여집니다. (기본값 = false)

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
	'editor.unloadMessage': false
}

7.8 Import API 및 Upload API 설정

'editor.import.api', 'editor.upload.image.api', 'editor.upload.video.api', 'editor.upload.file.api' 키를 사용하여 업로드 및 임포트 API를 설정합니다.

이 때 서버쪽 API (URL)는 Back-end 구현에 따라 변경해야 합니다. 자세한 사항은 서버연동 매뉴얼을 참고합니다.

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{  
	'editor.import.maxSize': 10485760,
	'editor.import.api': '/importDoc',
	'editor.import.param': {},
	'editor.upload.maxSize': 3145728,
	'editor.upload.image.api': '/uploadImage',
	'editor.upload.image.param': {},
	'editor.upload.video.api': '/uploadVideo',
	'editor.upload.video.param': {},
	'editor.upload.file.api': '/uploadFile',
	'editor.upload.file.param': {},
}

7.9 임포트시 항상 새로넣기 설정

Status
title릴리즈 2.4.1 이상

'editor.import.alwaysOverwriting' 옵션을 설정하여 이어넣기/새로넣기 확인 메세지 없이 항상 새로넣도록 설정합니다. (기본값 = false)

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
	'editor.import.alwaysOverwriting': false
}

...

Image Removed

...

Image Removed

7.10 업로드시 formData File Field Name 설정  

...

'editor.import.fileFiledName', 'editor.upload.image.fileFiledName', 'editor.upload.video.fileFiledName', 'editor.upload.file.fileFiledName' 키를 사용하여 업로드 및 임포트시 formData에 fieldName을 설정 합니다.

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{ 
    'editor.import.fileFieldName': 'file',
    'editor.upload.image.fileFieldName': 'file',
    'editor.upload.video.fileFieldName': 'file',
    'editor.upload.file.fileFieldName': 'file'
}

7.11 업로드 가능 확장자 설정

'editor.upload.image.extensions', 'editor.upload.video.extensions', 'editor.upload.file.extensions' 키를 사용해 업로드 가능 확장자를 설정할 수 있습니다.

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
	'editor.upload.image.extensions': ['jpg', 'gif', 'png', 'jpeg'],
	'editor.upload.video.extensions': ['mp4', 'ogg', 'webm'],
	'editor.upload.file.extensions': ['bmp', 'css', 'csv', 'diff', 'doc', 
									'docx', 'eof', 'gif', 'jpeg', 'jpg', 
									'json', 'mp3', 'mp4', 'm4a', 'odp', 
									'ods', 'odt', 'ogg', 'otf', 'patch', 
									'pdf', 'png', 'ppt', 'pptx', 'rtf', 
									'svg', 'swf', 'textile', 'tif', 'tiff',
									'ttf', 'txt', 'wav', 'webm', 'woff',
									'xls', 'xlsx', 'xml', 'md', 'vtt', 
									'hwp', 'hml', 'html']
}

7.12 base64 이미지 사용

'editor.upload.image.base64' 설정으로 이미지 업로드 시 base64를 사용할 것인지를 설정합니다. (기본값 = false)

true로 설정이 이미지 업로드 후 base64로 이미지가 표현됩니다.

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
{
	'editor.upload.image.base64': false,
}

7.13 자동 링크 설정

  • 링크 타입에 해당하는 텍스트 입력 후 SPACE, ENTER시 자동으로 링크가 삽입되는 기능의 사용여부를 옵션으로 설정 할 수 있습니다.
  • 'editor.autoLink' 값을 false로 설정하여 자동으로 링크가 삽입 되지 않도록 설정이 가능합니다. (기본값 true)
    • ex) WEB: http://, https://, www. + TEXT + 최상위 도메인( .com, .co.kr ... )

...

Advanced Children Display
expandHeadersExpand all