I'm having trouble getting Prism working with the Remark transformer in Gatsby as described here:
The issue seems to be that Prism works off the <code> tag but Prismic outputs <pre> markdown. I set up an HTML Serializer to place a <code> tag with a language-js class inside the preformat tag per this:
I also had to add this Prism hook to maintain line breaks:
However white space is removed and also Prism isn't picking up the Javascript code, presumably because it needs raw text rather than (serialized) HTML.
I think what I need is for prismic-reactjs Elements to return raw text rather than HTML. Is this possible?
I take it I'm going about this the wrong way, but any insight would be appreciated. Or perhaps this is a question more for the Prism or Gatsby folks.
Welcome to Prismic community, I will try to help you on this.
I don’t think that will need to use an HTML serialiser, and you might need to use a dedicated structured text field in your custom type where you can only add a ‘pre’ tag.
Then in your project you will pass this field as text as shown here:
Great thanks that works. So the way to get text was just to add another field and have it render asText. Thanks!
Now I just need to figure out how to use slices to intersperse my fields with code. I take it I’ll need to manually add multiple fields to each document, e.g. if I have to embed two code blocks my code will end up looking like:
Happy to hear that the proposed solution was useful.
I think mean that want to create a sliceZone as “e.g.body” that contains the repeatable Rich Text “description”.
Basically, you use Slices like building blocks for you page, you would have a text slice and a code slice and intersperse them as you need in your document.
To learn more about Slices I can recommend you to have a look at this page as well as this video to learn how to use Slices.