syntax = "proto3";

package content;

message HugoConfig {
  string publish_dir = 1;
  string base_url = 2;
  string title = 3;
  int32 paginate = 4;
  repeated string theme = 5;
  bool enable_inline_shortcodes = 6;
  bool enable_robots_txt = 7;
  bool build_drafts = 8;
  bool build_future = 9;
  bool build_expired = 10;
  bool enable_emoji = 11;
  bool pygments_use_classes = 12;
  repeated string main_sections = 13;
  MinifyConfig minify = 14;
  map<string, LanguageConfig> languages = 15;
  map<string, RepeatedString> outputs = 16;
  ParamsConfig params = 17;
  MarkupConfig markup = 18;
  ServicesConfig services = 19;
}

message MinifyConfig {
  bool disable_xml = 1;
}

message LanguageConfig {
  string language_name = 1;
  int32 weight = 2;
  string title = 3;
  map<string, string> taxonomies = 4;
  map<string, RepeatedMenuItem> menu = 5;
  map<string, string> params = 6;
}

message MenuItem {
  string name = 1;
  string url = 2;
  int32 weight = 3;
}

message EditPostConfig {
  string url = 1;
  string text = 2;
  bool append_file_path = 3;
}

message AssetsConfig {
  bool disable_hljs = 1;
}

message MarkupConfig {
  GoldmarkConfig goldmark = 1;
  HighlightConfig highlight = 2;
}

message GoldmarkConfig {
  RendererConfig renderer = 1;
}

message RendererConfig {
  bool unsafe = 1;
}

message HighlightConfig {
  bool no_classes = 1;
}

message ServicesConfig {
  ServiceConfig instagram = 1;
  ServiceConfig twitter = 2;
}

message ServiceConfig {
  bool disable_inline_css = 1;
}

message RepeatedString {
  repeated string values = 1;
}

message RepeatedMenuItem {
  repeated MenuItem items = 1;
}

message ParamsConfig {
  string env = 1;
  string description = 2;
  string author = 3;
  string default_theme = 4;
  bool show_share_buttons = 5;
  bool show_reading_time = 6;
  bool display_full_lang_name = 7;
  bool show_post_nav_links = 8;
  bool show_bread_crumbs = 9;
  bool show_code_copy_buttons = 10;
  bool show_rss_button_in_section_term_list = 11;
  bool show_all_pages_in_archive = 12;
  bool show_page_nums = 13;
  bool show_toc = 14;
  repeated string images = 15;
  ProfileModeConfig profile_mode = 16;
  HomeInfoParamsConfig home_info_params = 17;
  repeated SocialIconConfig social_icons = 18;
  EditPostConfig edit_post = 19;
  AssetsConfig assets = 20;
}

message ProfileModeConfig {
  bool enabled = 1;
  string title = 2;
  string image_url = 3;
  string image_title = 4;
  repeated ButtonConfig buttons = 5;
}

message ButtonConfig {
  string name = 1;
  string url = 2;
}

message HomeInfoParamsConfig {
  string title = 1;
  string content = 2;
}

message SocialIconConfig {
  string name = 1;
  string title = 2;
  string url = 3;
}
