From bc0feb117096c7f78abf7bae3735741f7fb6db40 Mon Sep 17 00:00:00 2001 From: TakenPt Date: Tue, 23 Apr 2024 14:20:35 +0900 Subject: [PATCH] =?UTF-8?q?#23=20=E3=82=B9=E3=82=AF=E3=83=AC=E3=82=A4?= =?UTF-8?q?=E3=83=94=E3=83=B3=E3=82=B0=E4=B8=AD=E3=81=AE=E6=83=85=E5=A0=B1?= =?UTF-8?q?=E3=81=AE=E6=89=B1=E3=81=84=E6=96=B9=E3=81=AE=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/ScrapingAozoraService.cs | 40 +++++++++++++------ 1 file changed, 27 insertions(+), 13 deletions(-) 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++) {