@@ -187,9 +187,9 @@ const rule: TextlintRuleModule<Options> = (context, options = {}) => {
187187 } ;
188188
189189 /**
190- * コロン(:)で終わる段落の直後に箇条書きが続くパターンを検出
190+ * 機械的な段落と箇条書きの組み合わせパターンを検出
191191 */
192- const detectColonListPattern = ( node : any ) => {
192+ const detectMechanicalListIntroPattern = ( node : any ) => {
193193 const children = node . children || [ ] ;
194194
195195 for ( let i = 0 ; i < children . length - 1 ; i ++ ) {
@@ -209,8 +209,24 @@ const rule: TextlintRuleModule<Options> = (context, options = {}) => {
209209 } ) ;
210210 const paragraphText = paragraphSource . toString ( ) ;
211211
212- // 「:」で終わる段落の後にリストが続く場合を検出
212+ // 機械的なパターンを検出
213+ let isDetected = false ;
214+ let message = "" ;
215+
216+ // パターン1: コロン(:、:)で終わる段落
213217 if ( / [ : : ] [ \s ] * $ / . test ( paragraphText . trim ( ) ) ) {
218+ isDetected = true ;
219+ message =
220+ "【構造化】コロン(:)で終わる文の直後の箇条書きは機械的な印象を与える可能性があります。「たとえば、次のような点があります。」のような導入文を使った自然な表現を検討してください。" ;
221+ }
222+ // パターン2: 「例えば。」「具体的には。」など、接続表現+句点で終わる段落
223+ else if ( / (?: 例 え ば | 具 体 的 に は | 詳 細 に は | 以 下 | 次 に | ま た ) 。 [ \s ] * $ / . test ( paragraphText . trim ( ) ) ) {
224+ isDetected = true ;
225+ message =
226+ "【構造化】接続表現と句点で終わる文の直後の箇条書きは機械的な印象を与える可能性があります。「たとえば、次のような点があります。」のような自然な導入文を検討してください。" ;
227+ }
228+
229+ if ( isDetected ) {
214230 // 許可パターンのチェック
215231 if ( allows . length > 0 ) {
216232 const matches = matchPatterns ( paragraphText , allows ) ;
@@ -223,8 +239,7 @@ const rule: TextlintRuleModule<Options> = (context, options = {}) => {
223239 hasDocumentIssues = true ;
224240
225241 report ( currentNode , {
226- message :
227- "【構造化】コロン(:)で終わる文の直後の箇条書きは機械的な印象を与える可能性があります。「たとえば、次のような点があります。」のような導入文を使った自然な表現を検討してください。"
242+ message : message
228243 } ) ;
229244 }
230245 }
@@ -240,7 +255,7 @@ const rule: TextlintRuleModule<Options> = (context, options = {}) => {
240255 }
241256
242257 // コロン + 箇条書きパターンの検出
243- detectColonListPattern ( node ) ;
258+ detectMechanicalListIntroPattern ( node ) ;
244259 // 将来的にここに他の文書レベルの構造化パターンを追加できます
245260 // 例:
246261 // detectExcessiveNestedLists(node);
0 commit comments