public XHtmlConverter(string srcFile, string templateFile, ConvertOptions opt)
            : base(srcFile, templateFile, opt)
        {
            var doc = XDocument.Load(srcFile);
            var headerNodes = doc.Descendants().Where(e => (e.Name.LocalName == "h1") || (e.Name.LocalName == "h2"));
            var h1Cnt = 0;  //h1の個数・Identifierに使用する
            var h2Cnt = 0;  //h2の個数・Identifierに使用する

            foreach (var header in headerNodes)
            {
                var ha = new HeaderAnchor();
                var id = "";
                if (header.Name.LocalName == "h1")  //h1なら
                {
                    //ヘッダ情報を作成する
                    h1Cnt++;
                    id = "h1-" + h1Cnt.ToString();
                    ha = new HeaderAnchor(1, id, header.Value);
                }
                else    //h2なら
                {
                    //ヘッダ情報を作成する
                    h2Cnt++;
                    id = "h2-" + h2Cnt.ToString();
                    ha = new HeaderAnchor(2, id, header.Value);
                }
                headerAnchors.Add(ha);              //アンカーをリストに追加する
                header.SetAttributeValue("id", id);  //ノードにidを設定する
            }
            doc.Save(templateFile); //テンプレートファイルに上書きする

        }
Esempio n. 2
0
        public XHtmlConverter(string srcFile, string templateFile, ConvertOptions opt)
            : base(srcFile, templateFile, opt)
        {
            var doc         = XDocument.Load(srcFile);
            var headerNodes = doc.Descendants().Where(e => (e.Name.LocalName == "h1") || (e.Name.LocalName == "h2"));
            var h1Cnt       = 0; //h1の個数・Identifierに使用する
            var h2Cnt       = 0; //h2の個数・Identifierに使用する

            foreach (var header in headerNodes)
            {
                var ha = new HeaderAnchor();
                var id = "";
                if (header.Name.LocalName == "h1")  //h1なら
                {
                    //ヘッダ情報を作成する
                    h1Cnt++;
                    id = "h1-" + h1Cnt.ToString();
                    ha = new HeaderAnchor(1, id, header.Value);
                }
                else    //h2なら
                {
                    //ヘッダ情報を作成する
                    h2Cnt++;
                    id = "h2-" + h2Cnt.ToString();
                    ha = new HeaderAnchor(2, id, header.Value);
                }
                headerAnchors.Add(ha);              //アンカーをリストに追加する
                header.SetAttributeValue("id", id); //ノードにidを設定する
            }
            doc.Save(templateFile);                 //テンプレートファイルに上書きする
        }
Esempio n. 3
0
        //hタグ/pタグ処理を行う
        public override void Process()
        {
            var outLines = new List <string>();
            var h1Cnt    = 0; //h1の個数・Identifierに使用する
            var h2Cnt    = 0; //h2の個数・Identifierに使用する

            foreach (var line in lines)
            {
                //見出しか
                if (line.StartsWith("**") == true)      //H2
                {
                    var str = line.TrimStart('*');      //行頭の*を削除する

                    //ヘッダ情報を作成する
                    var id = "h2-" + h2Cnt.ToString();      //id=h2-*
                    var ha = new HeaderAnchor(2, id, str);
                    headerAnchors.Add(ha);

                    //タグをつけて帰す
                    var outline = "<h2 id=\"" + id + "\">" + str + "</h2>"; //<h2 id="h2-3">string</h2>
                    outLines.Add(outline);

                    h2Cnt++;
                }
                else if (line.StartsWith("*") == true)  //H1
                {
                    var str = line.TrimStart('*');      //行頭の*を削除する

                    //ヘッダ情報を作成する
                    var id = "h1-" + h1Cnt.ToString();      //id=h2-*
                    var ha = new HeaderAnchor(1, id, str);
                    headerAnchors.Add(ha);

                    //タグをつけて帰す
                    var outline = "<h1 id=\"" + id + "\">" + str + "</h1>"; //<h1 id="h1-3">string</h1>
                    outLines.Add(outline);

                    h1Cnt++;
                }
                else    //pタグ
                {
                    outLines.Add(AddPTagtoLine(line));
                }
            }
            lines = outLines;
        }
        //hタグ/pタグ処理を行う
        public override void Process()
        {
            var outLines = new List<string>();
            var h1Cnt = 0;  //h1の個数・Identifierに使用する
            var h2Cnt = 0;  //h2の個数・Identifierに使用する

            foreach (var line in lines)
            {
                //見出しか
                if (line.StartsWith("**") == true)      //H2
                {
                    var str = line.TrimStart('*');          //行頭の*を削除する
                    
                    //ヘッダ情報を作成する
                    var id = "h2-" + h2Cnt.ToString();      //id=h2-*
                    var ha = new HeaderAnchor(2, id, str);
                    headerAnchors.Add(ha);

                    //タグをつけて帰す
                    var outline = "<h2 id=\""+id+"\">"+str+"</h2>"; //<h2 id="h2-3">string</h2>
                    outLines.Add(outline);

                    h2Cnt++;
                }
                else if (line.StartsWith("*") == true)  //H1
                {
                    var str = line.TrimStart('*');          //行頭の*を削除する

                    //ヘッダ情報を作成する
                    var id = "h1-" + h1Cnt.ToString();      //id=h2-*
                    var ha = new HeaderAnchor(1,id,str);
                    headerAnchors.Add(ha);

                    //タグをつけて帰す
                    var outline = "<h1 id=\"" + id + "\">" + str + "</h1>"; //<h1 id="h1-3">string</h1>
                    outLines.Add(outline);

                    h1Cnt++;
                }
                else    //pタグ
                {
                    outLines.Add(AddPTagtoLine(line));
                }
            }
            lines = outLines;
        }