장고:썸머노트 설치
편집하기 (부분)
둘러보기로 이동
검색으로 이동
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
=부트스트랩 위에 올리기= ===시작 전에=== 미디어 설정을 해주는데... 확인이 필요하다. summernote에선 DB에 바로 저장해버리는듯. {| class="wikitable" |- |settings.py 설정 |이미지 업로드를 위해 <code>MEDIA_URL = '/media/'</code> <code>MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')</code> 추가 <br /> |} ===시작=== 썸머노트 공식페이지에 설명되어 있다. https://summernote.org/getting-started/#for-bootstrap-4 역시, 공식사이트가 가장 적절하다. 글쓰기 환경에서만 작동하면 되니, 예시코드를 해석해 create.html 등에 두면 된다. 어려운 사람은 다음을 참고하자. 다음 코드가 <head>태그 안에 들어가게 하고..<syntaxhighlight lang="html+django"> <meta charset="UTF-8"> <title>Summernote with Bootstrap 4</title> <script src="https://code.jquery.com/jquery-3.5.1.min.js" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous"> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script> <link href="https://cdn.jsdelivr.net/npm/summernote@0.8.18/dist/summernote-bs4.min.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net/npm/summernote@0.8.18/dist/summernote-bs4.min.js"></script> </syntaxhighlight>다음을 폼 안의 적절한 장소에 기입하면 썸머노트 에디터를 볼 수 있다.(input으로 두면 안되고 textarea로 두어야 되더라;;)<syntaxhighlight lang="html+django"> <textarea name="content" id="summernote"> {{ form.content.value|default_if_none:'' }}</textarea> <script> $('#summernote').summernote({ placeholder: '여기에 내용 입력하세요~', tabsize: 2, height: 100 }); </script> </syntaxhighlight>간단하게 넣을 수 있고, 반응형이다. 다만, 몇몇 tool이 안보인다.(가장 라이트한 형태로 보여진다. 기능이 없는 것은 아닌데, 툴바에 안보일 뿐.) 툴바를 어떻게 구성할지는 https://summernote.org/deep-dive/#initialization-options 에서 안내한다. 툴들을 묶는 이름은 style 등으로 제시하는데, 임의로 둘 수 있다. 영어긴 하지만 끝까지 읽어보면 기능이 정말 많다; 솔직히 좀 놀람;;; ===드롭다운 버튼 작동=== 그런데, 위처럼 작성하면 드롭다운 버튼을 한 번 누르고 난 후에 다시 눌리지가 않는 기현상이 발생한다. 썸머노트의 구조적인 문제라고 하는데<ref>https://blog.naver.com/rainbow0043/221527367467</ref>, 다음의 한 줄을 썸머노트코드 마지막 줄에 추가하자.(부트스트랩의 popper를 설치했다면 문제 없음.) <code>$('.dropdown-toggle').dropdown()</code> ===재미난 옵션=== {| class="wikitable" |+ ! ! |- |airMode: true, |편집창 안에 입력하는 게 아니라, 텍스트를 블록선택하면 텍스트를 변경할 수 있게 하는 창이 뜬다. |- |lang: 'ko-KR', |기본언어는 영어인데, 한글로 설정한다.(안되던데??) |- |fontNames: |['Arial', 'Arial Black', 'Comic Sans MS', 'Courier New','맑은 고딕','궁서','굴림체','굴림','돋음체','바탕체'], 많은 글씨체를 지원한다. 그냥 위 목록에 추가하면 자동 추가됨. |- |defaultFontName: |'돋음체', 기본 글씨체를 선택할 수 있다.(안되던데??) |- |maximumImageFileSize: |최대그림 크기. 바이트 단위이다. 크기에 맞춰 단위를 변경해 표시해준다. |} ===스크립트 예시=== 나는 다음과 같은 형식을 선호한다.<syntaxhighlight lang="html+django"> <script> $('#summernote').summernote({ placeholder: '여기에 내용 입력하세요~ 그림파일 용량은 2MB까지입니다~', tabsize: 2, height: 300, // 에디터 높이 defaultFontName: '바탕체', toolbar: [ ['style', ['style']], ['fontname', ['fontname']], ['fontsize', ['fontsize']], ['font style', ['bold', 'italic', 'underline','strikethrough', 'clear']], ['color', ['forecolor','color']], ['para', ['ul', 'ol', 'paragraph']], ['table', ['table']], ['insert', ['link', 'picture', 'video']], ['view', ['fullscreen', 'codeview', 'help']], ], defaultFontName:'바탕', fontNames: ['Arial', 'Comic Sans MS','맑은 고딕','궁서','굴림','돋음체','바탕'], fontSizes: ['8','9','10','11','12','14','16','18','20','22','24','28','30','36','50','72'], maximumImageFileSize:2097152, popover: { image: [ ['image', ['resizeFull', 'resizeHalf', 'resizeQuarter', 'resizeNone']], ['float', ['floatLeft', 'floatRight', 'floatNone']], ['remove', ['removeMedia']] ], link: [ ['link', ['linkDialogShow', 'unlink']] ], table: [ ['add', ['addRowDown', 'addRowUp', 'addColLeft', 'addColRight']], ['delete', ['deleteRow', 'deleteCol', 'deleteTable']], ], air: [ ['color', ['color']], ['font', ['bold', 'underline', 'clear']], ['para', ['ul', 'paragraph']], ['table', ['table']], ['insert', ['link', 'picture']] ] } }); $('.dropdown-toggle').dropdown() </script> </syntaxhighlight> ===알면 좋을 사실=== 이미지는 media가 아닌 DB에 저장하는듯.<references />
요약:
학교의 모든 지식. SMwiki에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
학교의 모든 지식. SMwiki:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기 메뉴
개인 도구
로그인하지 않음
토론
기여
로그인
이름공간
문서
토론
한국어
보기
읽기
편집
원본 편집
역사 보기
더 보기
검색
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보