Page tree

Versions Compared

Key

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

Status
title릴리즈 2.16.0 이상

폼 요소를 수식/화학식을 삽입하고 속성을 편집할 수 있는 폼 요소 편집기 플러그인입니다.Image Removed수식 편집기 플러그인 입니다.

Image Added


사용 모듈

사이냅에디터 수식 편집기 플러그인은 MathType이라는 상용 모듈을 사용하고 있습니다.

사용을 원하실 경우 아래 페이지를 통해 문의하시기 바랍니다.


사용방법

플러그인 파일 불러오기

Code Block
languagexml
themeEmacs
<!-- MathType라이브러리를 추가해야 사용이 가능합니다. (https://www.npmjs.com/package/@wiris/mathtype-generic#documentation) -->
<script src="mathtype-generic/wirisplugin-generic.js의 url"></script>
 
<!-- SynapEditor 객체가 존재해야 적용할 수 있기 때문에 에디터 스크립트 파일 아래에 include 해야 합니다 -->

<script src="formEditormathType.min.js의 url"></script>
<link rel="stylesheet" href="formEditor.min.css의 url">


wirisplugin-generic.js 파일 다운 방법

Code Block
languagexml
themeEmacs
<!-- MathType Generic Integration 전용 패키지를 설치하면 wirisplugin-generic.js 파일이 함께 제공됩니다. -->
npm install @wiris/mathtype-generic@7.31.0

<!-- 설치 후 파일 위치 -->
node_modules/@wiris/mathtype-generic/wirisplugin-generic.js

이 파일을 프로젝트 내 경로로 복사해서 사용하시면 됩니다.


툴바에 버튼 추가하기

수식 편집, 화학식 편집 버튼을 툴바 영역, 메뉴 영역에 추가할 수 있습니다.

...

Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
//...
'editor.toolbar': [
	// 수식/화학식
    'mathType.math', 'mathType.chem'
	//...
],
// ...

플러그인 설정하기

폼 요소 벌룬 설정

폼 요소 벌룬에 나타날 버튼의 목록을 직접 설정할 수 있습니다.

...

Image Removed

...

mathType 설정하기

window.WirisPlugin.GenericIntegration 객체 초기화시 사용할 properties를 설정합니다.


Code Block
languagejs
themeEmacs
titlesynapeditor.config.js
//...
'formEditormathType.config': { 
    'balloonproperties': { 
        // 벌룬이름 : [ 나타날 버튼
이름 배열 ]         'formEditor_text'configurationService': ['formEditor_textProperties', 'formEditor_delete'], 
        'formEditor_textarea': ['formEditor_textareaProperties', 'formEditor_delete'], 
        'formEditor_select': ['formEditor_selectProperties', 'formEditor_delete'], 
        'formEditor_radio': ['formEditor_radioProperties', 'formEditor_delete'], 
        'formEditor_checkbox': ['formEditor_checkboxProperties', 'formEditor_delete'], 
        'formEditor_button': ['formEditor_buttonProperties', 'formEditor_delete'], 
        'formEditor_hidden': ['formEditor_hiddenProperties', 'formEditor_delete'], 
        'formEditor_datalist': ['formEditor_datalistProperties', 'formEditor_delete'], 
        'formEditor_datalistInput': ['formEditor_datalistInputProperties', 'formEditor_delete'], 
        'formEditor_label': ['formEditor_labelProperties', 'formEditor_delete'], 
        'formEditor_fieldset': ['formEditor_fieldsetProperties', 'formEditor_delete'], 
        'formEditor_form': ['formEditor_formProperties', 'formEditor_delete']
    } 
},/pluginwiris_engine/app/configurationjs' 
    } 
}
// ...

...


폼 요소 이벤트 설정 기능 사용

폼 요소의 속성 다이얼로그를 이용해 이벤트를 설정할 수 있습니다.

(이벤트를 설정할 수 있는 다이얼로그: 텍스트 필드 속성, 텍스트 영역 속성, 버튼 속성, 선택 박스 속성, 라디오 버튼 속성, 체크 박스 속성, 데이터 목록 입력필드 속성)

Image Removed

기능을 사용하려면 에디터의 컨텐츠 필터 설정 중 이벤트 속성 삽입을 허용해야 합니다.

'editor.contentFilter.allowEventAttribute' 설정을 true 로 설정해 이벤트 속성 삽입을 허용할 수 있습니다. (참고: 컨텐츠 필터)

Warning
title주의!

옵션사용으로 인해 발생하는 보안문제는 책임질 수 없습니다.

...

Image Removed

...

Image Removed

ACTION

insertFormRunElement

텍스트 필드, 텍스트 영역, 선택 박스와 같은 인라인 폼 요소를 현재 캐럿 위치에 삽입합니다.

parameters

...

삽입할 인라인 폼 요소의 종류

  • text
  • number
  • email
  • password
  • hidden
  • radio
  • checkbox
  • textarea
  • select
  • button
  • submit
  • reset
  • label
  • datalist
  • datalistInput

mathType API 설정하기

Status
title릴리즈 3.1.2501 이상
 
Status
title릴리즈 2.19.2501 이상

MathType API를 사용하여 수식을 표현할 수 있습니다. API가 설정되지 않은 경우, 내부 모듈에서 변환된 이미지로 수식이 표시됩니다. MathType 서버를 통합한 경우, 해당 API를 서버에 설정해야 합니다.

자세한 내용은 아래 문서를 참고하세요:
API 서비스 설정 가이드

Code Block
languagejs
themeEmacs
title
editor.execCommand('insertFormRunElement', 'text'); // <input type="text"> 삽입
editor.execCommand('insertFormRunElement', 'number'); // <input type="number"> 삽입
editor.execCommand('insertFormRunElement', 'email'); // <input type="email"> 삽입
editor.execCommand('insertFormRunElement', 'password'); // <input type="password"> 삽입
editor.execCommand('insertFormRunElement', 'hidden'); // <input type="hidden"> 삽입
editor.execCommand('insertFormRunElement', 'radio'); // <input type="radio"> 삽입
editor.execCommand('insertFormRunElement', 'checkbox'); // <input type="checkbox"> 삽입
editor.execCommand('insertFormRunElement', 'textarea'); // <textarea> 삽입
editor.execCommand('insertFormRunElement', 'select'); // <select> 삽입
editor.execCommand('insertFormRunElement', 'button'); // <button type="button"> 삽입 
editor.execCommand('insertFormRunElement', 'submit'); // <button type="submit"> 삽입 
editor.execCommand('insertFormRunElement', 'reset'); // <button type="reset"> 삽입 
editor.execCommand('insertFormRunElement', 'label'); // <label> 삽입
editor.execCommand('insertFormRunElement', 'datalist'); // <datalist> 삽입
editor.execCommand('insertFormRunElement', 'datalistInput'); // <Input list=""> 삽입

insertFormBlockElement

폼, 필드셋과 같은 블럭 폼 요소를 현재 캐럿 위치에 삽입합니다.

...

synapeditor.config.js
//...
'mathType.config': {
    'mathMlToSvgUrl': '/render?format=svg&mml={mathML}'
}
// ...