module Bamboo.Type.Config where
import Bamboo.Helper.PreludeEnv
import Bamboo.Type.Common
import Bamboo.Type.Extension
import Bamboo.Type.Reader
import Bamboo.Type.StaticWidget (StaticWidget)
import Bamboo.Type.Theme (ThemeConfig)
import Data.Default
data ConfigData =
BlogTitle
| BlogSubtitle
| HostName
| AuthorEmail
| PerPage
| Navigation
| Sidebar
| Footer
| Favicon
| AnalyticsAccountId
| Extensions
| Theme
| PostDateFormat
| CommentDateFormat
| UrlDateFormat
| UrlDateMatcher
| UrlTitleSubs
| UrlDateTitleSeperator
| Cut
| SummaryForRoot
| SummaryForTag
| SummaryForRss
| PicturePrefix
| NumberOfLatestPosts
| UseCache
| BambooUrl
| Js
| Css
deriving (Show)
data Config = Config
{
blog_title :: String
, blog_subtitle :: String
, host_name :: String
, author_email :: String
, per_page :: Int
, navigation :: [String]
, bamboo_url :: String
, default_reader :: Reader
, sidebar :: [StaticWidget]
, footer :: Maybe StaticWidget
, favicon :: String
, analytics_account_id :: String
, extensions :: [Extension]
, theme_config :: ThemeConfig
, post_date_format :: String
, comment_date_format :: String
, url_date_format :: String
, url_date_matcher :: String
, url_title_subs :: Assoc
, url_date_title_seperator :: String
, cut :: String
, summary_for_root :: Bool
, summary_for_tag :: Bool
, summary_for_rss :: Bool
, picture_prefix :: String
, number_of_latest_posts :: Int
, count_meta :: String
, use_cache :: Bool
, db_id :: String
, flat_id :: String
, post_id :: String
, config_id :: String
, tag_id :: String
, comment_id :: String
, sidebar_id :: String
, theme_id :: String
, config_file_id :: String
, album_id :: String
, image_id :: String
, public_id :: String
, static_id :: String
, topic_id :: String
, thumb_id :: String
, stat_id :: String
, cache_id :: String
}
deriving (Show)
instance Default Config where
def = Config
{
blog_title = def
, blog_subtitle = def
, host_name = def
, author_email = def
, per_page = 7
, navigation = def
, bamboo_url = bamboo_url_current
, default_reader = def
, sidebar = def
, footer = def
, favicon = def
, analytics_account_id = def
, extensions = [Comment, Search, Analytics]
, theme_config = def
, post_date_format = "%y-%m-%d"
, comment_date_format = "%y-%m-%d %T"
, url_date_format = "%y-%m-%d"
, url_date_matcher = "\\d{2}-\\d{2}-\\d{2}"
, url_title_subs = def
, url_date_title_seperator = " "
, cut = "✂-----"
, summary_for_root = True
, summary_for_tag = True
, summary_for_rss = False
, picture_prefix = "\\d+-"
, number_of_latest_posts = 15
, count_meta = "count.meta"
, use_cache = True
, db_id = "db"
, flat_id = "."
, post_id = "blog"
, config_id = "config"
, tag_id = "tag"
, comment_id = "comment"
, sidebar_id = "sidebar"
, theme_id = "theme"
, config_file_id = "site.txt"
, album_id = "album"
, image_id = "images"
, public_id = "public"
, static_id = "static"
, topic_id = "forum/post"
, thumb_id = "thumb"
, stat_id = "stat"
, cache_id = "cache"
}
where
bamboo_url_current = "http://github.com/nfjinjing/bamboo/tree/master"