     :tags,
     :url,
     :html,
+    :preview,
     :output
   ]
 
-  @metadata_keys [:title, :date, :raw_date, :tags, :url]
+  @metadata_keys [:title, :date, :raw_date, :preview, :tags, :url]
 
   @spec new(binary(), map(), binary(), map()) :: t()
   def new(path, header, html, proj) do

      title: header.title,
      tags: tags,
      html: html,
      raw_date: raw_date,
      date: date_str,
      url: Path.join(proj.base_url, filename),
      output: Path.join(proj.dest, filename)
    }
  end

  @spec to_fragment(t(), map()) :: Result.t(Fragment.t())

    datetime = header[:date]
    date_str = Timex.format!(datetime, proj.date_format)
    raw_date = datetime |> Timex.to_erl()
    preview = generate_preview(html, proj.preview_length)

    filename =
      path
