From f565b8cb54aee5d75fc79b9b2eba2d383d610579 Mon Sep 17 00:00:00 2001 From: morgan Date: Thu, 30 Mar 2017 18:26:54 +1000 Subject: [PATCH 01/13] text and list blocks --- blocks/components/editable/index.js | 7 ++- demo/demo.html | 79 +++++++++++++++++++++++++++++ editor/blocks/heading/index.js | 35 +++++++++++++ editor/blocks/index.js | 2 + 4 files changed, 122 insertions(+), 1 deletion(-) create mode 100644 demo/demo.html create mode 100644 editor/blocks/heading/index.js diff --git a/blocks/components/editable/index.js b/blocks/components/editable/index.js index 9a1638c4b6be31..15ac24b7039d56 100644 --- a/blocks/components/editable/index.js +++ b/blocks/components/editable/index.js @@ -70,6 +70,11 @@ export default class Editable extends wp.element.Component { } render() { - return
; + const Tag = this.props.nodeName; + return ; } } + +Editable.defaultProps = { + nodeName: 'div' +} \ No newline at end of file diff --git a/demo/demo.html b/demo/demo.html new file mode 100644 index 00000000000000..0d90f649d7ba79 --- /dev/null +++ b/demo/demo.html @@ -0,0 +1,79 @@ + + + + Block Types Demo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Editable ViewSaved View
+ + + + \ No newline at end of file diff --git a/editor/blocks/heading/index.js b/editor/blocks/heading/index.js new file mode 100644 index 00000000000000..05da55e4a40353 --- /dev/null +++ b/editor/blocks/heading/index.js @@ -0,0 +1,35 @@ +const Editable = wp.blocks.Editable; +const { html, prop } = wp.blocks.query; + +function Heading( { nodeName = 'H2', children } ) { + // nodeName.toLowerCase() is used to map DOM nodeName values to proper tag. + return wp.element.createElement( nodeName.toLowerCase(), null, children ); +} + +wp.blocks.registerBlock( 'core/heading', { + title: 'Heading', + icon: 'heading', + category: 'common', + + attributes: { + value: html( 'h1,h2,h3,h4,h5,h6' ), + headingType: prop( 'h1,h2,h3,h4,h5,h6', 'nodeName' ) + }, + + edit( attributes, onChange ) { + const { headingType = 'H2', value } = attributes; + + return ( + onChange( { value: nextValue } ) } /> + + ); + }, + + save( attributes ) { + const { headingType = 'H2', value } = attributes; + return { value }; + } +} ); \ No newline at end of file diff --git a/editor/blocks/index.js b/editor/blocks/index.js index 7319406b858f04..b36155945f8942 100644 --- a/editor/blocks/index.js +++ b/editor/blocks/index.js @@ -1 +1,3 @@ import './text'; +import './heading'; + From f35c59332135588ee63ccd81993de9e1a47ec8ee Mon Sep 17 00:00:00 2001 From: morgan Date: Thu, 30 Mar 2017 18:35:52 +1000 Subject: [PATCH 02/13] starting with list blocks --- demo/demo.html | 1 + editor/blocks/index.js | 1 + editor/blocks/list/index.js | 27 +++++++++++++++++++++++++++ 3 files changed, 29 insertions(+) create mode 100644 editor/blocks/list/index.js diff --git a/demo/demo.html b/demo/demo.html index 0d90f649d7ba79..6d8708a7d75c87 100644 --- a/demo/demo.html +++ b/demo/demo.html @@ -31,6 +31,7 @@ var go = function () { setupBlock('text', { value: 'This is text' }) setupBlock('heading', { nodeName: 'h2', value: 'This is a heading' }); + setupBlock('list', { }) }; diff --git a/editor/blocks/index.js b/editor/blocks/index.js index b36155945f8942..68657eb8c58c99 100644 --- a/editor/blocks/index.js +++ b/editor/blocks/index.js @@ -1,3 +1,4 @@ import './text'; import './heading'; +import './list'; diff --git a/editor/blocks/list/index.js b/editor/blocks/list/index.js new file mode 100644 index 00000000000000..3bbdc872ea10fb --- /dev/null +++ b/editor/blocks/list/index.js @@ -0,0 +1,27 @@ +const Editable = wp.blocks.Editable; +const { html, prop } = wp.blocks.query; + +function List( { nodeName = 'ul', children } ) { + // nodeName.toLowerCase() is used to map DOM nodeName values to proper tag. + return wp.element.createElement( nodeName.toLowerCase(), null, children ); +} + +wp.blocks.registerBlock( 'core/list', { + title: 'List', + icon: 'list', + category: 'common', + + attributes: { + // wp.blocks.query ... work out what these should be. + + }, + + edit( attributes, onChange ) { + return
  1. List edit: Not implemented
; + }, + + save( attributes ) { + // Render a component + return
  1. List save: Not implemented
; + } +} ); \ No newline at end of file From 3e96e6e11b156dd7cc93116f11bb228414950dd0 Mon Sep 17 00:00:00 2001 From: Maurizio Napoleoni Date: Fri, 31 Mar 2017 09:46:02 +1000 Subject: [PATCH 03/13] list-block: Trying a possible approach with lists --- demo/demo.html | 88 +++++++++++++++++++++---------------- editor/blocks/list/index.js | 23 +++++++--- 2 files changed, 66 insertions(+), 45 deletions(-) diff --git a/demo/demo.html b/demo/demo.html index 6d8708a7d75c87..1d370f81405927 100644 --- a/demo/demo.html +++ b/demo/demo.html @@ -1,5 +1,6 @@ + Block Types Demo @@ -9,16 +10,16 @@ - - + + - + - - - - - - - - - - - - - - - - - - - - - - - -
Editable ViewSaved View
- + + + + + + + + + + + + + + + + + + + + + +
Editable ViewSaved View
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/editor/blocks/list/index.js b/editor/blocks/list/index.js index 3bbdc872ea10fb..4f4a458eebf6a3 100644 --- a/editor/blocks/list/index.js +++ b/editor/blocks/list/index.js @@ -1,7 +1,7 @@ const Editable = wp.blocks.Editable; const { html, prop } = wp.blocks.query; -function List( { nodeName = 'ul', children } ) { +function List( { nodeName = 'ol', children } ) { // nodeName.toLowerCase() is used to map DOM nodeName values to proper tag. return wp.element.createElement( nodeName.toLowerCase(), null, children ); } @@ -12,16 +12,27 @@ wp.blocks.registerBlock( 'core/list', { category: 'common', attributes: { - // wp.blocks.query ... work out what these should be. - + value: html( 'ol,ul' ), + listType: prop( 'ol,ul', 'nodeName' ) }, edit( attributes, onChange ) { - return
  1. List edit: Not implemented
; + const { listType = 'ol', items } = attributes; + const lis = items.map( i => { + return `
  • ${i}
  • ` + }) + + + return ( + onChange( { value: nextValue } ) } /> + ); }, save( attributes ) { - // Render a component - return
    1. List save: Not implemented
    ; + const { listType = 'ol', value } = attributes; + return {value} } } ); \ No newline at end of file From ecf4e289ac565ecbbb58a28fd3b5b96f1c09878f Mon Sep 17 00:00:00 2001 From: Maurizio Napoleoni Date: Fri, 31 Mar 2017 13:13:54 +1000 Subject: [PATCH 04/13] list-block: Saving and editing lists --- demo/demo.html | 12 ++++++++++- editor/blocks/list/index.js | 31 +++++++++++++++++----------- editor/inserter/index.js | 41 ++++++++++++++++++++++--------------- 3 files changed, 55 insertions(+), 29 deletions(-) diff --git a/demo/demo.html b/demo/demo.html index 1d370f81405927..0c2428d383e1d8 100644 --- a/demo/demo.html +++ b/demo/demo.html @@ -30,9 +30,18 @@ }; var go = function () { + wp.editor.createEditorInstance( 'editor', { content: 'I am here', addBlock: function () { + debugger; + }}); setupBlock('text', { value: 'This is text' }) setupBlock('heading', { nodeName: 'h2', value: 'This is a heading' }); - setupBlock('list', { nodeName: 'ol', items: ['item1', 'item2', 'item3' ] }) + setupBlock('list', { + nodeName: 'ol', + items: [ + { value: 'hi' }, + { value: 'there' } + ] + }) }; @@ -51,6 +60,7 @@ +
    diff --git a/editor/blocks/list/index.js b/editor/blocks/list/index.js index 4f4a458eebf6a3..d958db1e52e7d7 100644 --- a/editor/blocks/list/index.js +++ b/editor/blocks/list/index.js @@ -1,7 +1,7 @@ const Editable = wp.blocks.Editable; const { html, prop } = wp.blocks.query; -function List( { nodeName = 'ol', children } ) { +function List( { nodeName, children } ) { // nodeName.toLowerCase() is used to map DOM nodeName values to proper tag. return wp.element.createElement( nodeName.toLowerCase(), null, children ); } @@ -12,27 +12,34 @@ wp.blocks.registerBlock( 'core/list', { category: 'common', attributes: { - value: html( 'ol,ul' ), - listType: prop( 'ol,ul', 'nodeName' ) + listType: prop( 'ol,ul', 'nodeName' ), + items: wp.blocks.query.query( + 'li', + { + value: html() + } + ) }, edit( attributes, onChange ) { - const { listType = 'ol', items } = attributes; - const lis = items.map( i => { - return `
  • ${i}
  • ` - }) + const { listType = 'ol', items=[] } = attributes; + const value = items.map( i => { + return `
  • ${i.value}
  • ` + }).join('') return ( onChange( { value: nextValue } ) } /> + value={ value } + onChange ={ onChange } /> ); }, save( attributes ) { - const { listType = 'ol', value } = attributes; - return {value} + const { listType = 'ol', items = [ ] } = attributes; + const children = items.map((i, index) =>
  • {i.value}
  • ); + return {children} } -} ); \ No newline at end of file +} ); + diff --git a/editor/inserter/index.js b/editor/inserter/index.js index 53f9a088d2ab28..c28fed39d255db 100644 --- a/editor/inserter/index.js +++ b/editor/inserter/index.js @@ -1,22 +1,31 @@ -function Inserter() { - const blocks = wp.blocks.getBlocks(); +class Inserter extends wp.element.Component { + constructor(...args) { + super(...args); + } - return ( -
    -
    -
    -
    - { blocks.map( ( { slug, title, icon } ) => ( -
    - - { title } -
    - ) ) } + inserterAction() { + debugger; + } + + render () { + const blocks = wp.blocks.getBlocks(); + return ( +
    +
    +
    +
    + { blocks.map( ( { slug, title, icon } ) => ( +
    + + { title } +
    + ) ) } +
    +
    - -
    - ); + ); + } } export default Inserter; From a6b4e9f541e10cd5e73b5e05c0e2d309f2f9b638 Mon Sep 17 00:00:00 2001 From: Maurizio Napoleoni Date: Fri, 31 Mar 2017 13:47:30 +1000 Subject: [PATCH 05/13] list-block: restored original inserter --- editor/inserter/index.js | 41 ++++++++++++++++------------------------ 1 file changed, 16 insertions(+), 25 deletions(-) diff --git a/editor/inserter/index.js b/editor/inserter/index.js index c28fed39d255db..53f9a088d2ab28 100644 --- a/editor/inserter/index.js +++ b/editor/inserter/index.js @@ -1,31 +1,22 @@ -class Inserter extends wp.element.Component { - constructor(...args) { - super(...args); - } +function Inserter() { + const blocks = wp.blocks.getBlocks(); - inserterAction() { - debugger; - } - - render () { - const blocks = wp.blocks.getBlocks(); - return ( -
    -
    -
    -
    - { blocks.map( ( { slug, title, icon } ) => ( -
    - - { title } -
    - ) ) } -
    + return ( +
    +
    +
    +
    + { blocks.map( ( { slug, title, icon } ) => ( +
    + + { title } +
    + ) ) }
    -
    - ); - } + +
    + ); } export default Inserter; From 374fb7b85ca68945a81cc2d5330e09d65f9f14ea Mon Sep 17 00:00:00 2001 From: Maurizio Napoleoni Date: Mon, 3 Apr 2017 11:24:47 +1000 Subject: [PATCH 06/13] Fixing PR comments: Removed the new demo files; Removed the changes for headings; Fixed linting issues in the new list plugin; --- blocks/components/editable/index.js | 2 +- demo/demo.html | 100 ---------------------------- editor/blocks/heading/index.js | 35 ---------- editor/blocks/index.js | 1 - editor/blocks/list/index.js | 36 +++++----- 5 files changed, 18 insertions(+), 156 deletions(-) delete mode 100644 demo/demo.html delete mode 100644 editor/blocks/heading/index.js diff --git a/blocks/components/editable/index.js b/blocks/components/editable/index.js index 15ac24b7039d56..1a929bc81957e9 100644 --- a/blocks/components/editable/index.js +++ b/blocks/components/editable/index.js @@ -77,4 +77,4 @@ export default class Editable extends wp.element.Component { Editable.defaultProps = { nodeName: 'div' -} \ No newline at end of file +}; diff --git a/demo/demo.html b/demo/demo.html deleted file mode 100644 index 0c2428d383e1d8..00000000000000 --- a/demo/demo.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Block Types Demo - - - - - - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - - - - - - - - - - -
    Editable ViewSaved View
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - \ No newline at end of file diff --git a/editor/blocks/heading/index.js b/editor/blocks/heading/index.js deleted file mode 100644 index 05da55e4a40353..00000000000000 --- a/editor/blocks/heading/index.js +++ /dev/null @@ -1,35 +0,0 @@ -const Editable = wp.blocks.Editable; -const { html, prop } = wp.blocks.query; - -function Heading( { nodeName = 'H2', children } ) { - // nodeName.toLowerCase() is used to map DOM nodeName values to proper tag. - return wp.element.createElement( nodeName.toLowerCase(), null, children ); -} - -wp.blocks.registerBlock( 'core/heading', { - title: 'Heading', - icon: 'heading', - category: 'common', - - attributes: { - value: html( 'h1,h2,h3,h4,h5,h6' ), - headingType: prop( 'h1,h2,h3,h4,h5,h6', 'nodeName' ) - }, - - edit( attributes, onChange ) { - const { headingType = 'H2', value } = attributes; - - return ( - onChange( { value: nextValue } ) } /> - - ); - }, - - save( attributes ) { - const { headingType = 'H2', value } = attributes; - return { value }; - } -} ); \ No newline at end of file diff --git a/editor/blocks/index.js b/editor/blocks/index.js index 6033e7e59caf7a..828ce3ced6630a 100644 --- a/editor/blocks/index.js +++ b/editor/blocks/index.js @@ -1,5 +1,4 @@ import './freeform'; import './text'; -import './heading'; import './list'; diff --git a/editor/blocks/list/index.js b/editor/blocks/list/index.js index d958db1e52e7d7..a71f56465fd0d5 100644 --- a/editor/blocks/list/index.js +++ b/editor/blocks/list/index.js @@ -12,7 +12,7 @@ wp.blocks.registerBlock( 'core/list', { category: 'common', attributes: { - listType: prop( 'ol,ul', 'nodeName' ), + listType: prop( 'ol,ul', 'nodeName' ), items: wp.blocks.query.query( 'li', { @@ -21,25 +21,23 @@ wp.blocks.registerBlock( 'core/list', { ) }, - edit( attributes, onChange ) { - const { listType = 'ol', items=[] } = attributes; - const value = items.map( i => { - return `
  • ${i.value}
  • ` - }).join('') - - - return ( - - ); + edit( { attributes, onChange } ) { + const { listType = 'ol', items = [] } = attributes; + const value = items.map( i => { + return `
  • ${i.value}
  • `; + } ).join( '' ); + + return ( + + ); }, - save( attributes ) { - const { listType = 'ol', items = [ ] } = attributes; - const children = items.map((i, index) =>
  • {i.value}
  • ); - return {children} + save( { attributes } ) { + const { listType = 'ol', items = [] } = attributes; + const children = items.map( ( i, index ) =>
  • {i.value}
  • ); + return {children}; } } ); - From 7c7af5ff0fe7684d7a54b2e91e4de8d57121fc59 Mon Sep 17 00:00:00 2001 From: Maurizio Napoleoni Date: Mon, 3 Apr 2017 11:51:58 +1000 Subject: [PATCH 07/13] List icon in block inserter --- editor/blocks/list/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editor/blocks/list/index.js b/editor/blocks/list/index.js index a71f56465fd0d5..91a746fbcda88d 100644 --- a/editor/blocks/list/index.js +++ b/editor/blocks/list/index.js @@ -8,7 +8,7 @@ function List( { nodeName, children } ) { wp.blocks.registerBlock( 'core/list', { title: 'List', - icon: 'list', + icon: 'editor-ul', category: 'common', attributes: { From 67ed22d91db729feebf449da770c41bef9a39f86 Mon Sep 17 00:00:00 2001 From: Maurizio Napoleoni Date: Mon, 3 Apr 2017 13:04:02 +1000 Subject: [PATCH 08/13] Added sample content for list --- editor/assets/stylesheets/main.scss | 8 ++++++++ post-content.js | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/editor/assets/stylesheets/main.scss b/editor/assets/stylesheets/main.scss index 7c39ddc10a72e5..bb82baaba9aff0 100644 --- a/editor/assets/stylesheets/main.scss +++ b/editor/assets/stylesheets/main.scss @@ -25,6 +25,14 @@ body.toplevel_page_gutenberg { * { box-sizing: border-box; } + + ul { + list-style-type: disc; + } + + ol { + list-style-type: decimal; + } } .gutenberg__editor { diff --git a/post-content.js b/post-content.js index eb99ed251b299a..215d8a78230680 100644 --- a/post-content.js +++ b/post-content.js @@ -27,6 +27,10 @@ window.content = [ '

    By shipping early and often you have the unique competitive advantage of hearing from real people what they think of your work, which in best case helps you anticipate market direction, and in worst case gives you a few people rooting for you that you can email when your team pivots to a new idea. Nothing can recreate the crucible of real usage.

    ', '', + '', + '
    • Ship early
    • Ship often
    • Listen to feedback from real people
    • Anticipate market direction
    ', + '', + '', '', '' From 6a42a5d8f135fdd7f449204646e87bbb54aa37b2 Mon Sep 17 00:00:00 2001 From: Maurizio Napoleoni Date: Tue, 4 Apr 2017 07:46:13 +1000 Subject: [PATCH 09/13] Fixed linting --- editor/blocks/list/index.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/editor/blocks/list/index.js b/editor/blocks/list/index.js index 91a746fbcda88d..d26916d364a0dc 100644 --- a/editor/blocks/list/index.js +++ b/editor/blocks/list/index.js @@ -24,20 +24,20 @@ wp.blocks.registerBlock( 'core/list', { edit( { attributes, onChange } ) { const { listType = 'ol', items = [] } = attributes; const value = items.map( i => { - return `
  • ${i.value}
  • `; + return `
  • ${ i.value }
  • `; } ).join( '' ); return ( + nodeName={ listType } + value={ value } + onChange={ onChange } /> ); }, save( { attributes } ) { const { listType = 'ol', items = [] } = attributes; - const children = items.map( ( i, index ) =>
  • {i.value}
  • ); - return {children}; + const children = items.map( ( i, index ) =>
  • { i.value }
  • ); + return { children }; } } ); From 68427de96f50acb0db9ac4f3dbc26669fc22fb31 Mon Sep 17 00:00:00 2001 From: Maurizio Napoleoni Date: Fri, 7 Apr 2017 08:10:55 +1000 Subject: [PATCH 10/13] Removed nodeName from default properties --- blocks/components/editable/index.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/blocks/components/editable/index.js b/blocks/components/editable/index.js index a7f427a4854ba3..7ae87e74d5087a 100644 --- a/blocks/components/editable/index.js +++ b/blocks/components/editable/index.js @@ -84,7 +84,3 @@ export default class Editable extends wp.element.Component { ); } } - -Editable.defaultProps = { - nodeName: 'div' -}; From b00b4b8f30f775ea9dca1623dd8b1180cc32c029 Mon Sep 17 00:00:00 2001 From: Maurizio Napoleoni Date: Fri, 7 Apr 2017 09:09:29 +1000 Subject: [PATCH 11/13] Added changes as per PR comments --- editor/blocks/list/index.js | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/editor/blocks/list/index.js b/editor/blocks/list/index.js index d26916d364a0dc..3fc51ee35b6961 100644 --- a/editor/blocks/list/index.js +++ b/editor/blocks/list/index.js @@ -1,11 +1,6 @@ const Editable = wp.blocks.Editable; const { html, prop } = wp.blocks.query; -function List( { nodeName, children } ) { - // nodeName.toLowerCase() is used to map DOM nodeName values to proper tag. - return wp.element.createElement( nodeName.toLowerCase(), null, children ); -} - wp.blocks.registerBlock( 'core/list', { title: 'List', icon: 'editor-ul', @@ -23,13 +18,13 @@ wp.blocks.registerBlock( 'core/list', { edit( { attributes, onChange } ) { const { listType = 'ol', items = [] } = attributes; - const value = items.map( i => { - return `
  • ${ i.value }
  • `; + const value = items.map( item => { + return `
  • ${ item.value }
  • `; } ).join( '' ); return ( ); @@ -37,7 +32,9 @@ wp.blocks.registerBlock( 'core/list', { save( { attributes } ) { const { listType = 'ol', items = [] } = attributes; - const children = items.map( ( i, index ) =>
  • { i.value }
  • ); - return { children }; + const children = items.map( ( item, index ) => ( +
  • + ) ); + return wp.element.createElement( listType.toLowerCase(), null, children ); } } ); From 821ac5dab1388348f273df9dc9fc961b3743c48a Mon Sep 17 00:00:00 2001 From: Maurizio Napoleoni Date: Fri, 7 Apr 2017 09:11:56 +1000 Subject: [PATCH 12/13] restored pot file as per master --- languages/gutenberg.pot | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/languages/gutenberg.pot b/languages/gutenberg.pot index 33149ef8eb8f0c..4348eb4857850f 100644 --- a/languages/gutenberg.pot +++ b/languages/gutenberg.pot @@ -3,15 +3,15 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "X-Generator: babel-plugin-wp-i18n\n" +#: editor/blocks/freeform/index.js:4 +msgid "Freeform" +msgstr "" + #: editor/header/mode-switcher/index.js:31 msgctxt "Name for the Text editor tab (formerly HTML)" msgid "Text" msgstr "" -#: editor/blocks/freeform/index.js:4 -msgid "Freeform" -msgstr "" - #: editor/header/mode-switcher/index.js:30 msgid "Visual" msgstr "" From e370326831ba18fe231d466dfdec2c2b0f2d5168 Mon Sep 17 00:00:00 2001 From: Maurizio Napoleoni Date: Fri, 7 Apr 2017 10:31:22 +1000 Subject: [PATCH 13/13] Added i18n string for list --- editor/blocks/list/index.js | 2 +- languages/gutenberg.pot | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/editor/blocks/list/index.js b/editor/blocks/list/index.js index 3fc51ee35b6961..9434b6e2aab931 100644 --- a/editor/blocks/list/index.js +++ b/editor/blocks/list/index.js @@ -2,7 +2,7 @@ const Editable = wp.blocks.Editable; const { html, prop } = wp.blocks.query; wp.blocks.registerBlock( 'core/list', { - title: 'List', + title: wp.i18n.__( 'List' ), icon: 'editor-ul', category: 'common', diff --git a/languages/gutenberg.pot b/languages/gutenberg.pot index 4348eb4857850f..fb441393cbf802 100644 --- a/languages/gutenberg.pot +++ b/languages/gutenberg.pot @@ -3,13 +3,17 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "X-Generator: babel-plugin-wp-i18n\n" +#: editor/header/mode-switcher/index.js:31 +msgctxt "Name for the Text editor tab (formerly HTML)" +msgid "Text" +msgstr "" + #: editor/blocks/freeform/index.js:4 msgid "Freeform" msgstr "" -#: editor/header/mode-switcher/index.js:31 -msgctxt "Name for the Text editor tab (formerly HTML)" -msgid "Text" +#: editor/blocks/list/index.js:5 +msgid "List" msgstr "" #: editor/header/mode-switcher/index.js:30