Éditeur de texte enrichi en Angular

Rana Hasnain Khan 23 mai 2022
Éditeur de texte enrichi en Angular

Nous présenterons comment créer un éditeur de texte enrichi dans Angular et quelles bibliothèques nous pouvons en créer une.

Utilisez la bibliothèque Angular-Editor pour créer un éditeur de texte enrichi dans Angular

Lors de la création d’un système de gestion de contenu ou de tout logiciel Web nécessitant la fonctionnalité permettant aux utilisateurs de modifier le contenu, nous avons deux options : utiliser du texte brut ou créer un éditeur de texte enrichi. Un éditeur de texte enrichi est utilisé pour formater le texte à l’aide des nombreuses options dont il dispose.

Nous pouvons ajouter des images, des liens, de l’audio et des vidéos qui seront convertis en contenu HTML.

Il existe de nombreuses bibliothèques dans Angular qui peuvent nous aider à intégrer un éditeur de texte enrichi dans notre application Web, telles que Angular-Editor, Angular Trix, Angular Meditor, ngQuill et Angular inline text editor.

La bibliothèque que nous allons utiliser pour créer un éditeur de texte enrichi est @kolkov/angular-editor. Nous pouvons installer @kolkov/angular-editor en utilisant le gestionnaire de paquets npm.

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

Une fois installé, nous devons importer HttpClientModule de @angular/common/http et AngularEditorModule de @kolkov/angular-editor dans app.module.ts.

Notre app.module.ts ressemblera à ci-dessous.

# 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 { }

Nous pouvons maintenant configurer notre éditeur de texte enrichi en utilisant AngularEditorConfig. Nous pouvons faire les configurations suivantes.

Configuration Taper Défaut La description
editable Boolean true Activation ou désactivation de l’éditeur
spellcheck Boolean true Activer ou désactiver la vérification orthographique
translate string yes Activer ou désactiver la traduction
sanitize Boolean true Activer ou désactiver la désinfection DOM
height string auto Nous pouvons définir la hauteur de l’éditeur en l’utilisant
minHeight string 0 Nous pouvons définir la hauteur minimale de l’éditeur en l’utilisant
maxHeight string auto Nous pouvons définir la hauteur maximale de l’éditeur en l’utilisant
width string auto Nous pouvons définir la largeur de l’éditeur en l’utilisant
minWidth string 0 Nous pouvons définir la largeur minimale de l’éditeur en l’utilisant
enableToolbar Boolean true Activer ou désactiver la barre d’outils
showToolbar Boolean true Afficher ou masquer la barre d’outils
toolbarPosition string top Nous pouvons définir la position de la barre d’outils en haut ou en bas
placeholder string - Nous pouvons définir un espace réservé pour l’éditeur
defaultParagraphSeparator string - Nous pouvons définir un séparateur de paragraphe par défaut tel que la balise p
defaultFontName string - Nous pouvons définir la police par défaut telle que Arial
defaultFontSize string - Nous pouvons définir la taille de police par défaut
uploadUrl string - Nous pouvons définir le point de terminaison de téléchargement d’image et renvoyer une réponse avec la clé imageUrl. {"imageUrl" : }
upload function - Nous pouvons utiliser la fonction de téléchargement d’images.
uploadWithCredentials Boolean false Nous pouvons protéger ou non le téléchargement d’images par mot de passe.
fonts Font[] - Nous pouvons définir un tableau de polices pouvant être utilisées, telles que [{name, class}] et ainsi de suite.
customClasses CustomClass[] - Nous pouvons définir un tableau de classes disponibles pouvant être utilisées dans l’éditeur.
outline Boolean true Nous pouvons définir le contour de l’éditeur au point.
toolbarHiddenButtons string[][] - Nous pouvons définir un tableau de noms de boutons ou d’éléments qui seront masqués.

En utilisant les configurations ci-dessus, nous allons configurer notre éditeur de texte enrichi.

# 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',
      },
    ],
  };
}

Nous allons créer un modèle en utilisant la balise angular-editor pour afficher notre éditeur de texte enrichi et la sortie de notre éditeur de texte enrichi ; nous allons utiliser la variable htmlContent, que nous avons définie dans app.component.ts.

Notre code dans app.component.html ressemblera à ci-dessous.

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

Production:

éditeur de texte enrichi en Angular

De cette manière simple, nous pouvons créer un éditeur de texte enrichi.

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