Skip to content

Introduction

Welcome to the documentation for On-Codemerge, a versatile web editor designed for seamless integration and functionality.

on-CodeMerge

A WYSIWYG editor for on-codemerge is a user-friendly interface that allows users to edit and view their code in real time, exactly as it will appear in the final product. This intuitive tool for developers of all skill levels.


Result:

Preview:

Getting Started

Start by installing On-Codemerge in your project.

Installation

To install on-codemerge, run one of the following commands in your project directory, depending on your preferred package manager:

Using npm

bash
npm install --save on-codemerge

Using yarn

bash
yarn add on-codemerge

Using pnpm

bash
pnpm add on-codemerge

Using bun

bash
bun add on-codemerge

Integration Example

Here's a basic example of integrating On-Codemerge into a vanilla JavaScript project:

typescript
import 'on-codemerge/index.css';
import 'on-codemerge/plugins/ToolbarPlugin/style.css';
import 'on-codemerge/plugins/AlignmentPlugin/public.css';
import 'on-codemerge/plugins/AlignmentPlugin/style.css';

import {HTMLEditor, ToolbarPlugin, AlignmentPlugin } from 'on-codemerge';

document.addEventListener('DOMContentLoaded', () => {
  const appElement = document.getElementById('app');
  if (appElement) {
    const editor = new HTMLEditor(editorElement);

    await editor.setLocale('ru');


    editor.use(new ToolbarPlugin());
    editor.use(new AlignmentPlugin());
    // ... register other modules

    editor.subscribeToContentChange((newContent?: string) => {
      console.log(newContent)
    });

    // Optional: Set initial content
    editor.setHtml('Your initial content here');
    console.log(editor.getHtml());
  }
});

Each plugin adds unique functionality to the On-Codemerge editor, making it a powerful tool for web content creation and editing.


Supported Locales

On-Codemerge supports multiple locales to cater to a global audience. Below is the list of available locales:

Locale CodeLanguageFile Name
arArabicar.json
csCzechcs.json
deGermande.json
enEnglishen.json
esSpanishes.json
frFrenchfr.json
hiHindihi.json
idIndonesianid.json
itItalianit.json
jaJapaneseja.json
koKoreanko.json
nlDutchnl.json
plPolishpl.json
ptPortuguesept.json
ruRussianru.json
thThaith.json
trTurkishtr.json
viVietnamesevi.json
zhChinese (Simplified)zh.json

Setting a Locale

To set a locale in On-Codemerge, use the setLocale method:

typescript
await editor.setLocale('ru'); // Set locale to Russian

Translating Placeholders

You can use placeholders in your translations to dynamically insert values. For example:

json
{
  "File size exceeds {{max}} limit": "File size exceeds {{max}} limit"
}

In your code, you can pass the max parameter when translating:

typescript
editor.t('File size exceeds {{max}} limit', { max: '10MB' });

This will output: File size exceeds 10MB limit.


Fallback Locale

If a translation key is missing in the current locale, On-Codemerge will fall back to the default locale (en by default). You can change the fallback locale using the setFallbackLocale method:

typescript
editor.setFallbackLocale('en'); // Set fallback locale to English

Getting the Current Locale

To retrieve the currently active locale, use the getCurrentLocale method:

typescript
const currentLocale = editor.getCurrentLocale();
console.log(currentLocale); // Outputs: 'ru' (if Russian is set)

Getting Loaded Locales

To get a list of all loaded locales, use the getLoadedLocales method:

typescript
const loadedLocales = editor.getLoadedLocales();
console.log(loadedLocales); // Outputs: ['en', 'ru', 'es']

Available Plugins

Below is a list of all available plugins for On-Codemerge and their functionalities:

PluginDescription
ToolbarPluginAdds a customizable toolbar for quick access to editor features.
AlignmentPluginAllows alignment of text (left, center, right, justify).
ToolbarDividerPluginAdds a visual divider in the toolbar for better organization.
FontPluginProvides options to change font family, size, and style.
TablePluginEnables creation and editing of tables.
ImagePluginAllows inserting and managing images in the editor.
BlockPluginAdds support for block-level elements like paragraphs, headings, etc.
HTMLViewerPluginDisplays the raw HTML content of the editor.
CodeBlockPluginAdds syntax-highlighted code blocks for programming languages.
TemplatesPluginProvides pre-designed templates for quick content creation.
ExportPluginEnables exporting editor content to various formats (e.g., HTML, PDF).
HistoryPluginAdds undo/redo functionality for tracking changes.
ChartsPluginAllows embedding and editing charts in the editor.
ShortcutsPluginAdds keyboard shortcuts for faster editing.
ColorPluginProvides options to change text and background colors.
TypographyPluginAdds advanced typography options like line height, letter spacing, etc.
ListsPluginEnables creation of ordered and unordered lists.
CommentsPluginAdds support for comments and annotations in the editor.
FootnotesPluginAllows adding footnotes to the content.
FooterPluginAdds a footer section to the editor.
ResponsivePluginEnsures the editor content is responsive across devices.
LinkPluginAllows inserting and managing hyperlinks.
VideoPluginEnables embedding and managing video files.
YouTubeVideoPluginAllows embedding YouTube videos directly into the editor.
FileUploadPluginProvides functionality to upload and manage files.

Добавим таблицу с параметрами для FileUploadPlugin и VideoPlugin, чтобы пользователи могли лучше понять, как их настраивать. Вот обновленный раздел документации:


На основе предоставленных типов (UploadEndpoints, UploadConfig, и defaultConfig) обновим таблицу с параметрами для FileUploadPlugin. Это поможет пользователям лучше понять, как настраивать плагин.


Plugin Configuration

FileUploadPlugin Parameters

ParameterTypeDefault ValueDescription
endpointsUploadEndpointsundefinedOptional endpoints for file upload and download. Includes:
- uploadstringEndpoint for uploading files.
- downloadstringEndpoint for downloading files.
maxFileSizenumber10 * 1024 * 1024 (10MB)Maximum allowed file size in bytes.
allowedTypesstring[]['*/*']Array of MIME types or wildcards (*/*) to specify allowed file types.
useEmulationbooleantrueEnables file upload emulation for testing purposes.

Example:

javascript
editor.use(
  new FileUploadPlugin({
    endpoints: {
      upload: '/api/upload',
      download: '/api/download',
    },
    maxFileSize: 20 * 1024 * 1024, // 20MB
    allowedTypes: ['image/jpeg', 'image/png', 'application/pdf'],
    useEmulation: false,
  })
);