using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LunarSF.Md2FdConverter
{
    /// <summary>
    /// 表示 Markdown 文档被解析成的 C# 对象。
    /// </summary>
    public class MDocument
    {
        /// <summary>
        /// 表示文档标题。
        /// </summary>
        public string Title { get; set; } = "Document";

        /// <summary>
        /// 文档页眉文本。
        /// </summary>
        public string PageHeader { get; set; } = "";

        /// <summary>
        /// 文档页脚文本。
        /// </summary>
        public string PageFooter { get; set; } = "";

        /// <summary>
        /// 位于文档首行的文档完成程度文本(一个任务列表项文本行)。
        /// 注:当一个任务列表项文本行位于文件第一行时,它不被视为一般的任务列表项,而是被当作整个文档的完成状态行。
        /// </summary>
        public string ProcessText { get; set; } = "";

        /// <summary>
        /// 以分号开头的、不会被编译的注释。
        /// 注:这种注释用于对文档本身或其部分内容进行说明,不会被视为文档的内容。
        /// </summary>
        public List<string> DocumentComments { get; } = new List<string>();

        /// <summary>
        /// 文档的内容,由各个MBlock组成。MBlock可以是一个代码块/引用块/普通段落/列表/二维文字表/树型文字表/方块/自定义折叠区……。
        /// </summary>
        public List<MBlock> Content { get; } = new List<MBlock>();
    }
}