PluginProbe
Code Block Pro – Beautiful Syntax Highlighting / 1.13.0
Code Block Pro – Beautiful Syntax Highlighting v1.13.0
1.27.1 1.27.2 1.27.3 1.27.4 1.27.5 1.27.6 1.27.7 1.28.0 1.3.0 1.4.0 1.5.0 1.5.1 1.5.2 1.6.0 1.7.0 1.8.0 1.9.0 1.9.1 1.9.2 1.9.3 trunk 1.1.0 1.10.0 1.11.0 1.11.1 All 63 releases
← All changes | src/index.tsx +40 -6 1.7.01.13.0 View file →
@@ -2,20 +2,21 @@
2 2 import { createBlock, registerBlockType } from '@wordpress/blocks';
3 3 import { addFilter } from '@wordpress/hooks';
4 4 import { __ } from '@wordpress/i18n';
5 5 import classnames from 'classnames';
6 -import { colord, AnyColor } from 'colord';
7 -import { Lang } from 'shiki';
8 6 import blockConfig from './block.json';
9 7 import { Edit } from './editor/Edit';
10 8 import { BlockFilter } from './editor/components/BlockFilter';
9 +import { FooterType } from './editor/components/FooterSelect';
11 10 import { HeaderType } from './editor/components/HeaderSelect';
11 +import { SeeMoreType } from './editor/components/SeeMoreSelect';
12 12 import { SidebarControls } from './editor/controls/Sidebar';
13 13 import { ToolbarControls } from './editor/controls/Toolbar';
14 14 import './editor/editor.css';
15 15 import { BlockOutput } from './front/BlockOutput';
16 +import { CopyButton } from './front/CopyButton';
16 17 import { blockIcon } from './icons';
17 -import { Attributes } from './types';
18 +import { Attributes, Lang } from './types';
18 19 import { fontFamilyLong, maybeClamp } from './util/fonts';
19 20 import { getMainAlias } from './util/languages';
20 21
21 22 registerBlockType<Attributes>(blockConfig.name, {
@@ -32,15 +33,31 @@
32 33 textColor: { type: 'string', default: '#f8f8f2' },
33 34 fontSize: { type: 'string' },
34 35 fontFamily: { type: 'string' },
35 36 lineHeight: { type: 'string' },
36 - clampFonts: { type: 'boolean', default: false },
37 + clampFonts: { type: 'boolean' },
38 + editorHeight: { type: 'string' },
37 39 lineNumbers: { type: 'boolean' },
38 40 headerType: { type: 'string' },
39 41 headerString: { type: 'string' },
40 - disablePadding: { type: 'boolean', default: false },
42 + disablePadding: { type: 'boolean' },
43 + footerType: { type: 'string' },
44 + footerString: { type: 'string' },
45 + footerLink: { type: 'string' },
46 + footerLinkTarget: { type: 'boolean' },
47 + enableMaxHeight: { type: 'boolean' },
48 + seeMoreType: { type: 'string' },
49 + seeMoreString: { type: 'string' },
50 + seeMoreAfterLine: { type: 'string' },
51 + seeMoreTransition: { type: 'boolean' },
41 52 startingLineNumber: { type: 'string' },
42 53 lineNumbersWidth: { type: 'number' },
54 + enableHighlighting: { type: 'boolean' },
55 + lineHighlights: { type: 'string' },
56 + lineHighlightColor: { type: 'string' },
57 + enableBlurring: { type: 'boolean' },
58 + lineBlurs: { type: 'string' },
59 + removeBlurOnHover: { type: 'boolean' },
43 60 frame: { type: 'boolean' },
44 61 renderType: { type: 'string', default: 'code' },
45 62 label: { type: 'string', default: '' },
46 63 copyButton: { type: 'boolean' },
@@ -64,9 +81,14 @@
64 81 <div
65 82 {...blockProps({
66 83 className: classnames('code-block-pro-editor', {
67 84 'padding-disabled': attributes.disablePadding,
85 + 'padding-bottom-disabled':
86 + attributes?.footerType &&
87 + attributes?.footerType !== 'none',
68 88 'cbp-has-line-numbers': attributes.lineNumbers,
89 + 'cbp-blur-enabled': attributes.enableBlurring,
90 + 'cbp-unblur-on-hover': attributes.removeBlurOnHover,
69 91 }),
70 92 style: {
71 93 fontSize: maybeClamp(
72 94 attributes.fontSize,
@@ -81,9 +103,16 @@
81 103 : undefined,
82 104 '--cbp-line-number-width': attributes.lineNumbersWidth
83 105 ? `${attributes.lineNumbersWidth}px`
84 106 : undefined,
85 - fontFamily: fontFamilyLong(attributes.fontFamily),
107 + '--cbp-line-highlight-color':
108 + attributes?.enableHighlighting
109 + ? attributes.lineHighlightColor
110 + : undefined,
111 + '--cbp-line-height': attributes.lineHeight,
112 + // Disabled as ligatures will break the editor line widths
113 + // fontFamily: fontFamilyLong(attributes.fontFamily),
114 + fontFamily: fontFamilyLong(''),
86 115 lineHeight: maybeClamp(
87 116 attributes.lineHeight,
88 117 attributes.clampFonts,
89 118 ),
@@ -89,9 +118,14 @@
89 118 ),
90 119 },
91 120 })}>
92 121 <HeaderType {...attributes} />
122 + {attributes.copyButton && (
123 + <CopyButton attributes={attributes} />
124 + )}
93 125 <Edit attributes={attributes} setAttributes={setAttributes} />
126 + <FooterType {...attributes} />
127 + <SeeMoreType {...attributes} />
94 128 </div>
95 129 </>
96 130 ),
97 131 save: ({ attributes }) => <BlockOutput attributes={attributes} />,