Bardify

Addon by Statamic

Bardify Main Screenshot

Convert Replicator and Markdown fields to the Bard fieldtype.

Overview

Bard fields are just like Replicator fields, except that the "text" blocks are implied and saved as text in your content.

For example you may have a Replicator field in your fieldset where you use your "text" set like this:

fields:
  story:
    type: replicator
    sets:
      content:  # The "text" set. It's the one with just a single text based field.
        fields:
          html:
            type: redactor
      quote:
        fields:
          quote:
            type: text
          cite:
            type: text

and your data would be saved like this:

story:
  -
    type: text
    html: "<p>This is my story</p>"
  -
    type: quote
    quote: Oh Hai Mark
    cite: Tommy Wiseau

To change to Bard, you'd need to replace your content/html set to text/text.

story:
  -
    type: text
    text: "<p>This is my story</p>"
  -
    type: quote
    quote: Oh Hai Mark
    cite: Tommy Wiseau

Simple enough, but tedious to do it for all your entries.

If you happened to already call your text set text with a field named text - you're in luck and don't need to change anything.

Usage

Note: This modifies your data, so consider making a backup first.

Another Note: This doesn't support multiple locales yet.

Download this repo and place it in site/addons/Bardify and run this command:

php please bardify

It will automate the following:

  • Go through any relevant content files and change the types/fields.
  • Remove the "text" set from the Replicator field.
  • Change type: replicator to type: bard. (Wow!)
  • If you were using a markdown fieldtype for the text field, it will add markdown: true to the Bard field.

Converting content fields to Bard

You may also convert your content field (the text below your YAML front-matter) into a Bard field by running the following command:

php please bardify:content

It will automate the following: - Go through any relevant content files and replace the content text with the field name of your choice. - If you were using a markdown fieldtype, it will add markdown: true to the Bard field.