Angular의 서식 있는 텍스트 편집기

Rana Hasnain Khan 2024년2월15일
Angular의 서식 있는 텍스트 편집기

Angular에서 서식 있는 텍스트 편집기를 만드는 방법과 만들 수 있는 라이브러리를 소개합니다.

Angular-Editor 라이브러리를 사용하여 Angular에서 서식 있는 텍스트 편집기 만들기

사용자가 콘텐츠를 편집할 수 있도록 하는 기능이 필요한 콘텐츠 관리 시스템 또는 웹 소프트웨어를 만들 때 일반 텍스트를 사용하거나 서식 있는 텍스트 편집기를 만드는 두 가지 옵션이 있습니다. 서식 있는 텍스트 편집기는 제공되는 많은 옵션을 사용하여 텍스트 서식을 지정하는 데 사용됩니다.

HTML 콘텐츠로 변환될 이미지, 링크, 오디오 및 비디오를 추가할 수 있습니다.

Angular에는 Angular-Editor, Angular Trix, Angular Meditor, ngQuillAngular 인라인 텍스트 편집기와 같은 풍부한 텍스트 편집기를 웹 애플리케이션에 통합하는 데 도움이 되는 많은 라이브러리가 있습니다. .

리치 텍스트 편집기를 만드는 데 사용할 라이브러리는 @kolkov/angular-editor입니다. npm 패키지 관리자를 사용하여 @kolkov/angular-editor를 설치할 수 있습니다.

# CLI
npm install @kolkov/angular-editor --save

설치 후 @angular/common/http에서 HttpClientModule을 가져오고 app.module.ts@kolkov/angular-editor에서 AngularEditorModule을 가져와야 합니다.

app.module.ts는 아래와 같이 보일 것입니다.

# angular
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { HttpClientModule} from '@angular/common/http';

import { AppComponent } from './app.component';
import { HelloComponent } from './hello.component';
import { AngularEditorModule } from '@kolkov/angular-editor';


@NgModule({
  imports:      [ BrowserModule, FormsModule, AngularEditorModule, HttpClientModule ],
  declarations: [ AppComponent, HelloComponent ],
  bootstrap:    [ AppComponent ]
})
export class AppModule { }

이제 AngularEditorConfig를 사용하여 서식 있는 텍스트 편집기를 구성할 수 있습니다. 다음 구성을 만들 수 있습니다.

구성 유형 기본 설명
editable Boolean true 편집기 활성화 또는 비활성화
spellcheck Boolean true 맞춤법 검사 활성화 또는 비활성화
translate string yes 번역 활성화 또는 비활성화
sanitize Boolean true DOM 삭제 활성화 또는 비활성화
height string auto 그것을 사용하여 편집기의 높이를 설정할 수 있습니다
minHeight string 0 그것을 사용하여 편집기의 최소 높이를 설정할 수 있습니다.
maxHeight string auto 그것을 사용하여 편집기의 최대 높이를 설정할 수 있습니다.
width string auto 그것을 사용하여 편집기의 너비를 설정할 수 있습니다.
minWidth string 0 그것을 사용하여 편집기의 최소 너비를 설정할 수 있습니다.
enableToolbar Boolean true 도구 모음 활성화 또는 비활성화
showToolbar Boolean true 도구 모음 표시 또는 숨기기
toolbarPosition string top 도구 모음의 위치를 ​​위쪽 또는 아래쪽으로 설정할 수 있습니다.
placeholder string - 편집기에 대한 자리 표시자를 설정할 수 있습니다.
defaultParagraphSeparator string - p 태그와 같은 기본 단락 구분 기호를 정의할 수 있습니다.
defaultFontName string - Arial과 같은 기본 글꼴을 설정할 수 있습니다.
defaultFontSize string - 기본 글꼴 크기를 설정할 수 있습니다.
uploadUrl string - 이미지 업로드 끝점을 설정하고 imageUrl 키로 응답을 반환할 수 있습니다. {"imageUrl" : }
upload function - 우리는 그것을 사용하여 이미지 업로드 기능을 할 수 있습니다.
uploadWithCredentials Boolean false 이미지 업로드 비밀번호를 보호할지 여부를 설정할 수 있습니다.
fonts Font[] - [{name, class}] 등과 같이 사용할 수 있는 글꼴 배열을 설정할 수 있습니다.
customClasses CustomClass[] - 편집기에서 사용할 수 있는 사용 가능한 클래스 배열을 설정할 수 있습니다.
outline Boolean true 에디터의 아웃라인에 포커스를 맞출 수 있습니다.
toolbarHiddenButtons string[][] - 숨겨질 버튼 이름이나 요소의 배열을 설정할 수 있습니다.

위의 구성을 사용하여 서식 있는 텍스트 편집기를 구성합니다.

# angular
import { Component } from '@angular/core';
import { AngularEditorConfig } from '@kolkov/angular-editor';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css'],
})
export class AppComponent {
  name = 'Angular 6';
  htmlContent = '';

  config: AngularEditorConfig = {
    editable: true,
    spellcheck: true,
    height: '10rem',
    minHeight: '5rem',
    placeholder: 'Enter text in this rich text editor....',
    defaultParagraphSeparator: 'p',
    defaultFontName: 'Arial',
    customClasses: [
      {
        name: 'Quote',
        class: 'quoteClass',
      },
      {
        name: 'Title Heading',
        class: 'titleHead',
        tag: 'h1',
      },
    ],
  };
}

angular-editor 태그를 사용하여 서식 있는 텍스트 편집기와 서식 있는 텍스트 편집기의 출력을 표시하는 템플릿을 만듭니다. app.component.ts에서 정의한 htmlContent 변수를 사용합니다.

app.component.html의 코드는 다음과 같습니다.

# angular
<h1>AngularEditor</h1>
<angular-editor [(ngModel)]="htmlContent" [config]="config"></angular-editor>
<h1>HTML Output</h1>
<div class="html">
  {{ htmlContent }}
</div>

출력:

Angular의 서식 있는 텍스트 편집기

이 쉬운 방법으로 서식 있는 텍스트 편집기를 만들 수 있습니다.

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn