diff --git a/Epub/KoeBook.Epub/Services/ScrapingAozoraService.cs b/Epub/KoeBook.Epub/Services/ScrapingAozoraService.cs index 8da3b81..18c044b 100644 --- a/Epub/KoeBook.Epub/Services/ScrapingAozoraService.cs +++ b/Epub/KoeBook.Epub/Services/ScrapingAozoraService.cs @@ -449,19 +449,33 @@ private static string GetCardUrl(string url) return UrlBookToCard().Replace(url, "$1card$2$3"); } - private SplittedLineBuilder ParagraphLineBuilder = new SplittedLineBuilder(); - private SplittedLineBuilder ScriptLineLineBuilder = new SplittedLineBuilder(); - - private int HeadingId = 0; - private Dictionary Classes = new Dictionary(); + /// + /// class="main_text"なdiv要素の内容をに書き込む + /// + /// 書き込むEpubDocument + /// class = "main_text" なdiv要素 + internal void ProcessMainText(EpubDocument document, IHtmlDivElement mainText) + { + // 青空文庫の見出しのaタグのidの数値に対応 + int headingId = 0; + SplittedLineBuilder paragraphLineBuilder = new(); + SplittedLineBuilder scriptLineLineBuilder = new(); + // 作品中で使われるCSSスタイルを実現するために必要なclassの情報を保持する。 + // 例: + // 字下げに使われる class "jisage_1", "jisage_2", ..., "jisage_n"で、 n がいくつになるかは、その作品全体をチェックしないとわからないため、 + Dictionary classes = new(); + + //ProcessChildren(); する。 + } /// - /// ある要素のChildrenに応じた処理を行います。 + /// EpubDocumentに対してある要素に応じた処理を行う。 /// - /// 追加処理を行う対象となるEpubDocument + /// 処理対象のEpubDocument /// 処理を行う要素 - /// 適用される class のリスト - internal void ProcessChildren(EpubDocument document, IElement element, string classes) + /// 適用されるclassのリスト + /// + internal void ProcessChildren(EpubDocument document, IElement element, string appliedClasses, int headingId, SplittedLineBuilder paragraphLineBuilder, SplittedLineBuilder scriptLineLineBuilder, Dictionary classes) { } @@ -470,10 +484,10 @@ internal void ProcessChildren(EpubDocument document, IElement element, string cl /// に基づき、EpubDocument内で使用するクラスを生成する。 /// /// を変更するEpubDocument - void AddCssClasses(EpubDocument document) + void AddCssClasses(EpubDocument document, Dictionary classes) { (int min, int max) value = (0, 0); - if (Classes.TryGetValue("jisage", out value)) + if (classes.TryGetValue("jisage", out value)) { for (int i = value.min; i <= value.max; i++) { @@ -484,7 +498,7 @@ void AddCssClasses(EpubDocument document) ")); } } - if (Classes.TryGetValue("text_indent", out value)) + if (classes.TryGetValue("text_indent", out value)) { for (int i = value.min; i <= value.max; i++) { @@ -495,7 +509,7 @@ void AddCssClasses(EpubDocument document) ")); } } - if (Classes.TryGetValue("chitsuki", out value)) + if (classes.TryGetValue("chitsuki", out value)) { for (int i = value.min; i <= value.max; i++) {