# code-block-pro/1.27.3/src/util/code.ts

Code Block Pro – Beautiful Syntax Highlighting, version 1.27.3. 36 lines.

- Page: https://pluginprobe.com/plugins/code-block-pro/1.27.3/code/src/util/code.ts
- Raw: https://pluginprobe.com/plugins/code-block-pro/1.27.3/raw/src/util/code.ts
- Modified: 2024-09-29T18:55:02+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/code-block-pro/1.27.3/code/src/util/code.ts#L10-L20`.

```typescript
import { escapeHTML } from '@wordpress/escape-html';
import { decodeEntities } from '@wordpress/html-entities';
import { Attributes } from '../types';

export const encode = (code: string, { useDecodeURI }: Partial<Attributes>) => {
    if (useDecodeURI) {
        try {
            // Here for bw compatability
            return encodeURIComponent(code);
        } catch (e) {
            console.error(e);
            return code;
        }
    }
    return escapeHTML(code);
};

export const decode = (code: string, { useDecodeURI }: Partial<Attributes>) => {
    if (useDecodeURI) {
        try {
            // Here for bw compatability
            return decodeURIComponent(code);
        } catch (e) {
            console.error(e);
            return code;
        }
    }
    return decodeEntities(code);
};

export const escapeShortcodes = (content: string) =>
    // eslint-disable-next-line no-control-regex
    content.replaceAll(/\[([^<>&/[\]\x00-\x20=]+)\]/g, (match) =>
        match.replace('[', '&#91;').replace(']', '&#93;'),
    );

```
