Browse Source

更新上下章节判定算法

visuddhinanda@gmail.com 3 years ago
parent
commit
2732b87306
1 changed files with 26 additions and 20 deletions
  1. 26 20
      app/Console/Commands/UpgradePaliText.php

+ 26 - 20
app/Console/Commands/UpgradePaliText.php

@@ -121,26 +121,32 @@ class UpgradePaliText extends Command
 						$length = $paragraph_count - $paragraph + 1;
 					}
 
-
-					$prev = -1;
-					if ($iPar > 0) {
-						for ($iPar1 = $iPar - 1; $iPar1 >= 0; $iPar1--) {
-							if ($title_data[$iPar1]["level"] == $curr_level) {
-								$prev = $title_data[$iPar1]["paragraph"];
-								break;
-							}
-						}
-					}
-
-					$next = -1;
-					if ($iPar < count($title_data) - 1) {
-						for ($iPar1 = $iPar + 1; $iPar1 < count($title_data); $iPar1++) {
-							if ($title_data[$iPar1]["level"] == $curr_level) {
-								$next = $title_data[$iPar1]["paragraph"];
-								break;
-							}
-						}
-					}
+                    /*
+                    上一个段落
+                    算法:查找上一个标题段落。而且该标题段落的下一个段落不是标题段落
+                    */
+                    $prev = -1;
+                    if ($iPar > 0) {
+                        for ($iPar1 = $iPar - 1; $iPar1 >= 0; $iPar1--) {
+                            if ($title_data[$iPar1]["level"] < 8 && $title_data[$iPar1+1]["level"]==100) {
+                                $prev = $title_data[$iPar1]["paragraph"];
+                                break;
+                            }
+                        }
+                    }
+                    /*
+                    下一个段落
+                    算法:查找下一个标题段落。而且该标题段落的下一个段落不是标题段落
+                    */
+                    $next = -1;
+                    if ($iPar < count($title_data) - 1) {
+                        for ($iPar1 = $iPar + 1; $iPar1 < count($title_data)-1; $iPar1++) {
+                            if ($title_data[$iPar1]["level"] <8 && $title_data[$iPar1+1]["level"]==100) {
+                                $next = $title_data[$iPar1]["paragraph"];
+                                break;
+                            }
+                        }
+                    }
 
 					$parent = -1;
 					if ($iPar > 0) {