// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto2";

package dom_distiller.proto;
option optimize_for = LITE_RUNTIME;
option java_package = "com.dom_distiller.proto";
option java_outer_classname = "DomDistillerProtos";

message DistilledContent {
  optional string html = 1;
}

message PaginationInfo {
  optional string next_page = 1;
  optional string prev_page = 2;
  optional string canonical_page = 3;
}

message MarkupArticle {
  optional string published_time = 1;
  optional string modified_time = 2;
  optional string expiration_time = 3;
  optional string section = 4;
  repeated string authors = 5;
}

message MarkupImage {
  optional string url = 1;
  optional string secure_url = 2;
  optional string type = 3;
  optional string caption = 4;
  optional int32 width = 5;
  optional int32 height = 6;
}

message MarkupInfo {
  optional string title = 1;
  optional string type = 2;
  optional string url = 3;
  optional string description = 4;
  optional string publisher = 5;
  optional string copyright = 6;
  optional string author = 7;
  optional MarkupArticle article = 8;
  repeated MarkupImage images = 9;
}

message DomDistillerResult {
  optional string title = 1;
  optional DistilledContent distilled_content = 2;
  optional PaginationInfo pagination_info = 3;
  repeated string image_urls = 4;
  optional MarkupInfo markup_info = 5;
}

message DomDistillerOptions {
  // Whether to extract only the text (or to include the containing html).
  optional bool extract_text_only = 1;

  // How much debug output to dump to window.console.
  // (0): Logs nothing
  // (1): Text Node data for each stage of processing
  // (2): (1) and some node visibility information
  // (3): (2) and extracted paging information
  optional int32 debug_level = 2;
}
