All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.prismic.Fragments.scala Maven / Gradle / Ivy

The newest version!
package io.prismic

import scala.concurrent._
import scala.concurrent.ExecutionContext.Implicits.global
import scala.language.{ postfixOps, implicitConversions }
import scala.util._

import io.prismic.fragments._

trait HtmlSerializer {
  def apply(elt: Fragment.StructuredText.Element, content: String): Option[String]
}

object HtmlSerializer {
  import Fragment.StructuredText._

  def apply(f: PartialFunction[(Element, String), String]) = new HtmlSerializer {
    override def apply(elt: Element, content: String) =
      if (f.isDefinedAt((elt, content))) {
        Some(f.apply(elt, content))
      } else {
        None
      }
  }

  def empty = new HtmlSerializer {
    override def apply(elts: Element, content: String): Option[String] = None
  }

}

trait Fragment

object Fragment {

  @deprecated("Use io.prismic.fragments.Link", "1.3.3")
  type Link = io.prismic.fragments.Link

  @deprecated("Use io.prismic.fragments.WebLink", "1.3.3")
  type WebLink = io.prismic.fragments.WebLink
  @deprecated("Use io.prismic.fragments.WebLink", "1.3.3")
  val WebLink = io.prismic.fragments.WebLink

  @deprecated("Use io.prismic.fragments.FileLink", "1.3.3")
  type MediaLink = io.prismic.fragments.FileLink
  @deprecated("Use io.prismic.fragments.FileLink", "1.3.3")
  val MediaLink = io.prismic.fragments.FileLink

  @deprecated("Use io.prismic.fragments.DocumentLink", "1.3.3")
  type DocumentLink = io.prismic.fragments.DocumentLink
  @deprecated("Use io.prismic.fragments.DocumentLink", "1.3.3")
  val DocumentLink = io.prismic.fragments.DocumentLink

  // ------------------

  @deprecated("Use io.prismic.fragments.Text", "1.3.3")
  type Text = io.prismic.fragments.Text
  @deprecated("Use io.prismic.fragments.Text", "1.3.3")
  val Text = io.prismic.fragments.Text

  // ------------------

  @deprecated("Use io.prismic.fragments.Date", "1.3.3")
  type Date = io.prismic.fragments.Date
  @deprecated("Use io.prismic.fragments.Date", "1.3.3")
  val Date = io.prismic.fragments.Date

  @deprecated("Use io.prismic.fragments.Timestamp", "1.3.3")
  type Timestamp = io.prismic.fragments.Timestamp
  @deprecated("Use io.prismic.fragments.Timestamp", "1.3.3")
  val Timestamp = io.prismic.fragments.Timestamp

  // ------------------

  @deprecated("Use io.prismic.fragments.Number", "1.3.3")
  type Number = io.prismic.fragments.Number
  @deprecated("Use io.prismic.fragments.Number", "1.3.3")
  val Number = io.prismic.fragments.Number

  // ------------------

  @deprecated("Use io.prismic.fragments.Color", "1.3.3")
  type Color = io.prismic.fragments.Color
  @deprecated("Use io.prismic.fragments.Color", "1.3.3")
  val Color = io.prismic.fragments.Color

  // ------------------

  @deprecated("Use io.prismic.fragments.Embed", "1.3.3")
  type Embed = io.prismic.fragments.Embed
  @deprecated("Use io.prismic.fragments.Embed", "1.3.3")
  val Embed = io.prismic.fragments.Embed

  // ------------------

  @deprecated("Use io.prismic.fragments.GeoPoint", "1.3.3")
  type GeoPoint = io.prismic.fragments.GeoPoint
  @deprecated("Use io.prismic.fragments.GeoPoint", "1.3.3")
  val GeoPoint = io.prismic.fragments.GeoPoint

  // ------------------

  @deprecated("Use io.prismic.fragments.Image", "1.3.3")
  type Image = io.prismic.fragments.Image
  @deprecated("Use io.prismic.fragments.Image", "1.3.3")
  val Image = io.prismic.fragments.Image

  @deprecated("Use io.prismic.fragments.Group", "1.3.3")
  type Group = io.prismic.fragments.Group
  @deprecated("Use io.prismic.fragments.Group", "1.3.3")
  val Group = io.prismic.fragments.Group

  @deprecated("Use io.prismic.fragments.StructuredText", "1.3.3")
  type StructuredText = io.prismic.fragments.StructuredText
  @deprecated("Use io.prismic.fragments.StructuredText", "1.3.3")
  val StructuredText = io.prismic.fragments.StructuredText


  def getHtml(fragment: Fragment, linkResolver: DocumentLinkResolver): String = fragment match {
    case a: StructuredText => a.asHtml(linkResolver)
    case a: Number         => a.asHtml
    case a: Color          => a.asHtml
    case a: Text           => a.asHtml
    case a: Date           => a.asHtml
    case a: Timestamp      => a.asHtml
    case a: Embed          => a.asHtml()
    case a: Image          => a.asHtml
    case a: WebLink        => a.asHtml()
    case a: FileLink       => a.asHtml()
    case a: GeoPoint       => a.asHtml
    case a: DocumentLink   => a.asHtml(linkResolver)
    case a: Group          => a asHtml linkResolver
    case a: SliceZone      => a asHtml(linkResolver)
    case Separator         => Separator.asHtml
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy