PHPackages                             philippoehrlein/typo-and-paste - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. philippoehrlein/typo-and-paste

ActiveKirby-plugin

philippoehrlein/typo-and-paste
==============================

A Kirby plugin for managing and inserting special characters with multi-language support.

2.4.0(1y ago)394.0k—0%2MITPHPPHP &gt;=8.1.0

Since Aug 31Pushed 3mo ago2 watchersCompare

[ Source](https://github.com/philippoehrlein/typo-and-paste)[ Packagist](https://packagist.org/packages/philippoehrlein/typo-and-paste)[ Docs](https://github.com/philippoehrlein/typo-and-paste)[ RSS](/packages/philippoehrlein-typo-and-paste/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (2)Versions (21)Used By (0)

Typo &amp; Paste
================

[](#typo--paste)

[![License](https://camo.githubusercontent.com/f8df3091bbe1149f398a5369b2c39e896766f9f6efba3477c63e9b4aa940ef14/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e)](https://camo.githubusercontent.com/f8df3091bbe1149f398a5369b2c39e896766f9f6efba3477c63e9b4aa940ef14/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e)[![Version](https://camo.githubusercontent.com/a1c3dbf23b2ffabcdba18185aa5ccf9cfa245b4d48594c33c3b62c68058d4d16/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d322e342e302d626c7565)](https://camo.githubusercontent.com/a1c3dbf23b2ffabcdba18185aa5ccf9cfa245b4d48594c33c3b62c68058d4d16/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d322e342e302d626c7565)

**Typo &amp; Paste** is a Kirby plugin that allows users to easily manage and insert special characters with multi-language support.

[![Cover Typo & Paste](.github/typo-and-paste-cover.png)](.github/typo-and-paste-cover.png)

Table of Contents
-----------------

[](#table-of-contents)

- [Features](#features)
- [Compatibility](#compatibility)
- [Installation](#installation)
    - [Composer](#composer)
    - [Manual Installation](#manual-installation)
- [Configuration](#configuration)
    - [Access Points](#access-points)
        - [Panel Toolbar Button](#1-panel-toolbar-button)
        - [Writer Mark Button](#2-writer-mark-button)
        - [Textarea Button](#3-textarea-button)
        - [Keyboard Shortcuts](#4-keyboard-shortcuts)
    - [Character Configuration](#character-configuration)
    - [AI Support](#ai-support)
        - [Using AI for Configuration](#using-ai-for-configuration)
- [Translations](#translations)
- [Search](#typ-search-and-paste)
- [Development](#development)
- [License](#license)

Features
--------

[](#features)

- **Multi-Language Support**: Supports various languages for characters and the user interface.
- **Custom Characters**: Users can define and add their own characters.
- **Multiple Access Points**:
    - Panel toolbar button
    - Writer mark button
    - Textarea button
    - Keyboard shortcuts (`Option+T` / `Alt+T`)
- **Clipboard Copy**: Easily copy characters to the clipboard.

Compatibility
-------------

[](#compatibility)

This plugin is compatible with Kirby 4 and 5.

Installation
------------

[](#installation)

### Composer

[](#composer)

```
composer require philippoehrlein/typo-and-paste
```

### Manual Installation

[](#manual-installation)

1. Download and extract the plugin
2. Copy the `typo-and-paste` folder into `/site/plugins/`

Configuration
-------------

[](#configuration)

### Access Points

[](#access-points)

The plugin provides four ways to access special characters:

#### 1. Panel Toolbar Button

[](#1-panel-toolbar-button)

In Kirby 5, configure the Panel toolbar button in your page, site, or file blueprint:

```
buttons:
  - typo-and-paste
  - preview
  - settings
  - languages
  - status
```

Or globally in your config:

```
// site/config/config.php
return [
  'panel' => [
    'viewButtons' => [
      // Page view
      'page' => ['typo-and-paste', 'preview', 'settings', 'languages', 'status'],
      // Site view
      'site' => ['typo-and-paste', 'preview', 'languages']
    ]
  ]
];
```

#### 2. Writer Mark Button

[](#2-writer-mark-button)

[![Writer Mark Button](.github/typo-and-paste-mark-button.png)](.github/typo-and-paste-mark-button.png)

To add the **Typo &amp; Paste** button to the Writer toolbar, include `typo-and-paste` in your field's marks configuration:

```
fields:
  article:
    label: Article
    type: writer
    toolbar:
      inline: true
      marks:
        - bold
        - italic
        - underline
        - strike
        - code
        - "|"
        - link
        - email
        - "|"
        - clear
        - "|"
        - typo-and-paste
```

#### 3. Textarea Button

[](#3-textarea-button)

To add the **Typo &amp; Paste** button to a textarea, add `typo-and-paste` in your field's buttons configuration:

```
fields:
  article:
    label: Article
    type: textarea
    buttons:
      - typo-and-paste
```

#### 4. Keyboard Shortcuts

[](#4-keyboard-shortcuts)

[![Keyboard Shortcuts](.github/typo-and-paste-dialog.png)](.github/typo-and-paste-dialog.png)

- Use `Option+T` (Mac) or `Alt+T` (Windows/Linux) to open the character dialog from anywhere
- Navigate characters using arrow keys
- Press `Enter` to add the selected character to your clipboard

### Character Configuration

[](#character-configuration)

Define custom characters in your config: Each character can either be defined as a simple string or as an object with value and a multilingual label. Labels are used for accessibility and shown as tooltips in the UI.

```
// site/config/config.php
return [
  'philippoehrlein.typo-and-paste' => [
    'characters' => [
      [
        'label' => [
          'en' => 'Quotation Marks',
          'de' => 'Anführungszeichen',
        ],
        'lang' => 'fr', // Optional: Show only for French content
        'characters' => [
          ['value' => '«', 'label' => ['en' => 'Left guillemet', 'de' => 'Linkes Guillemets']],
          ['value' => '»', 'label' => ['en' => 'Right guillemet', 'de' => 'Rechtes Guillemets']],
          '‹', // also allowed: plain characters
          '›'
        ]
      ],
    ]
  ]
];
```

### AI Support

[](#ai-support)

This plugin includes an AI-friendly schema definition (AI-SCHEMA.md) to help generate configurations using AI language models. The schema provides:

- Structured format for character group definitions
- Clear property descriptions and requirements
- Guidelines for creating meaningful character groups
- Examples of proper configuration

#### Using AI for Configuration

[](#using-ai-for-configuration)

1. Share the content of [AI-SCHEMA.md](https://raw.githubusercontent.com/philippoehrlein/typo-and-paste/main/AI-SCHEMA.md) with your AI assistant
2. Describe your specific use case and requirements
3. The AI will generate a configuration following the schema
4. Review and adjust the generated configuration as needed

#### Example prompt:

[](#example-prompt)

> Using the schema, create a configuration for a blog about \[your topic\]. The content will be in \[languages\] and editors work in \[languages\].

Translations
------------

[](#translations)

The plugin includes a default set of translations for `en`, `de`, `fr`, `es`, `nl`, and `it`. Add custom translations:

```
// site/languages/en.php
return [
  'translations' => [
    'philippoehrlein.typo-and-paste.buttonTitle' => 'Special Characters',
    'philippoehrlein.typo-and-paste.copiedMessage' => '{character} copied to clipboard',
  ]
];
```

Search
------

[](#search)

[![Typo, Search and Paste](.github/typo-search-and-paste.png)](.github/typo-search-and-paste.png)Extend Typo &amp; Paste with a searchable interface for special characters. Simply install Typo, Search &amp; Paste — and you’re ready to go.

### Composer

[](#composer-1)

```
composer require philippoehrlein/typo-search-and-paste
```

### Github

[](#github)

[Typo, Search &amp; Paste](https://github.com/philippoehrlein/typo-search-and-paste)

Development
-----------

[](#development)

1. Clone the repository
2. Install dependencies: `composer install`
3. Run playground: `composer dev`
4. Open: [localhost:8000](http://localhost:8000)

License
-------

[](#license)

MIT License

###  Health Score

46

—

FairBetter than 93% of packages

Maintenance66

Regular maintenance activity

Popularity34

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 65.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~14 days

Recently: every ~33 days

Total

18

Last Release

369d ago

Major Versions

1.2.1 → 2.0.02024-11-27

### Community

Maintainers

![](https://www.gravatar.com/avatar/818779cb1d5575b715d8bdde9943d8795aa723a04a0a412a579d5571e74d5b96?d=identicon)[philippoehrlein](/maintainers/philippoehrlein)

---

Top Contributors

[![philippoehrlein](https://avatars.githubusercontent.com/u/101180105?v=4)](https://github.com/philippoehrlein "philippoehrlein (69 commits)")[![johannschopplich](https://avatars.githubusercontent.com/u/27850750?v=4)](https://github.com/johannschopplich "johannschopplich (36 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")

---

Tags

kirbykirby-cmskirby-pluginkirby4kirby5

### Embed Badge

![Health badge](/badges/philippoehrlein-typo-and-paste/health.svg)

```
[![Health](https://phpackages.com/badges/philippoehrlein-typo-and-paste/health.svg)](https://phpackages.com/packages/philippoehrlein-typo-and-paste)
```

###  Alternatives

[getkirby/cms

The Kirby core

1.5k535.5k350](/packages/getkirby-cms)[distantnative/retour-for-kirby

Manage redirects and track 404s right from the Kirby CMS Panel

14689.4k1](/packages/distantnative-retour-for-kirby)[arnoson/kirby-vite

Vite helper for Kirby CMS

9759.2k3](/packages/arnoson-kirby-vite)[getkirby/staticache

Static site performance on demand

9615.4k](/packages/getkirby-staticache)[fabianmichael/kirby-meta

Your all-in-one powerhouse for any SEO and metadata needs imaginable.

6910.7k1](/packages/fabianmichael-kirby-meta)[thathoff/kirby-oauth

Kirby OAuth 2 Plugin

3823.9k](/packages/thathoff-kirby-oauth)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
