// Frontmatter Conversion
// Converts @md_parser.Frontmatter to Frontmatter
///|
/// Convert CST Frontmatter to Frontmatter
pub fn from_cst(fm : @md_parser.Frontmatter) -> Frontmatter {
// Use @md_fm utilities for extraction
let image = match @md_fm.get_string(fm, "image") {
Some(v) => Some(v)
None =>
match @md_fm.get_string(fm, "ogImage") {
Some(v) => Some(v)
None => @md_fm.get_string(fm, "og_image")
}
}
let og_type = match @md_fm.get_string(fm, "ogType") {
Some(v) => Some(v)
None => @md_fm.get_string(fm, "og_type")
}
let twitter_card = match @md_fm.get_string(fm, "twitterCard") {
Some(v) => Some(v)
None => @md_fm.get_string(fm, "twitter_card")
}
Frontmatter::{
title: @md_fm.get_string(fm, "title"),
description: @md_fm.get_string(fm, "description"),
layout: @md_fm.get_string(fm, "layout"),
sidebar: @md_fm.get_bool(fm, "sidebar").unwrap_or(true),
outline: None,
islands: @md_fm.get_list(fm, "islands"),
prev: None,
next: None,
image,
og_type,
twitter_card,
ssr: @md_fm.get_bool(fm, "ssr").unwrap_or(false),
renderer: None,
noindex: @md_fm.get_bool(fm, "noindex").unwrap_or(false),
revalidate: @md_fm.get_int(fm, "revalidate"),
date: @md_fm.get_string(fm, "date"),
author: @md_fm.get_string(fm, "author"),
tags: @md_fm.get_list(fm, "tags"),
draft: @md_fm.get_bool(fm, "draft").unwrap_or(false),
featured: @md_fm.get_bool(fm, "featured").unwrap_or(false),
cover_image: match @md_fm.get_string(fm, "cover_image") {
Some(v) => Some(v)
None => @md_fm.get_string(fm, "coverImage")
},
}
}