Jelajahi Sumber

Merge branch 'laravel' of https://github.com/iapt-platform/mint into laravel

bhikkhu-kosalla-china 3 tahun lalu
induk
melakukan
3982aab6cc

+ 138 - 0
app/Console/Commands/InitCs6sentence.php

@@ -0,0 +1,138 @@
+<?php
+
+namespace App\Console\Commands;
+
+use Illuminate\Console\Command;
+use App\Models\PaliSentence;
+use App\Models\WbwTemplate;
+use App\Models\Sentence;
+use Illuminate\Support\Str;
+
+class InitCs6sentence extends Command
+{
+    /**
+     * The name and signature of the console command.
+     *
+     * @var string
+     */
+    protected $signature = 'init:cs6sentence {book?} {para?}';
+
+    /**
+     * The console command description.
+     *
+     * @var string
+     */
+    protected $description = '按照分句数据库,填充cs6的巴利原文句子';
+
+    /**
+     * Create a new command instance.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        parent::__construct();
+    }
+
+    /**
+     * Execute the console command.
+     *
+     * @return int
+     */
+    public function handle()
+    {
+		$start = time();
+		$pali = new PaliSentence;
+		if(!empty($this->argument('book'))){
+			$pali = $pali->where('book',$this->argument('book'));
+		}
+		if(!empty($this->argument('para'))){
+			$pali = $pali->where('paragraph',$this->argument('para'));
+		}
+		$bar = $this->output->createProgressBar($pali->count());
+		$pali = $pali->select('book','paragraph','word_begin','word_end')->cursor();
+		foreach ($pali as $value) {
+			# code...
+			$words = WbwTemplate::where("book",$value->book)
+								->where("paragraph",$value->paragraph)
+								->where("wid",">=",$value->word_begin)
+								->where("wid","<=",$value->word_end)
+								->orderBy('wid','asc')
+								->get();
+			$sent = '';
+			$boldStart = false;
+			$boldCount = 0;
+			foreach ($words as $word) {
+				# code...
+				if($word->style != "note" && $word->type != '.ctl.'){
+					if($word->style=='bld'){
+						if(!$boldStart){
+							#黑体字开始
+							$boldStart = true;
+							$sent .= ' **';
+						}
+					}else{
+						if($boldStart){
+							#黑体字结束
+							$boldStart = false;
+							$boldCount = 0;
+							$sent .= '**';
+						}
+					}
+					if($boldStart){
+						$boldCount++;
+					}
+					if(!empty($word->real) && $boldCount != 1){
+						#如果不是标点符号,在词的前面加空格 。第一个黑体字前不加空格
+						$sent .= " ";
+					}
+					
+					if(strpos($word->word,'{') >=0 ){
+						$paliWord = \str_replace("{","",$word->word) ;
+						$paliWord = \str_replace("}","**",$paliWord) ;
+					}else{
+						$paliWord = $word->word;
+					}
+					$sent .= $paliWord;
+				}
+			}
+			if($boldStart){
+				#句子结尾是黑体字 加黑体结束符号
+				$boldStart = false;
+				$sent .= '** ';
+			}
+			#将wikipali风格的引用 改为缅文风格
+			$sent = \str_replace('n’’’ ti','’’’nti',$sent);
+			$sent = \str_replace('n’’ ti','’’nti',$sent);
+			$sent = \str_replace('n’ ti','’nti',$sent);
+			$sent = \str_replace('**ti**','**ti',$sent);
+			$sent = \str_replace('‘ ','‘',$sent);
+			$sent = trim($sent);			
+			$snowId = app('snowflake')->id();
+			$newRow = Sentence::updateOrCreate(
+				[
+					"book_id" => $value->book,
+					"paragraph" => $value->paragraph,
+					"word_start" => $value->word_begin,
+					"word_end" => $value->word_end,
+					"channel_uid" => config("app.admin.cs6_channel"),
+				],
+				[
+					'id' =>$snowId,
+					'uid' =>Str::uuid(),
+					'editor_uid'=>config("app.admin.root_uuid"),
+					'content'=>trim($sent),
+					'strlen'=>mb_strlen($sent,"UTF-8"),
+					'status' => 30,
+					'create_time'=>time()*1000,
+					'modify_time'=>time()*1000,
+					'language'=>'en'
+				]
+				);
+			$bar->advance();
+		}
+		$bar->finish();
+		$this->info("finished ".(time()-$start)."s");
+        return 0;
+    }
+}

+ 1 - 0
app/Http/Controllers/DhammaTermController.php

@@ -6,6 +6,7 @@ use App\Models\DhammaTerm;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Cache;
 use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Str;
 
 class DhammaTermController extends Controller
 {

+ 182 - 26
app/Http/Controllers/SentPrController.php

@@ -1,10 +1,16 @@
 <?php
 
+
 namespace App\Http\Controllers;
 
 use App\Models\SentPr;
+use App\Models\Channel;
+use App\Models\PaliSentence;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Http;
+use Illuminate\Support\Facades\Log;
+
+require_once __DIR__.'/../../../public/app/ucenter/function.php';
 
 class SentPrController extends Controller
 {
@@ -29,32 +35,141 @@ class SentPrController extends Controller
         //
         if(!isset($_COOKIE['user_uid'])){
             return $this->error('not login');
-        }
-        
-        $data = $request->all();
-        if($data['channel'] == '7fea264d-7a26-40f8-bef7-bc95102760fb' && $data['book']==65 && $data['para']>2056 && $data['para']<2192){
-            $url = "https://oapi.dingtalk.com/robot/send?access_token=34143dbec80a8fc09c1cb5897a5639ee3a9a32ecfe31835ad29bf7013bdb9fdf";
-            $param = [
-            "actionCard"=> [
-                "title"=> "说慧地品", 
-                "text"=> " wikipali: 来自{$_COOKIE['user_uid']}的修改建议:{$data['text']}", 
-                "btnOrientation"=> "0", 
-                "singleTitle" => "详情",
-                "singleURL"=>"https://staging.wikipali.org/app/article/index.php?view=para&book={$data['book']}&par={$data['para']}&channal={$data['channel']}&display=sent&mode=edit"
-            ], 
-            "msgtype"=>"actionCard"
-            ];
-
-            $response = Http::post($url, $param);
-            if($response->successful()){
-                return $this->ok($response->body);
-            }else{
-                return $this->error($response->body);
-            }            
         }else{
-            return $this->ok();
-        }
+			$user_uid = $_COOKIE['user_uid'];
+		}
+
+        $data = $request->all();
+
+		
+		#查询是否存在 
+		#同样的内容只能提交一次
+		$exists = SentPr::where('book_id',$data['book'])
+						->where('paragraph',$data['para'])
+						->where('word_start',$data['begin'])
+						->where('word_end',$data['end'])
+						->where('content',$data['text'])
+						->where('channel_uid',$data['channel'])
+						->exists();
+		if(!$exists){
+			#不存在,新建
+			$new = new SentPr();
+			$new->id = app('snowflake')->id();
+			$new->book_id = $data['book'];
+			$new->paragraph = $data['para'];
+			$new->word_start = $data['begin'];
+			$new->word_end = $data['end'];
+			$new->channel_uid = $data['channel'];
+			$new->editor_uid = $user_uid;
+			$new->content = $data['text'];
+			$new->language = Channel::where('uid',$data['channel'])->value('lang');
+			$new->status = 1;//未处理状态
+			$new->strlen = mb_strlen($data['text'],"UTF-8");
+			$new->create_time = time()*1000;
+			$new->modify_time = time()*1000;
+			$new->save();			
+		}
+
+		
+		$robotMessageOk=false;
+		$webHookMessage="";
+		if(app()->isLocal()==false)
+		{
+			/*
+			初译:e5bc5c97-a6fb-4ccb-b7df-be6dcfee9c43
+			模版:#用户名 就“##该句子巴利前20字符##”提出了这样的修改建议:“##PR内容前20字##”,欢迎大家[点击链接](句子/段落链接)前往查看并讨论。
+
+			问题集:8622ad73-deef-4525-8e8e-ba3f1462724e
+			模版:#用户名 就 “##该句子巴利前20字符##”有这样的疑问:“##PR内容前20字##”,欢迎大家[点击链接](句子/段落链接)参与讨论。
 
+			初步答疑:5ab653d7-1ae3-40b0-ae07-c3d530a2a8f8
+			模版:#用户名 就“##该句子巴利前20字符##”中的问题做了这样的回复:“##PR内容前20字##”,欢迎大家[点击链接](句子/段落链接)前往查看并讨论。
+
+			机器人地址:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=25dbd74f-c89c-40e5-8cbc-48b1ef7710b8
+
+			项目范围:
+			book65 par:829-1306
+			book67 par:759-1152
+			*/
+			$userinfo = new \UserInfo();
+
+			$username = $userinfo->getName($user_uid)['username'];
+			$palitext = PaliSentence::where('book',$data['book'])
+									->where('paragraph',$data['para'])
+									->where('word_begin',$data['begin'])
+									->where('word_end',$data['end'])
+									->value('text');
+			$palitext = mb_substr($palitext,0,20,"UTF-8");
+			$prtext = mb_substr($data['text'],0,20,"UTF-8");
+			$link = "https://www-hk.wikipali.org/app/article/index.php?view=para&book={$data['book']}&par={$data['para']}&begin={$data['begin']}&end={$data['end']}&channel={$data['channel']}&mode=edit";
+			Log::info("palitext:{$palitext} prtext = {$prtext} link={$link}");
+			if(($data['book']==65 && $data['para']>=829 && $data['para']<=1306) || ($data['book']== 67 && $data['para'] >= 759 && $data['para'] <= 1152)){
+				switch ($data['channel']) {
+					case 'e5bc5c97-a6fb-4ccb-b7df-be6dcfee9c43':
+						$strMessage = "{$username} 就“{$palitext}”提出了这样的修改建议:“{$prtext}”,欢迎大家[点击链接]({$link})前往查看并讨论。";
+						break;
+					case '8622ad73-deef-4525-8e8e-ba3f1462724e':
+						$strMessage = "{$username} 就“{$palitext}”有这样的疑问:“{$prtext}”,欢迎大家[点击链接]({$link})前往查看并讨论。";
+						break;
+					case '5ab653d7-1ae3-40b0-ae07-c3d530a2a8f8':
+						$strMessage = "{$username} 就“{$palitext}”中的问题做了这样的回复:“{$prtext}”,欢迎大家[点击链接]({$link})前往查看并讨论。";
+						break;
+					default:
+						$strMessage = "";
+						break;
+				}		
+				$url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=25dbd74f-c89c-40e5-8cbc-48b1ef7710b8";
+				/*
+				$param = [
+				"actionCard"=> [
+					"title"=> "修改建议", 
+					"text"=> " wikipali: 来自{$_COOKIE['user_uid']}的修改建议:{$data['text']}", 
+					"btnOrientation"=> "0", 
+					"singleTitle" => "详情",
+					"singleURL"=>"https://staging.wikipali.org/app/article/index.php?view=para&book={$data['book']}&par={$data['para']}&channal={$data['channel']}&display=sent&mode=edit"
+				], 
+				"msgtype"=>"actionCard"
+				];
+				*/
+				$param = [
+					"msgtype"=>"markdown",
+					"markdown"=> [
+						"content"=> $strMessage, 
+					], 
+					];
+				Log::info("message:{$strMessage}");
+				if(!empty($strMessage)){
+					$response = Http::post($url, $param);
+					if($response->successful()){
+						$robotMessageOk = true;
+						$webHookMessage = "消息发送成功";
+					}else{
+						$webHookMessage = "消息发送失败";
+						$robotMessageOk = false;
+					}         					
+				}else{
+					$webHookMessage = "channel不符";
+					$robotMessageOk = false;
+				}
+			}else{
+				$webHookMessage = "不在段落范围内";
+			}
+		}
+
+		#同时返回此句子pr数量
+		$info['book_id'] = $data['book'];
+		$info['paragraph'] = $data['para'];
+		$info['word_start'] = $data['begin'];
+		$info['word_end'] = $data['end'];
+		$info['channel_uid'] = $data['channel'];
+		$count = SentPr::where('book_id' , $data['book'])
+						->where('paragraph' , $data['para'])
+						->where('word_start' , $data['begin'])
+						->where('word_end' , $data['end'])
+						->where('channel_uid' , $data['channel'])
+						->count();
+		Log::info("count:{$count} webhook-ok={$robotMessageOk}");
+		return $this->ok(["new"=>$info,"count"=>$count,"webhook"=>["message"=>$webHookMessage,"ok"=>$robotMessageOk]]);
         
     }
 
@@ -79,16 +194,57 @@ class SentPrController extends Controller
     public function update(Request $request, SentPr $sentPr)
     {
         //
+		if(!isset($_COOKIE['user_uid'])){
+            return $this->error('not login');
+        }else{
+			$user_uid = $_COOKIE['user_uid'];
+		}
+		$sentPr = SentPr::where('id',$request->get('id'));
+		if($sentPr->value('editor_uid')==$user_uid){
+			$update = $sentPr->update([
+				"content"=>$request->get('text'),
+				"modify_time"=>time()*1000,
+			]);
+			if($update >= 0){
+				$data = SentPr::where('id',$request->get('id'))->first();
+				$data->id = sprintf("%d",$data->id);
+				return $this->ok($data);
+			}else{
+				return $this->error('没有更新');
+			}
+			
+		}else{
+			return $this->error('not power');
+		}
+
     }
 
     /**
      * Remove the specified resource from storage.
      *
-     * @param  \App\Models\SentPr  $sentPr
+     * @param  int $id
      * @return \Illuminate\Http\Response
      */
-    public function destroy(SentPr $sentPr)
+    public function destroy($id)
     {
         //
+		Log::info("user_uid=" .$_COOKIE['user_uid']);
+		$old = SentPr::where('id', $id)->first();
+		$result = SentPr::where('id', $id)
+							->where('editor_uid', $_COOKIE["user_uid"])
+							->delete();
+		Log::info("delete=" .$result);
+		if($result>0){
+					#同时返回此句子pr数量
+		$count = SentPr::where('book_id' , $old->book_id)
+						->where('paragraph' , $old->paragraph)
+						->where('word_start' , $old->word_start)
+						->where('word_end' , $old->word_end)
+						->where('channel_uid' , $old->channel_uid)
+						->count();
+			return $this->ok($count);
+		}else{
+			return $this->error('not power');
+		}
     }
 }

+ 3 - 2
app/Http/Middleware/EnableCrossRequestMiddleware.php

@@ -16,7 +16,7 @@ class EnableCrossRequestMiddleware
      */
     public function handle(Request $request, Closure $next)
     {
-                $response = $next($request);
+        $response = $next($request);
         $origin = $request->server('HTTP_ORIGIN') ? $request->server('HTTP_ORIGIN') : '';
         $allow_origin = [
             env("CROSS_REQUEST_ALLOW_ORIGIN",'http://localhost:8001'),
@@ -34,6 +34,7 @@ class EnableCrossRequestMiddleware
         转自链接:https://learnku.com/articles/6504/laravel-cross-domain-solution
         版权声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接。
         */
-        return $next($request);
+        //return $next($request);
+		return $response;
     }
 }

+ 3 - 0
app/Models/SentPr.php

@@ -8,4 +8,7 @@ use Illuminate\Database\Eloquent\Model;
 class SentPr extends Model
 {
     use HasFactory;
+	protected $casts = [
+		'id' => 'string'
+	];
 }

+ 1 - 0
app/Models/Sentence.php

@@ -8,4 +8,5 @@ use Illuminate\Database\Eloquent\Model;
 class Sentence extends Model
 {
     use HasFactory;
+	protected $fillable = ['id','uid','book_id','paragraph','word_start','word_end','channel_uid','editor_uid','content','strlen','status','create_time','modify_time','language'];
 }

+ 2 - 0
config/app.php

@@ -253,5 +253,7 @@ return [
 
 	'admin' => [
 		'root_uuid' => '6e12f8ea-ee4d-4e0f-a6b0-472f2d99a814',
+		'robot_uuid' => '6e12f8ea-ee4d-4e0f-a6b0-472f2d99a814',
+		'cs6_channel' => '1e4b926d-54d7-4932-b8a6-7cdc65abd992',
 	],
 ];

+ 11 - 0
public/app/article/article.js

@@ -700,4 +700,15 @@ function gotoPara(paragraph) {
 		url += "&direction=" + _direction;
 	}
 	location.assign(url);
+}
+
+function show_channel_detail_pannal(){
+	if($("#right_pannal").css("display")=="none"){
+		$("#right_pannal").show();
+		$(".contents_div").css("width","70%");
+	}else{
+		$("#right_pannal").hide();
+		$(".contents_div").css("width","100%");		
+	}
+
 }

+ 3 - 0
public/app/article/index.php

@@ -374,6 +374,9 @@ function set_toc_visible(isVisible){
 						<span></span>
 					</div>
 				</div>
+				<div>
+					<button id="btn_show_channel" onclick='show_channel_detail_pannal()'>Details</button>
+				</div>
 			</div>
 		</div>
 		<div id="article_title" class="term_word_head_pali"></div>

+ 4 - 0
public/app/article/mobile.css

@@ -96,4 +96,8 @@ note:hover .ref {
 }
 .nav_bnt{
 	width: 100%;
+}
+
+#btn_show_channel{
+	display:none;
 }

+ 2 - 0
public/app/globle/.gitignore

@@ -0,0 +1,2 @@
+*
+!.gitignore

+ 5 - 16
public/app/palicanon/category/defualt.json

@@ -238,7 +238,8 @@
 							{
 								"name":"Vimativinodanī",
 								"tag":["vinaya","ṭīkā","vimativinodanī"]
-							},{
+							},
+							{
 								"name":"Vinayavinicchayo",
 								"tag":["vinaya","ṭīkā","vinayavinicchaya"]
 							},
@@ -455,12 +456,8 @@
                         "tag":["añña","byākaraṇa ganthasaṅgaha","kaccāyanabyākaraṇa"]
                     },
                     {
-                        "name":"Saddanītippakaraṇaṃ (padamālā)",
-                        "tag":["añña","byākaraṇa ganthasaṅgaha","saddanītippakaraṇa","padamālā"]
-                    },
-                    {
-                        "name":"Saddanītippakaraṇaṃ (Dhātumālā)",
-                        "tag":["añña","byākaraṇa ganthasaṅgaha","saddanītippakaraṇa","dhātumālā"]
+                        "name":"Saddanītippakaraṇaṃ",
+                        "tag":["añña","byākaraṇa ganthasaṅgaha","saddanītippakaraṇa"]
                     },
                     {
                         "name":"Padarūpasiddhi",
@@ -482,18 +479,10 @@
                         "name":"Abhidhānappadīpikāpāṭha",
                         "tag":["añña","byākaraṇa ganthasaṅgaha","abhidhānappadīpikā"]
                     },
-                    {
-                        "name":"Abhidhānappadīpikāṭīkā",
-                        "tag":["añña","byākaraṇa ganthasaṅgaha","abhidhānappadīpikāṭīkā"]
-                    },
                     {
                         "name":"Subodhālaṅkārapāṭha",
                         "tag":["añña","byākaraṇa ganthasaṅgaha","subodhālaṅkāra"]
                     },
-                    {
-                        "name":"Subodhālaṅkāraṭīkā",
-                        "tag":["añña","byākaraṇa ganthasaṅgaha","subodhālaṅkāraṭīkā"]
-                    },
                     {
                         "name":"Bālāvatāra",
                         "tag":["añña","byākaraṇa ganthasaṅgaha","bālāvatāra"]
@@ -578,7 +567,7 @@
                     },
                     {
                         "name":"Dāṭhāvaṃsa",
-                        "tag":["añña","sihaḷa-ganthasaṅgaha","Dāṭhāvaṃsa"]
+                        "tag":["añña","sihaḷa-ganthasaṅgaha","dāṭhāvaṃsa"]
                     },
                     {
                         "name":"Dhātupāṭha vilāsiniyā",

+ 0 - 334
public/app/palicanon/index1.php

@@ -1,334 +0,0 @@
-<?PHP
-require_once "../pcdl/html_head.php";
-?>
-
-<body>
-    <script src="../palicanon/palicanon.js"></script>
-    <script src="../term/term.js"></script>
-
-<?php
-    require_once "../pcdl/head_bar.php";
-?>
-
-	<link type="text/css" rel="stylesheet" href="../palicanon/style.css" />
-	<link type="text/css" rel="stylesheet" href="../palicanon/style_mobile.css" media="screen and (max-width:800px)">
-
-
-    <script>
-        var tag_level = <?php echo file_get_contents("../public/book_tag/tag_list.json"); ?>;
-    </script>
-<?php
-//
-
-require_once "../config.php";
-require_once "../public/_pdo.php";
-require_once '../media/function.php';
-require_once '../public/function.php';
-?>
-
-<link href="../../node_modules/jquery.fancytree/dist/skin-win7/ui.fancytree.css" rel="stylesheet" type="text/css" class="skinswitcher">
-<script src="../tree/jquery.fancytree.js" type="text/javascript"></script>
-
-	<script src="../widget/like.js"></script>
-	<link type="text/css" rel="stylesheet" href="../widget/like.css"/>
-	<script src="../palicanon/chapter_channel.js"></script>
-	<link type="text/css" rel="stylesheet" href="../palicanon/loading.css"/>
-
-    <script src="router.js"></script>
-    <script src="test.js"></script>
-
-<style>
-
-
-</style>
-
-<?php
-    if(isset($_GET["view"])){
-        $_view = $_GET["view"];
-    }else{
-        $_view = "community";
-    }
-?>
-
-<div id='main_view' >
-    <div id='left-bar' >
-        <div id='left-bar-inner'>
-            <div class="filter submenu">
-                <div class="title submenu_title" style="flex;">
-                    <span>分类</span>
-                    <span>
-                        <select id="tag_category_index" onchange="TagCategoryIndexchange(this)"></select>
-                    </span>
-                </div>
-                <div class='inner' style='max-height: unset;'>
-                    <div id='tag-category' ></div>
-                </div>
-            </div>
-            <div class="filter submenu">
-                <div class="title submenu_title"><span>作者</span></div>
-                <div class='inner' id='filter-author' >
-                    <div  class="lds-ellipsis" ><div></div><div></div><div></div><div></div></div>
-                </div>
-            </div>
-        </div>
-    </div>
-    <div id='course_head_bar' >
-        <div class='index_inner '>
-            <div style='display:flex;justify-content: space-between;display:none;'>
-                <div> </div>
-                <div style=''>
-                    <select onchange='viewChanged(this)'>
-                        <option value='list'>列表</option>                    
-                        <option value='card'>卡片</option>
-                    </select>
-                </div>
-            </div>
-            <div>
-                <div class='main_menu' id = 'main_menu'>
-
-                </div>
-            </div>
-            <div id="main_tag"  style="display:none;">
-                <span tag="sutta" title="sutta"></span>
-                <span tag="vinaya"  title="vinaya"></span>
-                <span tag="abhidhamma" title="abhidhamma"></span>
-                <span tag="mūla" title="mūla"></span>
-                <span tag="aṭṭhakathā" title="aṭṭhakathā"></span>
-                <span tag="ṭīkā" title="ṭīkā"></span>
-                <span tag="añña" title="añña"></span>
-            </div>
-
-            <div id="select_bar" >
-                <div id="select_bar_home" onclick='categoryGoHome()'>
-                <span>
-                    <svg class='icon' style='fill: var(--box-bg-color1)'>
-                        <use xlink:href='../../node_modules/bootstrap-icons/bootstrap-icons.svg#house'>
-                    </svg>
-                </span>
-                <span>
-                    <svg class='icon' style='fill: var(--box-bg-color1)'>
-                        <use xlink:href='../../node_modules/bootstrap-icons/bootstrap-icons.svg#chevron-compact-right'>
-                    </svg>
-                </span>
-                </div>
-                <div id="channel_selected"></div>
-                <div id="tag_selected"></div>
-            </div>
-
-            <div id='palicanon-category'></div>
-
-            
-            <div id='filter_bar'>
-                <div id='filter_bar_left'></div>
-                <div id='filter_bar_right'>
-                    <button id='btn-filter' onclick="tag_list_slide_toggle(this)">
-                        <svg class='icon' style='fill: var(--box-bg-color1)'>
-                        <use xlink:href='../../node_modules/bootstrap-icons/bootstrap-icons.svg#filter'>
-                        </svg>
-                    </button>
-                </div>
-            </div>
-            <div>
-                <div id="tag_list" style='display:none;'>
-                    <div id="tag_list_head" style="display:flex;justify-content: space-between;border-bottom: 1px solid var(--border-line-color);">
-                        <div style='width:20em;'>
-                            
-                        </div>
-                        <div>
-                            <button id="btn-tag_list_close" onclick='close_tag_list()'>X</button>
-                        </div>
-                    </div>
-
-                    <div id='tag_list_inner'>
-                        <div id='tag_list_tag_div'>
-                            <h2>标签</h2>
-                            <div><input id="tag_input" type="input" placeholder="tag search" size="20"></div>
-                            <div level="0" class="tag_others"></div>
-                            <div level="1" class="tag_others"></div>
-                            <div level="2" class="tag_others"></div>
-                            <div level="3" class="tag_others"></div>
-                            <div level="4" class="tag_others"></div>
-                            <div level="5" class="tag_others"></div>
-                            <div level="100" class="tag_others"></div>
-                            <div level="8" class="tag_others"></div>
-                        </div>
-                        <div id='tag_list_setting_div'>
-                            <h2>设定</h2>
-                            <div class='inner' id='filter-setting' >
-                                <div class='settting-item'>
-                                    <span>语言</span>
-                                    <span>
-                                        <select id='setting_lang'>
-                                            <option value='auto'>自动</option>
-                                            <option value=''>全部</option>
-                                            <option value='zh'>中文</option>
-                                            <option value='en'>英文</option>
-                                        </select>
-                                    </span>
-                                </div>
-                                <div class='settting-item'>
-                                    <span>内容类型</span>
-                                    <span>
-                                        <select id='setting_channel_type'>
-                                            <option value=''>全部</option>
-                                            <option value='translation' selected >译文</option>
-                                            <option value='nissaya'>Nissaya</option>
-                                            <option value='commentray'>注疏</option>
-                                        </select>
-                                    </span>
-                                </div>
-                                <div class='settting-item'>
-                                    <span>完成度</span>
-                                    <span>
-                                        <select id='setting_progress'>
-                                            <option value='0.9'>90</option>
-                                            <option value='0.8'>80</option>
-                                            <option value='0.5'>50</option>
-                                            <option value='0.2'>20</option>
-                                        </select>
-                                    </span>
-                                </div>
-                                <div style='display:flex;justify-content: space-between;'><button>还原默认</button><button onclick="updateSetting()">应用</button></div>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-            </div>
-			<div id="index_div">
-				<div id='file_background'></div>
-				<div id = "file_list_div">
-					<div id='bread-crumbs'></div>
-					<div class='index_inner'>
-						<div id="chapter_shell" class="chapter_list" >
-							<div id="list_shell_1" class="show" level="1">
-								<ul id="list-1" class="grid" level="1" >
-								</ul>
-							</div>
-
-							<div id="list_shell_2" level="2">
-								<ul id="list-2" class="hidden" level="2"  >
-								</ul>
-							</div>
-
-							<div id="list_shell_3" level="3">
-								<ul id="list-3" class="hidden" level="3" >
-								</ul>
-							</div>
-
-							<div id="list_shell_4" level="4">
-								<ul id="list-4" class="hidden" level="4" >
-								</ul>
-							</div>
-
-							<div id="list_shell_5" level="5">
-								<ul id="list-5" class="hidden" level="5" >
-								</ul>
-							</div>
-
-							<div id="list_shell_6" level="6">
-								<ul id="list-6" class="hidden" level="6" >
-								</ul>
-							</div>
-
-							<div id="list_shell_7" level="7">
-								<ul id="list-7" class="hidden" level="7" >
-								</ul>
-							</div>
-
-							<div id="list_shell_8" level="8">
-								<ul id="list-8" class="hidden" level="8" >
-								</ul>
-							</div>
-
-						</div>
-					</div>
-				</div>
-			</div>
-        </div>
-    </div>
-    <div style="flex:2;">
-    <div class='bangdan' id = "user_recent">
-        <div class='title'>最近阅读</div>
-        <div class='list'>
-            <div class="lds-ellipsis" ><div></div><div></div><div></div><div></div></div>
-        </div>
-    </div>
-    <div class='bangdan'>
-        <div class='title'>求助</div>
-        <div class='list'>
-            <ul>
-                <li>zuixin-1</li>
-            </ul>
-        </div>
-    </div>
-    <div class='bangdan'>
-        <div class='title'>社区推荐</div>
-        <div class='list'>
-            <ul>
-                <li>zuixin-1</li>
-            </ul>
-        </div>
-    </div>
-    <div class='bangdan' id='contribution'>
-        <div class='title'>月度贡献</div>
-        <div class='list'>
-            <div class="lds-ellipsis" ><div></div><div></div><div></div><div></div></div>
-        </div>
-    </div>
-    </div>
-</div>
-
-
-
-    <script>
-        $(document).ready(function() {
-            
-            let indexFilename = localStorage.getItem('palicanon_tag_category');
-            if(!indexFilename){
-                indexFilename = "defualt";
-            }
-            loadTagCategory(indexFilename);
-            loadTagCategoryIndex();
-            loadFilterSetting();//载入上次的过滤器配置
-            LoadAllLanguage();
-            <?php
-            if(isset($_GET["view"])){
-                echo "_view = '{$_GET["view"]}';";
-            }else{
-                echo "_view = 'community';";
-                echo "updataHistory();";
-            }
-
-            if(isset($_GET["tag"])){
-                echo "_tags = '{$_GET["tag"]}';";
-            }
-            if(isset($_GET["channel"])){
-                echo "_channel = '{$_GET["channel"]}';";
-            }
-            
-            switch ($_view) {
-                case 'community':
-                    //echo "community_onload();";
-                    break;
-                case 'category':
-                    //echo "palicanon_onload();";
-                    break;
-                case 'my';
-                default:
-                    # code...
-                    break;
-            }
-            ?>
-            list_tag = _tags.split(',');
-            refresh_selected_tag();
-            ReanderMainMenu();
-            updateFirstListView();
-            //载入用户最近的阅读列表
-            loadUserRecent();
-            loadContribution();
-            
-        });
-    </script>
-    <?php
-include "../pcdl/html_foot.php";
-?>

+ 7 - 2
public/app/palicanon/style.css

@@ -538,6 +538,8 @@ span.channel {
 }
 #palicanon-category{
     display:block;
+	border: 1px solid var(--border-line-color);
+    border-radius: 20px;
 }
 
 .community #palicanon-category{
@@ -546,14 +548,17 @@ span.channel {
 
 #palicanon-category>.chapter_list {
     flex-direction: column;
+	margin: 0;
 }
 
 #palicanon-category li{
     display: flex;
-    padding: 5px 0;
+    padding: 10px 16px;
     border-bottom: 1px solid var(--border-line-color);
 }
-
+#palicanon-category li:last-child{
+	border-bottom:none;
+}
 #palicanon-category .chapter_list .title .title_1 {
     width: unset;
 }

+ 1 - 0
public/app/public/lang/default.json

@@ -662,6 +662,7 @@
 		"master_copy": "pāli",
 		"nissaya": "nissaya",
 		"show_this_para_only": "show this paragraph only",
+		"original_text":"original text",
 		"": ""
 	},
 	"grammastr": [

+ 1 - 0
public/app/public/lang/en.json

@@ -661,6 +661,7 @@
 		"master_copy": "pāli",
 		"nissaya": "nissaya",
 		"show_this_para_only": "show this paragraph only",
+		"original_text":"original text",
 		"": ""
 	},
 	"grammastr": [

+ 1 - 0
public/app/public/lang/my.json

@@ -643,6 +643,7 @@
 		"master_copy": "ပါလိ",
 		"nissaya": "နိဿယ",
 		"show_this_para_only": "show this paragraph only",
+		"original_text":"original text",
 		"": ""
 	},
 	"grammastr": [

+ 1 - 0
public/app/public/lang/si.json

@@ -666,6 +666,7 @@
 		"master_copy": "පාලි",
 		"nissaya": "සන‍්න‍ය",
 		"show_this_para_only": "show this paragraph only",
+		"original_text":"original text",
 		"": ""
 	},
 	"grammastr": [

+ 1 - 0
public/app/public/lang/zh-cn.json

@@ -664,6 +664,7 @@
 		"master_copy": "巴利底本",
 		"nissaya": "依词释",
 		"show_this_para_only": "仅显示此段",
+		"original_text":"原文",
 		"": ""
 	},
 	"grammastr": [

+ 1 - 0
public/app/public/lang/zh-tw.json

@@ -663,6 +663,7 @@
 		"master_copy": "巴利底本",
 		"nissaya": "依詞釋",
 		"show_this_para_only": "僅顯示此段",
+		"original_text":"原文",
 		"": ""
 	},
 	"grammastr": [

+ 306 - 30
public/app/term/note.js

@@ -14,6 +14,13 @@ var MAX_NOTE_NEST = 2;
 
 var gBuildinDictIsOpen = false;
 
+/*
+译文提交方式
+update 修改
+pr 修改建议
+*/
+var _edit_mode = "update"; 
+
 var note_renderer = new marked.Renderer();
 note_renderer.code = function(code, language) {
     if (language == "mermaid") return '<pre class="mermaid">' + code + "</pre>";
@@ -84,9 +91,17 @@ function note_sent_edit_dlg_init() {
 function note_init(input,channel="",editor="",lang="en") {
 	if (input) {
 		let output = "<div>";
-		//output += marked(input);
-		output += marked(term_std_str_to_tran(input, channel, editor, lang), { renderer: note_renderer });
-
+		/*
+		 * **[[术语]]** marked不会渲染成黑体
+		 * 所以要在渲染markdown前先把[[]]两边加中文引号
+		 *  在渲染后再去掉中文引号
+		 */
+		let newText = input.replace(/\[\[/g,'“[[');
+		newText = newText.replace(/\]\]/g,']]”');
+		let markdown = marked(newText, { renderer: note_renderer });
+		markdown = markdown.replace(/“\[\[/g,'[[');
+		markdown = markdown.replace(/\]\]”/g,']]');
+		output += term_std_str_to_tran(markdown, channel, editor, lang);
 		output += "</div>";
 
 		let newString = output.replace(/\{\{/g, '<span class="note_shell"><note style="" info="');
@@ -818,6 +833,23 @@ function note_json_html(in_json) {
 	output += "<span class='other_tran_num'></span>";
 	output += "</span>";
 
+    //分割线
+	output += "<span class='separate_line'></span>";
+
+	//巴利原文
+	output += "<span class='other_bar'  sent='"+sent_id+"' channel_type='original' >";
+	output +=
+		"<span class='other_tran_span original' title='原文" +
+		gLocal.gui.vannana +
+		"'>";
+	output += "<svg class='icon' style='fill: var(--box-bg-color1)'>";
+	output += "<use xlink:href='../../node_modules/bootstrap-icons/bootstrap-icons.svg#file-ppt'>";
+	output += "</svg>" ;
+	output += gLocal.gui.original_text +
+		"</span>";
+	output += "<span class='other_tran_num'></span>";
+	output += "</span>";
+
     //分割线
 	output += "<span class='separate_line'></span>";
 
@@ -885,7 +917,7 @@ function sent_tran_set_edit_mode(obj, isEditMode) {
 	}
 }
 
-function sent_tran_edit(obj) {
+function sent_tran_edit(obj,edit_mode) {
 	let jqObj = $(obj);
 	while (!jqObj.hasClass("sent_tran")) {
 		jqObj = jqObj.parent();
@@ -893,6 +925,7 @@ function sent_tran_edit(obj) {
 			return;
 		}
 	}
+	_edit_mode = edit_mode;
 	if (jqObj.hasClass("edit_mode")) {
 		jqObj.removeClass("edit_mode");
 	} else {
@@ -948,7 +981,7 @@ var term_filterd_data=[];
 var term_input_text ;
 var term_input="";
 
-function TermRenderSentTranTextarea(text,dbId,sentId,channelId,isPr){
+function TermRenderSentTranTextarea(text,dbId,sentId,channelId,isPr,channel_type){
 	let html="";
 	html += '<div class="text_input" >';
 	html += '<div class="menu"></div>';
@@ -958,6 +991,7 @@ function TermRenderSentTranTextarea(text,dbId,sentId,channelId,isPr){
 	html += " dbid='" + dbId + "' ";
 	html += "sid='" + sentId + "' ";
 	html += "channel='" + channelId + "' ";
+	html += "channel_type='" + channel_type + "' ";
 	if (typeof isPr != "undefined" && isPr == true) {
 		html += ' is_pr="true" "';
 	} else {
@@ -1021,6 +1055,18 @@ function render_one_sent_tran_a(iterator, diff = false) {
 			//note_init处理句子链接
             if(iterator.type=='nissaya' || iterator.channalinfo.type=='nissaya'){
                 tranText = renderNissayaPreview(iterator.text);
+			}else if(iterator.type=='original' || iterator.channalinfo.type=='original'){
+				//原文需要按照语言设定转码
+				tranText = iterator.text;
+				switch (getCookie('language')) {
+					case 'my':
+						//缅文
+						tranText = roman_to_my(iterator.text);
+						break;
+					default:
+						tranText = iterator.text;
+						break;
+				}
             }else{
                 tranText = iterator.text;
             }
@@ -1049,9 +1095,9 @@ function render_one_sent_tran_a(iterator, diff = false) {
 		if (typeof iterator.is_pr_editor != "undefined" && iterator.is_pr_editor == true) {
 			//提交人
 			//修改按钮
-			html += render_icon_button("ic_mode_edit", "sent_tran_edit(this)", gLocal.gui.modify);
+			html += render_icon_button("ic_mode_edit", "sent_tran_edit(this,'update')", gLocal.gui.modify);
 			//删除按钮
-			html += render_icon_button("ic_delete", "sent_pr_del(this)", gLocal.gui.delete);
+			html += render_icon_button("ic_delete", "note_pr_delete(this)", gLocal.gui.delete);
 		} else {
 			//非提交人
 			if (parseInt(iterator.mypower) >= 20) {
@@ -1069,9 +1115,10 @@ function render_one_sent_tran_a(iterator, diff = false) {
 		//非pr列表里的句子
 		//编辑按钮
 		if (parseInt(iterator.mypower) < 20) {
-			html += render_icon_button("my_idea", "sent_tran_edit(this)", gLocal.gui.suggest);
+			html += render_icon_button("my_idea", "sent_tran_edit(this,'pr')", gLocal.gui.suggest);
 		} else {
-			html += render_icon_button("ic_mode_edit", "sent_tran_edit(this)", gLocal.gui.edit);
+			html += render_icon_button("ic_mode_edit", "sent_tran_edit(this,'update')", gLocal.gui.edit);
+			html += render_icon_button("my_idea", "sent_tran_edit(this,'pr')", gLocal.gui.suggest);
 		}
 
 		//推送按钮
@@ -1201,7 +1248,24 @@ function render_one_sent_tran_a(iterator, diff = false) {
 	html += '<div class="input">';
 
 	//输入框
-	html += TermRenderSentTranTextarea(iterator.text,iterator.id,sid,iterator.channal,iterator.is_pr);
+	let editText = iterator.text;
+	if(iterator.type=='original' || iterator.channalinfo.type=='original'){
+		//原文需要按照语言设定转码
+		editText = iterator.text;
+		switch (getCookie('language')) {
+			case 'my':
+				//缅文
+				editText = roman_to_my(iterator.text);
+				break;
+		}
+	}
+	let channel_type='';
+	if(iterator.type){
+		channel_type = iterator.type;
+	}else if(iterator.channalinfo.type){
+		channel_type = iterator.channalinfo.type;
+	}
+	html += TermRenderSentTranTextarea(editText,iterator.id,sid,iterator.channal,iterator.is_pr,channel_type);
 
 
 	html += "</div>";
@@ -1263,18 +1327,11 @@ function render_one_sent_tran_a(iterator, diff = false) {
 
 	html += "</div>"; //end of foot bar
 	html += '<ul class="tag_list">';
+	html += "<li class='pr' onclick=\"note_pr_show('" + iterator.channal + "','" + sid + "')\">";	
 	if (iterator.pr_all && parseInt(iterator.pr_all) > 0) {
-		html +=
-			"<li onclick=\"note_pr_show('" +
-			iterator.channal +
-			"','" +
-			sid +
-			"')\"><span class='icon'>✋</span><span class='num'>" +
-			iterator.pr_new +
-			"/" +
-			iterator.pr_all +
-			"</span></li>";
+		html += render_pr_number(iterator.pr_new,iterator.pr_all);
 	}
+	html += "</li>";
 	html += "</ul>";
 
 	html += "</div>";
@@ -1479,6 +1536,14 @@ function myEndingTooltip(inStr){
     }
     return inStr;
 }
+//渲染pr按钮里面的数字
+function render_pr_number(pr_new,pr_all){
+	let html = "";
+	if(pr_all > 0){
+		html = "<span class='icon'>✋</span><span class='num'>" + pr_new + "/" + pr_all + "</span>";
+	}
+ return html;	
+}
 function tran_sent_textarea_event_init() {
 	let textarea = document.querySelectorAll(".tran_sent_textarea");
 	for (let iterator of textarea) {
@@ -1938,11 +2003,16 @@ function tran_sent_save(obj) {
 		let textarea = $(sentDiv).children('.sent_tran_inner').first().children('.body').first().children('.edit').find(".tran_sent_textarea").first();
 		//let textarea = $(sentDiv).children().find(".tran_sent_textarea").first();
 		let isPr = $(textarea).attr("is_pr");
-		if (isPr == "true") {
-			note_pr_save(textarea);
-		} else {
-			note_sent_save_a(textarea);
+		if(isPr=='true'){
+			note_pr_update(textarea);
+		}else{
+			if (_edit_mode == "pr" ) {
+				note_pr_create(textarea);
+			} else {
+				note_sent_save_a(textarea);
+			}
 		}
+
 		sent_tran_set_edit_mode(textarea, false);
 	} else {
 		console.error("sent div not found");
@@ -1950,8 +2020,11 @@ function tran_sent_save(obj) {
 }
 
 //保存pr句子 新
-function note_pr_save(obj) {
+function note_pr_create(obj) {
+	console.log("note_pr_create");
+
 	let id = $(obj).attr("dbid");
+	let channel_type = $(obj).attr("channel_type");
 	let sid = $(obj).attr("sid").split("-");
 	let book = sid[0];
 	let para = sid[1];
@@ -1960,8 +2033,19 @@ function note_pr_save(obj) {
 	let channel = $(obj).attr("channel");
 	let text = $(obj).val();
 	let sent_tran_div = find_sent_tran_div(obj);
+
+	if(channel_type=="original"){
+		//原文需要按照语言设定转码
+		switch (getCookie('language')) {
+			case 'my':
+				//缅文
+				text = my_to_roman(text);
+				break;
+		}
+	}
+
 	$.post(
-		"../usent/pr_post.php",
+		"/api/v2/sentpr",
 		{
 			id: id,
 			book: book,
@@ -1971,7 +2055,7 @@ function note_pr_save(obj) {
 			channel: channel,
 			text: text,
 		},
-		sent_save_callback
+		pr_create_callback
 	);
 
 
@@ -1980,9 +2064,88 @@ function note_pr_save(obj) {
 	}
 }
 
+//修改pr句子
+function note_pr_update(obj) {
+	console.log("note_pr_update ");
+
+	let id = $(obj).attr("dbid");
+	let channel_type = $(obj).attr("channel_type");
+
+	let text = $(obj).val();
+	let sent_tran_div = find_sent_tran_div(obj);
+
+	if(channel_type=="original"){
+		//原文需要按照语言设定转码
+		switch (getCookie('language')) {
+			case 'my':
+				//缅文
+				text = my_to_roman(text);
+				break;
+		}
+	}
+    fetch('/api/v2/sentpr/'+id,{
+        method: 'PUT',
+        credentials: 'same-origin',
+        headers: {
+            'Content-Type': 'application/json'
+        },
+        body: JSON.stringify({
+			id: id,
+			text: text,
+		})
+    })
+  .then(response => response.json())
+  .then(function(data){
+	pr_update_callback(data);
+  });
+
+	if (sent_tran_div) {
+		$(sent_tran_div).addClass("loading");
+	}
+}
+//修改pr句子
+function note_pr_delete(obj) {
+	if(!confirm("要删除此修改建议吗?此操作无法恢复。")){
+		return;
+	}
+
+	let sent_tran_div = find_sent_tran_div(obj);
+	let id = sent_tran_div.attr("dbid");
+
+    fetch('/api/v2/sentpr/'+id,{
+        method: 'DELETE',
+        credentials: 'same-origin',
+        headers: {
+            'Content-Type': 'application/json'
+        },
+        body: JSON.stringify({
+			id: id,
+		})
+    })
+  .then(response => response.json())
+  .then(function(data){
+	console.log("note_pr_delete",data);
+	if(data.ok){
+		let sent_tran_parent = find_sent_tran_div(sent_tran_div.parent());
+		sent_tran_parent.find(".tag_list").first().children(".pr").first().html(render_pr_number(1,data.data));
+
+		sent_tran_div.removeClass("loading");
+		sent_tran_div.parent().html("");
+		ntf_show("删除成功");
+	}
+  });
+
+	if (sent_tran_div) {
+		$(sent_tran_div).addClass("loading");
+	}
+}
+
 //保存译文句子 新
 function note_sent_save_a(obj) {
+	console.log("note_sent_save_a");
+
 	let id = $(obj).attr("dbid");
+	let channel_type = $(obj).attr("channel_type");
 	let sid = $(obj).attr("sid").split("-");
 	let book = sid[0];
 	let para = sid[1];
@@ -1992,6 +2155,16 @@ function note_sent_save_a(obj) {
 	let text = $(obj).val();
 	let sent_tran_div = find_sent_tran_div(obj);
 
+	if(channel_type=="original"){
+		//原文需要按照语言设定转码
+		switch (getCookie('language')) {
+			case 'my':
+				//缅文
+				text = my_to_roman(text);
+				break;
+		}
+	}
+
 	$.ajaxSetup({
 		timeout: 5000,
 	});
@@ -2105,9 +2278,11 @@ function sent_save_callback(data) {
 					}
                     switch (thisChannel.type) {
                         case 'nissaya':
-                            divPreview.html(
-                                "<div class='nissaya'>"+note_init(renderNissayaPreview(result.text), result.channal, result.editor, result.lang)+"</div>"
-                                );
+							let nissayaHtml = "";
+							nissayaHtml += "<div class='nissaya'>";
+							nissayaHtml += note_init(renderNissayaPreview(result.text), result.channal, result.editor, result.lang);
+							nissayaHtml += "</div>";
+                            divPreview.html(nissayaHtml);
                             break;
                         case 'commentary':
                             divPreview.html(
@@ -2115,6 +2290,13 @@ function sent_save_callback(data) {
                             );
                             note_refresh_new();
                         break;
+						case 'original':
+							switch (getCookie('language')) {
+								case 'my':
+									//缅文
+									result.text = roman_to_my(result.text);
+									break;
+							}
                         default:
                             divPreview.html(
                                 note_init(result.text, result.channal, result.editor, result.lang)
@@ -2135,6 +2317,98 @@ function sent_save_callback(data) {
 	}
 }
 
+function pr_create_callback(data) {
+	let response;
+	if(typeof data=="string"){
+		try {
+			response = JSON.parse(data);
+		} catch (e) {
+			alert(e.message);
+			console.error('pr_create_callback',data);
+			return;
+		}			
+		
+	}else{
+		response = data;
+	}
+
+	
+	if (!response.ok) {
+		ntf_show("修改建议提交失败");
+		console.log("pr_create_callback", response.message);
+		return;
+	}
+	let result = response.data.new;
+	{
+		let sid = result.book_id + "-" + result.paragraph + "-" + result.word_start + "-" + result.word_end;
+
+		let sent_tran_div = $(
+			".sent_tran[channel='" + result.channel_uid + "'][sid='" + sid + "']"
+		);
+		if (sent_tran_div) {
+			sent_tran_div.removeClass("loading");
+			sent_tran_div.find(".tag_list").first().children(".pr").first().html(render_pr_number(1,response.data.count));
+		}
+		
+		ntf_show("成功提交修改建议");
+	}
+}
+
+function pr_update_callback(data) {
+	let response;
+	if(typeof data=="string"){
+		try {
+			response = JSON.parse(data);
+		} catch (e) {
+			alert(e.message);
+			console.error('pr_create_callback',data);
+			return;
+		}			
+		
+	}else{
+		response = data;
+	}
+
+	
+	if (!response.ok) {
+		ntf_show("修改建议更新失败");
+		console.log("pr_update_callback", response.message);
+		return;
+	}
+	let result = response.data;
+	{
+		let sid = result.book_id + "-" + result.paragraph + "-" + result.word_start + "-" + result.word_end;
+
+		let sent_tran_div = $(
+			".sent_tran[dbid='" + result.id + "']"
+		);
+		if (sent_tran_div) {
+			sent_tran_div.removeClass("loading");
+			let orgText = "";
+			for (const oneSent of _arrData) {
+				if (
+					oneSent.book == result.book_id &&
+					oneSent.para == result.paragraph &&
+					oneSent.begin == result.word_start &&
+					oneSent.end == result.word_end
+				) {
+					for (const tran of oneSent.translation) {
+						if (tran.channal == result.channel_uid) {
+							orgText = tran.text;
+							break;
+						}
+					}
+					break;
+				}
+			}
+			let tranText = str_diff(orgText, result.content);
+			sent_tran_div.find(".preview").html(tranText);
+		}
+		
+		ntf_show("成功更新修改建议");
+	}
+}
+
 //保存译文句子
 function note_sent_save() {
 	let id = $("#edit_dialog_text").attr("sent_id");
@@ -2391,7 +2665,9 @@ function note_get_pr(channel, id) {
 			if (result.length > 0) {
 				let html = "<div class='compact pr'>";
 				for (const iterator of result) {
+					html += "<div class='pr_shell'>";
 					html += render_one_sent_tran_a(iterator, true);
+					html += "</div>";
 				}
 				html += "</div>";
 				$(".sent_tran[channel='" + channel + "'][sid='" + id + "']")

+ 16 - 12
public/app/term/term.css

@@ -737,7 +737,7 @@ pw {
 }
 
 .sent_tran_inner:hover > .tool_bar > .right {
-	/*display: block;*/
+	display: block;
 }
 .list_with_head:hover > .tool_bar > .right {
 	display: block;
@@ -804,17 +804,7 @@ pw {
 .pop_menu {
 	display: flex;
 }
-.tag_list {
-	display: flex;
-	list-style-type: none;
-}
-.tag_list li {
-	border-radius: 6px;
-	margin-right: 5px;
-	background-color: var(--bookx);
-	padding: 2px 5px;
-	cursor: pointer;
-}
+
 li.active {
 	background-color: var(--booka);
 }
@@ -977,6 +967,20 @@ span.sent_tran {
 	list-style-type: unset;
 	margin-left: 1em;
 }
+
+.tag_list {
+	display: flex;
+	list-style-type: none;
+}
+.tag_list li {
+	border-radius: 6px;
+	margin-right: 5px;
+	background-color: var(--bookx);
+	padding: 2px 5px;
+	cursor: pointer;
+	list-style: none;
+}
+
 .icon_sent_status {
 	display: none;
 	width: 22px;

+ 7 - 1
public/app/usent/function.php

@@ -88,6 +88,11 @@ class SentPr{
             $stmt->execute(array($book,$para,$begin,$end,$channel));
             $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
 			if($result){
+				foreach ($result as $key => $value) {
+					# code...
+					$result[$key]['id'] = sprintf('%d',$result[$key]['id']);
+				}
+				
 				return $result;
 			}
 			else{
@@ -118,9 +123,10 @@ class SentPr{
 
 	public function setPrData($id,$text){
 		if ($this->dbh_sent) {
+			#先查询有没有 没有就新建
             $query = "UPDATE "._TABLE_SENTENCE_PR_." set content=? ,modify_time=? , updated_at = now() WHERE id = ? and editor_uid= ? ";
             $stmt = $this->dbh_sent->prepare($query);
-            $stmt->execute(array($text,mTime(),$id,$_COOKIE["userid"]));
+            $stmt->execute(array($text,mTime(),$id,$_COOKIE["user_uid"]));
             
 			if (!$stmt || ($stmt && $stmt->errorCode() != 0)) {
 				/*  识别错误  */

+ 1 - 1
public/pali_title/46_pali.csv

@@ -1,6 +1,6 @@
 id,book,par_num,level,class,title,text
 NULL,p46,1,1,chapter,Milidaṭīkā,Milidaṭīkā
-NULL,p46,2,2,centered,"Namo tassa bhagavato arahato sammāsambud…","Namo tassa bhagavato arahato sammāsambuddhassa"
+NULL,p46,2,2,centered,,"Namo tassa bhagavato arahato sammāsambuddhassa"
 NULL,p46,3,100,gatha1,,"Nirantaraṃ lokahitassa kārakaṃ"
 NULL,p46,4,100,gatha2,,"Nirantaraṃ lokahitassa desakaṃ,"
 NULL,p46,5,100,gatha3,,"Nirantaraṃ lokahitassa cintakaṃ"

+ 12 - 12
public/pali_title/pali_serieses.csv

@@ -260,19 +260,19 @@
 259,207,1215,kaṅkhāvitaraṇī-aṭṭhakathā
 260,208,3,vinayasaṅgaha-aṭṭhakathā
 261,209,3,vajirabuddhi-ṭīkā
-262,209,166,pārājikavaṇṇanā
-263,209,992,pācittiyavaṇṇanā
-264,209,1708,mahāvaggavaṇṇanā
-265,209,2217,cūḷavaggavaṇṇanā
-266,209,2428,parivāravaṇṇanā
-267,210,3,bhikkhuvibhaṅgavaṇṇanā
-268,210,1658,bhikkhunīvibhaṅgavaṇṇanā
-269,210,1779,mahāvaggavaṇṇanā
-270,210,2431,cūḷavaggavaṇṇanā
-271,210,2792,parivāravaṇṇanā
+262,209,166,vajirabuddhi-ṭīkā
+263,209,992,vajirabuddhi-ṭīkā
+264,209,1708,vajirabuddhi-ṭīkā
+265,209,2217,vajirabuddhi-ṭīkā
+266,209,2428,vajirabuddhi-ṭīkā
+267,210,3,Vimativinodanī-ṭīkā
+268,210,1658,Vimativinodanī-ṭīkā
+269,210,1779,Vimativinodanī-ṭīkā
+270,210,2431,Vimativinodanī-ṭīkā
+271,210,2792,Vimativinodanī-ṭīkā
 272,211,3,vinayālaṅkāra-ṭīkā
-273,212,2,kaṅkhāvitaraṇīpurāṇa-ṭīkā
-274,212,671,kaṅkhāvitaraṇī-abhinavaṭīkā
+273,212,2,kaṅkhāvitaraṇī
+274,212,671,kaṅkhāvitaraṇī
 275,213,3,(vn)pārājikapāḷi
 276,214,3,(vn)pācittiyapāḷi
 277,215,3,(vn)mahāvaggapāḷi

+ 290 - 290
public/pali_title/pali_text_tag.csv

@@ -1,9 +1,9 @@
 book,paragraph,level,title,tag
-1,2,1,namakkārapāḷi,:añña::buddha-vandanā ganthasaṅgaha::namakkārapāḷi:
-1,159,1,namakkāraṭīkā,:añña::ṭīkā::buddha-vandanā ganthasaṅgaha::namakkārapāḷi:
-2,2,1,mahāpaṇāmapāṭha,:añña::buddha-vandanā ganthasaṅgaha::mahāpaṇāmapāṭha(buddhavandanā):
-2,428,1,tigumbacetiya thomanā,:añña::buddha-vandanā ganthasaṅgaha::mahāpaṇāmapāṭha(buddhavandanā):
-2,479,1,vāsamālinīkya,:añña::buddha-vandanā ganthasaṅgaha::mahāpaṇāmapāṭha(buddhavandanā):
+1,2,1,namakkārapāḷi,:añña::buddha-vandanā ganthasaṅgaha::namakkārapāḷi::namakkāra:
+1,159,1,namakkāraṭīkā,:añña::ṭīkā::buddha-vandanā ganthasaṅgaha::namakkāraṭīkā::namakkāra:
+2,2,1,mahāpaṇāmapāṭha,:añña::buddha-vandanā ganthasaṅgaha::mahāpaṇāmapāṭha:
+2,428,1,tigumbacetiya thomanā,:añña::buddha-vandanā ganthasaṅgaha::mahāpaṇāmapāṭha:
+2,479,1,vāsamālinīkya,:añña::buddha-vandanā ganthasaṅgaha::mahāpaṇāmapāṭha:
 3,2,1,lakkhaṇāto,:añña::buddha-vandanā ganthasaṅgaha::lakkhaṇāto:
 3,3,2,buddhathomanāgāthā,:añña::buddha-vandanā ganthasaṅgaha::lakkhaṇāto:
 3,268,2,buddhavandanā,:añña::buddha-vandanā ganthasaṅgaha::lakkhaṇāto:
@@ -43,70 +43,70 @@ book,paragraph,level,title,tag
 6,2,1,kamalāñjali,:añña::buddha-vandanā ganthasaṅgaha::kamalāñjali:
 7,2,1,pajjamadhu,:añña::buddha-vandanā ganthasaṅgaha::pajjamadhu:
 8,2,1,buddhaguṇagāthāvalī,:añña::buddha-vandanā ganthasaṅgaha::buddhaguṇagāthāvalī:
-9,2,1,abhidhānappadīpikāṭīkā,:añña::byākaraṇa ganthasaṅgaha::abhidhānappadīpikā::nirutti::ṭīkā:
-9,37,2,1. saggakaṇḍavaṇṇanā,:añña::byākaraṇa ganthasaṅgaha::abhidhānappadīpikā::nirutti::ṭīkā:
-9,546,2,2. bhūkaṇḍa,:añña::byākaraṇa ganthasaṅgaha::abhidhānappadīpikā::nirutti::ṭīkā:
-9,1869,2,3. sāmaññakaṇḍa,:añña::byākaraṇa ganthasaṅgaha::abhidhānappadīpikā::nirutti::ṭīkā:
-10,2,1,subodhālaṅkāro,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāro::nirutti:
-10,3,2,1. dosāvabodha-paṭhamapariccheda,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāro::nirutti:
-10,233,2,2. dosaparihārāvabodha-dutiyapariccheda,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāro::nirutti:
-10,414,2,3. guṇāvabodha-tatiyapariccheda,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāro::nirutti:
-10,585,2,4. atthālaṅkārāvabodha-catutthapariccheda,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāro::nirutti:
-10,1191,2,5. bhāvāvabodha-pañcamapariccheda,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāro::nirutti:
-11,2,1,subodhālaṅkāraṭīkā,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāraṭīkā::nirutti:
-11,3,2,ganthārambhakathā,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāraṭīkā::nirutti:
-11,20,2,1. dosāvabodha paṭhamapariccheda,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāraṭīkā::nirutti:
-11,807,2,2. dosaparihārāvabodhaparicchedavaṇṇanā,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāraṭīkā::nirutti:
-11,1108,2,3. guṇāvabodhapariccheda,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāraṭīkā::nirutti:
-11,1475,2,4. atthālaṅkārāvabodhapariccheda,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāraṭīkā::nirutti:
-11,2536,2,5. bhāvāvabodhapariccheda,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāraṭīkā::nirutti:
-11,2723,2,ṭhāyībhāvaniddesa,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāraṭīkā::nirutti:
+9,2,1,abhidhānappadīpikāṭīkā,:añña::byākaraṇa ganthasaṅgaha::abhidhānappadīpikā::nirutti::abhidhānappadīpikāṭīkā:
+9,37,2,1. saggakaṇḍavaṇṇanā,:añña::byākaraṇa ganthasaṅgaha::abhidhānappadīpikā::nirutti::abhidhānappadīpikāṭīkā:
+9,546,2,2. bhūkaṇḍa,:añña::byākaraṇa ganthasaṅgaha::abhidhānappadīpikā::nirutti::abhidhānappadīpikāṭīkā:
+9,1869,2,3. sāmaññakaṇḍa,:añña::byākaraṇa ganthasaṅgaha::abhidhānappadīpikā::nirutti::abhidhānappadīpikāṭīkā:
+10,2,1,subodhālaṅkāro,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāra::nirutti:
+10,3,2,1. dosāvabodha-paṭhamapariccheda,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāra::nirutti:
+10,233,2,2. dosaparihārāvabodha-dutiyapariccheda,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāra::nirutti:
+10,414,2,3. guṇāvabodha-tatiyapariccheda,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāra::nirutti:
+10,585,2,4. atthālaṅkārāvabodha-catutthapariccheda,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāra::nirutti:
+10,1191,2,5. bhāvāvabodha-pañcamapariccheda,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāra::nirutti:
+11,2,1,subodhālaṅkāraṭīkā,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāra::subodhālaṅkāraṭīkā::nirutti:
+11,3,2,ganthārambhakathā,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāra::subodhālaṅkāraṭīkā::nirutti:
+11,20,2,1. dosāvabodha paṭhamapariccheda,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāra::subodhālaṅkāraṭīkā::nirutti:
+11,807,2,2. dosaparihārāvabodhaparicchedavaṇṇanā,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāra::subodhālaṅkāraṭīkā::nirutti:
+11,1108,2,3. guṇāvabodhapariccheda,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāra::subodhālaṅkāraṭīkā::nirutti:
+11,1475,2,4. atthālaṅkārāvabodhapariccheda,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāra::subodhālaṅkāraṭīkā::nirutti:
+11,2536,2,5. bhāvāvabodhapariccheda,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāra::subodhālaṅkāraṭīkā::nirutti:
+11,2723,2,ṭhāyībhāvaniddesa,:añña::byākaraṇa ganthasaṅgaha::subodhālaṅkāra::subodhālaṅkāraṭīkā::nirutti:
 12,2,1,bālāvatāra,:añña::byākaraṇa ganthasaṅgaha::bālāvatāra::nirutti::avatāra:
 12,42,2,1. sandhi kaṇḍa,:añña::byākaraṇa ganthasaṅgaha::bālāvatāra::nirutti::avatāra:
 12,182,2,2. nāmakaṇḍa,:añña::byākaraṇa ganthasaṅgaha::bālāvatāra::nirutti::avatāra:
 12,619,2,3. samāsakaṇḍa,:añña::byākaraṇa ganthasaṅgaha::bālāvatāra::nirutti::avatāra:
 12,735,2,4. taddhitakaṇḍa,:añña::byākaraṇa ganthasaṅgaha::bālāvatāra::nirutti::avatāra:
-13,2,1,moggallānasuttapāṭho,:añña::byākaraṇa ganthasaṅgaha::moggallānasuttapāṭho::nirutti:
-13,1105,1,moggallānabyākaraṇaṃ,:añña::byākaraṇa ganthasaṅgaha::moggallānasuttapāṭho::nirutti:
-13,1106,2,1. paṭhamo saññādikaṇḍo,:añña::byākaraṇa ganthasaṅgaha::moggallānasuttapāṭho::nirutti:
-13,1236,2,2. dutiyo kaṇḍo (syādi),:añña::byākaraṇa ganthasaṅgaha::moggallānasuttapāṭho::nirutti:
-13,1738,2,(3) tatiyo kaṇḍo (samāso),:añña::byākaraṇa ganthasaṅgaha::moggallānasuttapāṭho::nirutti:
-13,1973,2,4. catuttho kaṇḍo (ṇādi),:añña::byākaraṇa ganthasaṅgaha::moggallānasuttapāṭho::nirutti:
-13,2250,2,5. pañcamo kaṇḍo (khādi),:añña::byākaraṇa ganthasaṅgaha::moggallānasuttapāṭho::nirutti:
-13,2609,2,6. chaṭṭho kaṇḍo (tyādi),:añña::byākaraṇa ganthasaṅgaha::moggallānasuttapāṭho::nirutti:
-13,2771,2,7. sattamo kaṇḍo (ṇvādi),:añña::byākaraṇa ganthasaṅgaha::moggallānasuttapāṭho::nirutti:
-14,2,1,kaccāyanabyākaraṇaṃ,:añña::byākaraṇa ganthasaṅgaha::kaccāyanabyākaraṇa::nirutti:
-14,715,1,mahākaccāyanasaddāpāṭha,:añña::byākaraṇa ganthasaṅgaha::kaccāyanabyākaraṇa::nirutti:
-14,716,2,1. sandhikappa,:añña::byākaraṇa ganthasaṅgaha::kaccāyanabyākaraṇa::nirutti:
-14,948,2,2. nāmakappa,:añña::byākaraṇa ganthasaṅgaha::kaccāyanabyākaraṇa::nirutti:
-14,1883,2,3. kārakakappa,:añña::byākaraṇa ganthasaṅgaha::kaccāyanabyākaraṇa::nirutti:
-14,2109,2,4. samāsakappa,:añña::byākaraṇa ganthasaṅgaha::kaccāyanabyākaraṇa::nirutti:
-14,2249,2,5. taddhitakappa,:añña::byākaraṇa ganthasaṅgaha::kaccāyanabyākaraṇa::nirutti:
-14,2520,2,6. ākhyātakappa,:añña::byākaraṇa ganthasaṅgaha::kaccāyanabyākaraṇa::nirutti:
-14,2955,2,7. kibbidhānakappa,:añña::byākaraṇa ganthasaṅgaha::kaccāyanabyākaraṇa::nirutti:
-14,3321,2,8. uṇādikappa,:añña::byākaraṇa ganthasaṅgaha::kaccāyanabyākaraṇa::nirutti:
-15,2,1,saddanītippakaraṇaṃ (padamālā),:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇaṃ (padamālā)::nirutti:
-15,3,2,ganthārambhakathā,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇaṃ (padamālā)::nirutti:
-15,34,2,1. savikaraṇākhyātavibhāga,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇaṃ (padamālā)::nirutti:
-15,212,2,2. bhavatikriyāpadamālāvibhāga,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇaṃ (padamālā)::nirutti:
-15,427,2,3. pakiṇṇakavinicchaya,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇaṃ (padamālā)::nirutti:
-15,840,2,4. bhūdhātumayanāmikarūpavibhāga,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇaṃ (padamālā)::nirutti:
-15,1158,2,5. okārantapulliṅganāmikapadamālā,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇaṃ (padamālā)::nirutti:
-15,1525,2,6. ākārantapulliṅganāmikapadamālā,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇaṃ (padamālā)::nirutti:
-15,1736,2,7. niggahītantapulliṅganāmikapadamālā,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇaṃ (padamālā)::nirutti:
-15,1992,2,8. itthiliṅganāmikapadamālā,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇaṃ (padamālā)::nirutti:
-15,2194,2,9. napuṃsakaliṅganāmikapadamālā,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇaṃ (padamālā)::nirutti:
-15,2262,2,10. liṅgattayamissakanāmikapadamālā,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇaṃ (padamālā)::nirutti:
-15,2365,2,11. vāccābhidheyyaliṅgādiparidīpananāmikapadamālā,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇaṃ (padamālā)::nirutti:
-15,2538,2,12. sabbanāmataṃsadisanāmanāmikapadamālā,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇaṃ (padamālā)::nirutti:
-15,2823,2,13. savinicchayasaṅkhyānāmanāmikapadamālā,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇaṃ (padamālā)::nirutti:
-15,2915,2,14. atthattikavibhāga,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇaṃ (padamālā)::nirutti:
-16,2,1,saddanītippakaraṇaṃ,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::nirutti:
-16,4,2,15. saravaggapañcakantika suddhassaradhātu,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::nirutti:
-16,1176,2,16. bhūvādigaṇikapariccheda,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::nirutti:
-16,1898,2,17. rudhādichakka,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::nirutti:
-16,2395,2,18. curādigaṇaparidīpana,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::nirutti:
-16,3067,2,19. sabbagaṇavinicchaya,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::nirutti:
+13,2,1,moggallānasuttapāṭho,:añña::byākaraṇa ganthasaṅgaha::moggallānasuttapāṭha::nirutti:
+13,1105,1,moggallānabyākaraṇaṃ,:añña::byākaraṇa ganthasaṅgaha::moggallānabyākaraṇa::nirutti:
+13,1106,2,1. paṭhamo saññādikaṇḍo,:añña::byākaraṇa ganthasaṅgaha::moggallānabyākaraṇa::nirutti:
+13,1236,2,2. dutiyo kaṇḍo (syādi),:añña::byākaraṇa ganthasaṅgaha::moggallānabyākaraṇa::nirutti:
+13,1738,2,(3) tatiyo kaṇḍo (samāso),:añña::byākaraṇa ganthasaṅgaha::moggallānabyākaraṇa::nirutti:
+13,1973,2,4. catuttho kaṇḍo (ṇādi),:añña::byākaraṇa ganthasaṅgaha::moggallānabyākaraṇa::nirutti:
+13,2250,2,5. pañcamo kaṇḍo (khādi),:añña::byākaraṇa ganthasaṅgaha::moggallānabyākaraṇa::nirutti:
+13,2609,2,6. chaṭṭho kaṇḍo (tyādi),:añña::byākaraṇa ganthasaṅgaha::moggallānabyākaraṇa::nirutti:
+13,2771,2,7. sattamo kaṇḍo (ṇvādi),:añña::byākaraṇa ganthasaṅgaha::moggallānabyākaraṇa::nirutti:
+14,2,1,kaccāyanabyākaraṇaṃ,:añña::byākaraṇa ganthasaṅgaha::kaccāyanabyākaraṇa::nirutti:
+14,715,1,mahākaccāyanasaddāpāṭha,:añña::byākaraṇa ganthasaṅgaha::kaccāyanabyākaraṇa::nirutti:
+14,716,2,1. sandhikappa,:añña::byākaraṇa ganthasaṅgaha::kaccāyanabyākaraṇa::nirutti:
+14,948,2,2. nāmakappa,:añña::byākaraṇa ganthasaṅgaha::kaccāyanabyākaraṇa::nirutti:
+14,1883,2,3. kārakakappa,:añña::byākaraṇa ganthasaṅgaha::kaccāyanabyākaraṇa::nirutti:
+14,2109,2,4. samāsakappa,:añña::byākaraṇa ganthasaṅgaha::kaccāyanabyākaraṇa::nirutti:
+14,2249,2,5. taddhitakappa,:añña::byākaraṇa ganthasaṅgaha::kaccāyanabyākaraṇa::nirutti:
+14,2520,2,6. ākhyātakappa,:añña::byākaraṇa ganthasaṅgaha::kaccāyanabyākaraṇa::nirutti:
+14,2955,2,7. kibbidhānakappa,:añña::byākaraṇa ganthasaṅgaha::kaccāyanabyākaraṇa::nirutti:
+14,3321,2,8. uṇādikappa,:añña::byākaraṇa ganthasaṅgaha::kaccāyanabyākaraṇa::nirutti:
+15,2,1,saddanītippakaraṇaṃ (padamālā),:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::padamālā::nirutti:
+15,3,2,ganthārambhakathā,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::padamālā::nirutti:
+15,34,2,1. savikaraṇākhyātavibhāga,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::padamālā::nirutti:
+15,212,2,2. bhavatikriyāpadamālāvibhāga,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::padamālā::nirutti:
+15,427,2,3. pakiṇṇakavinicchaya,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::padamālā::nirutti:
+15,840,2,4. bhūdhātumayanāmikarūpavibhāga,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::padamālā::nirutti:
+15,1158,2,5. okārantapulliṅganāmikapadamālā,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::padamālā::nirutti:
+15,1525,2,6. ākārantapulliṅganāmikapadamālā,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::padamālā::nirutti:
+15,1736,2,7. niggahītantapulliṅganāmikapadamālā,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::padamālā::nirutti:
+15,1992,2,8. itthiliṅganāmikapadamālā,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::padamālā::nirutti:
+15,2194,2,9. napuṃsakaliṅganāmikapadamālā,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::padamālā::nirutti:
+15,2262,2,10. liṅgattayamissakanāmikapadamālā,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::padamālā::nirutti:
+15,2365,2,11. vāccābhidheyyaliṅgādiparidīpananāmikapadamālā,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::padamālā::nirutti:
+15,2538,2,12. sabbanāmataṃsadisanāmanāmikapadamālā,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::padamālā::nirutti:
+15,2823,2,13. savinicchayasaṅkhyānāmanāmikapadamālā,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::padamālā::nirutti:
+15,2915,2,14. atthattikavibhāga,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::padamālā::nirutti:
+16,2,1,saddanītippakaraṇaṃ(dhātumālā),:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::dhātumālā::nirutti:
+16,4,2,15. saravaggapañcakantika suddhassaradhātu,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::dhātumālā::nirutti:
+16,1176,2,16. bhūvādigaṇikapariccheda,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::dhātumālā::nirutti:
+16,1898,2,17. rudhādichakka,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::dhātumālā::nirutti:
+16,2395,2,18. curādigaṇaparidīpana,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::dhātumālā::nirutti:
+16,3067,2,19. sabbagaṇavinicchaya,:añña::byākaraṇa ganthasaṅgaha::saddanītippakaraṇa::dhātumālā::nirutti:
 17,2,1,padarūpasiddhi,:añña::byākaraṇa ganthasaṅgaha::padarūpasiddhi::nirutti:
 17,14,2,1. sandhikaṇḍa,:añña::byākaraṇa ganthasaṅgaha::padarūpasiddhi::nirutti:
 17,697,2,2. nāmakaṇḍa,:añña::byākaraṇa ganthasaṅgaha::padarūpasiddhi::nirutti:
@@ -131,13 +131,13 @@ book,paragraph,level,title,tag
 19,1465,2,5. ṇādikaṇḍa,:añña::byākaraṇa ganthasaṅgaha::payogasiddhipāḷi::nirutti:
 19,1774,2,6. tyādikaṇḍa,:añña::byākaraṇa ganthasaṅgaha::payogasiddhipāḷi::nirutti:
 19,2171,2,7. khādikaṇḍa,:añña::byākaraṇa ganthasaṅgaha::payogasiddhipāḷi::nirutti:
-20,2,1,vuttodayaṃ,:añña::byākaraṇa ganthasaṅgaha::vuttodaya::nirutti:
-20,3,2,1. saññāparibhāsāniddesa-paṭhamapariccheda,:añña::byākaraṇa ganthasaṅgaha::vuttodaya::nirutti:
-20,61,2,2. mattāvuttiniddesa-dutiyapariccheda,:añña::byākaraṇa ganthasaṅgaha::vuttodaya::nirutti:
-20,139,2,3. samavuttiniddesa-tatiyapariccheda,:añña::byākaraṇa ganthasaṅgaha::vuttodaya::nirutti:
-20,224,2,4. aḍḍhasamavuttiniddesa-catutthapariccheda,:añña::byākaraṇa ganthasaṅgaha::vuttodaya::nirutti:
-20,261,2,5. visamavuttiniddesa-pañcamapariccheda,:añña::byākaraṇa ganthasaṅgaha::vuttodaya::nirutti:
-20,278,2,6. chappaccayavibhāga-chaṭṭhapariccheda,:añña::byākaraṇa ganthasaṅgaha::vuttodaya::nirutti:
+20,2,1,vuttodayaṃ,:añña::byākaraṇa ganthasaṅgaha::vuttodaya::nirutti:
+20,3,2,1. saññāparibhāsāniddesa-paṭhamapariccheda,:añña::byākaraṇa ganthasaṅgaha::vuttodaya::nirutti:
+20,61,2,2. mattāvuttiniddesa-dutiyapariccheda,:añña::byākaraṇa ganthasaṅgaha::vuttodaya::nirutti:
+20,139,2,3. samavuttiniddesa-tatiyapariccheda,:añña::byākaraṇa ganthasaṅgaha::vuttodaya::nirutti:
+20,224,2,4. aḍḍhasamavuttiniddesa-catutthapariccheda,:añña::byākaraṇa ganthasaṅgaha::vuttodaya::nirutti:
+20,261,2,5. visamavuttiniddesa-pañcamapariccheda,:añña::byākaraṇa ganthasaṅgaha::vuttodaya::nirutti:
+20,278,2,6. chappaccayavibhāga-chaṭṭhapariccheda,:añña::byākaraṇa ganthasaṅgaha::vuttodaya::nirutti:
 21,2,1,abhidhānappadīpikā,:añña::byākaraṇa ganthasaṅgaha::abhidhānappadīpikā::nirutti:
 21,41,2,1. saggakaṇḍa,:añña::byākaraṇa ganthasaṅgaha::abhidhānappadīpikā::nirutti:
 21,619,2,2. bhūkaṇḍa,:añña::byākaraṇa ganthasaṅgaha::abhidhānappadīpikā::nirutti:
@@ -152,29 +152,29 @@ book,paragraph,level,title,tag
 22,2889,2,5. taddhita,:añña::niruttidīpanīpāṭha::nirutti::leḍī sayādo:
 22,3494,2,6. ākhyātakaṇḍa,:añña::niruttidīpanīpāṭha::nirutti::leḍī sayādo:
 22,5030,2,7. kitakaṇḍa,:añña::niruttidīpanīpāṭha::nirutti::leḍī sayādo:
-23,2,1,paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::dīpanī::leḍī sayādo:
-23,29,2,pathamagāthā-paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::dīpanī::leḍī sayādo:
-23,96,2,dutīyagāthā-paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::dīpanī::leḍī sayādo:
-23,136,2,cittasaṅgaha-paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::dīpanī::leḍī sayādo:
-23,407,2,cetasikasaṅgaha paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::dīpanī::leḍī sayādo:
-23,530,2,pakiṇṇaka saṅgaha paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::dīpanī::leḍī sayādo:
-23,650,2,vīthi saṅgaha paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::dīpanī::leḍī sayādo:
-23,770,2,vīthimutta saṅgaha paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::dīpanī::leḍī sayādo:
-23,987,2,rūpa saṅgaha paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::dīpanī::leḍī sayādo:
-23,1203,2,samuccaya saṅgaha paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::dīpanī::leḍī sayādo:
-23,1319,2,paccaya saṅgaha paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::dīpanī::leḍī sayādo:
-23,1439,2,kammaṭṭhāna saṅgaha paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::dīpanī::leḍī sayādo:
-23,1473,2,nigama paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::dīpanī::leḍī sayādo:
-24,2,1,anudīpanīpāṭha,:añña::abhidhamma::abhidhammatthasaṅgaha::anudīpanā::leḍī sayādo:
-24,3,2,1. cittasaṅgahaanudīpanā,:añña::abhidhamma::abhidhammatthasaṅgaha::anudīpanā::leḍī sayādo:
-24,145,2,2. cetasikasaṅgahaanudīpanā,:añña::abhidhamma::abhidhammatthasaṅgaha::anudīpanā::leḍī sayādo:
-24,206,2,3. pakiṇṇakasaṅgahaanudīpanā,:añña::abhidhamma::abhidhammatthasaṅgaha::anudīpanā::leḍī sayādo:
-24,215,2,4. vīthisaṅgahaanudīpanā,:añña::abhidhamma::abhidhammatthasaṅgaha::anudīpanā::leḍī sayādo:
-24,239,2,5. vīthimuttasaṅgahaanudīpanā,:añña::abhidhamma::abhidhammatthasaṅgaha::anudīpanā::leḍī sayādo:
-24,284,2,6. rūpasaṅgahaanudīpanā,:añña::abhidhamma::abhidhammatthasaṅgaha::anudīpanā::leḍī sayādo:
-24,321,2,7. samuccayasaṅgahaanudīpanā,:añña::abhidhamma::abhidhammatthasaṅgaha::anudīpanā::leḍī sayādo:
-24,355,2,8. paccayasaṅgahaanudīpanā,:añña::abhidhamma::abhidhammatthasaṅgaha::anudīpanā::leḍī sayādo:
-24,388,2,9. kammaṭṭhānasaṅgahaanudīpanā,:añña::abhidhamma::abhidhammatthasaṅgaha::anudīpanā::leḍī sayādo:
+23,2,1,paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::paramatthadīpanī::leḍī sayādo:
+23,29,2,pathamagāthā-paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::paramatthadīpanī::leḍī sayādo:
+23,96,2,dutīyagāthā-paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::paramatthadīpanī::leḍī sayādo:
+23,136,2,cittasaṅgaha-paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::paramatthadīpanī::leḍī sayādo:
+23,407,2,cetasikasaṅgaha paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::paramatthadīpanī::leḍī sayādo:
+23,530,2,pakiṇṇaka saṅgaha paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::paramatthadīpanī::leḍī sayādo:
+23,650,2,vīthi saṅgaha paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::paramatthadīpanī::leḍī sayādo:
+23,770,2,vīthimutta saṅgaha paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::paramatthadīpanī::leḍī sayādo:
+23,987,2,rūpa saṅgaha paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::paramatthadīpanī::leḍī sayādo:
+23,1203,2,samuccaya saṅgaha paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::paramatthadīpanī::leḍī sayādo:
+23,1319,2,paccaya saṅgaha paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::paramatthadīpanī::leḍī sayādo:
+23,1439,2,kammaṭṭhāna saṅgaha paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::paramatthadīpanī::leḍī sayādo:
+23,1473,2,nigama paramatthadīpanī,:añña::abhidhamma::abhidhammatthasaṅgaha::paramatthadīpanī::leḍī sayādo:
+24,2,1,anudīpanīpāṭha,:añña::abhidhamma::abhidhammatthasaṅgaha::anudīpanīpāṭha::leḍī sayādo:
+24,3,2,1. cittasaṅgahaanudīpanā,:añña::abhidhamma::abhidhammatthasaṅgaha::anudīpanīpāṭha::leḍī sayādo:
+24,145,2,2. cetasikasaṅgahaanudīpanā,:añña::abhidhamma::abhidhammatthasaṅgaha::anudīpanīpāṭha::leḍī sayādo:
+24,206,2,3. pakiṇṇakasaṅgahaanudīpanā,:añña::abhidhamma::abhidhammatthasaṅgaha::anudīpanīpāṭha::leḍī sayādo:
+24,215,2,4. vīthisaṅgahaanudīpanā,:añña::abhidhamma::abhidhammatthasaṅgaha::anudīpanīpāṭha::leḍī sayādo:
+24,239,2,5. vīthimuttasaṅgahaanudīpanā,:añña::abhidhamma::abhidhammatthasaṅgaha::anudīpanīpāṭha::leḍī sayādo:
+24,284,2,6. rūpasaṅgahaanudīpanā,:añña::abhidhamma::abhidhammatthasaṅgaha::anudīpanīpāṭha::leḍī sayādo:
+24,321,2,7. samuccayasaṅgahaanudīpanā,:añña::abhidhamma::abhidhammatthasaṅgaha::anudīpanīpāṭha::leḍī sayādo:
+24,355,2,8. paccayasaṅgahaanudīpanā,:añña::abhidhamma::abhidhammatthasaṅgaha::anudīpanīpāṭha::leḍī sayādo:
+24,388,2,9. kammaṭṭhānasaṅgahaanudīpanā,:añña::abhidhamma::abhidhammatthasaṅgaha::anudīpanīpāṭha::leḍī sayādo:
 25,2,1,paṭṭhānuddesa dīpanīpāṭha,:añña::abhidhamma::paṭṭhāna::paṭṭhānuddesa dīpanīpāṭha::leḍī sayādo:
 25,3,2,1. hetupaccayo,:añña::abhidhamma::paṭṭhāna::paṭṭhānuddesa dīpanīpāṭha::leḍī sayādo:
 25,14,2,2. ārammaṇapaccayo,:añña::abhidhamma::paṭṭhāna::paṭṭhānuddesa dīpanīpāṭha::leḍī sayādo:
@@ -272,149 +272,149 @@ book,paragraph,level,title,tag
 37,343,2,4. samasīsikaṇḍo,:añña::pakiṇṇaka-ganthasaṅgaha::sīmavisodhanī::pakiṇṇaka:
 37,361,2,pakiṇṇakakaṇḍo,:añña::pakiṇṇaka-ganthasaṅgaha::sīmavisodhanī::pakiṇṇaka:
 38,2,1,vessantarāgīti,:añña::pakiṇṇaka-ganthasaṅgaha::vessantarāgīti:
-39,3,1,dīghanikāye,:añña::sutta::saṅgayana-puccha vissajjanā:
-39,4,2,sīlakkhandhavaggasutta,:añña::sutta::saṅgayana-puccha vissajjanā:
-40,3,1,majjhimanikāya,:añña::sutta::saṅgayana-puccha vissajjanā:
-40,4,2,mūlapaṇṇāsapāḷi,:añña::sutta::saṅgayana-puccha vissajjanā:
-40,249,2,majjhimapaṇṇāsapāḷi,:añña::sutta::saṅgayana-puccha vissajjanā:
-41,3,1,saṃyuttanikāye,:añña::sutta::saṅgayana-puccha vissajjanā:
-41,4,2,sagāthāvaggapāḷi,:añña::sutta::saṅgayana-puccha vissajjanā:
-41,636,2,nidānavaggapāḷi,:añña::sutta::saṅgayana-puccha vissajjanā:
-41,807,2,khandhavaggasaṃyuttapāḷi,:añña::sutta::saṅgayana-puccha vissajjanā:
-41,916,2,saḷāyatanavaggasaṃyuttapāḷi,:añña::sutta::saṅgayana-puccha vissajjanā:
-41,1101,2,mahāvaggasaṃyuttapāḷi,:añña::sutta::saṅgayana-puccha vissajjanā:
-42,3,1,aṅguttaranikāye,:añña::sutta::saṅgayana-puccha vissajjanā:
-43,2,1,vinayapiṭaka,:añña::vinaya::saṅgayana-puccha vissajjanā:
-43,270,2,saṅghādisesa sikkhāpucchā,:añña::vinaya::saṅgayana-puccha vissajjanā::saṅghādisesa:
-43,375,2,nissaggipācittiya,:añña::vinaya::saṅgayana-puccha vissajjanā::nissaggiya:
-43,987,2,mahāvaggapāḷi,:añña::vinaya::saṅgayana-puccha vissajjanā:
-43,1280,2,cūḷavaggapāḷi,:añña::vinaya::saṅgayana-puccha vissajjanā:
+39,3,1,dīghanikāye,:añña::sutta::saṅgayana-puccha vissajjanā::dīghanikāya:
+39,4,2,sīlakkhandhavaggasutta,
+40,3,1,majjhimanikāya,:añña::sutta::saṅgayana-puccha vissajjanā::majjhimanikāya:
+40,4,2,mūlapaṇṇāsapāḷi,:añña::sutta::saṅgayana-puccha vissajjanā::majjhimanikāya:
+40,249,2,majjhimapaṇṇāsapāḷi,:añña::sutta::saṅgayana-puccha vissajjanā::majjhimanikāya:
+41,3,1,saṃyuttanikāye,:añña::sutta::saṅgayana-puccha vissajjanā::saṃyuttanikāya:
+41,4,2,sagāthāvaggapāḷi,:añña::sutta::saṅgayana-puccha vissajjanā::saṃyuttanikāya:
+41,636,2,nidānavaggapāḷi,:añña::sutta::saṅgayana-puccha vissajjanā::saṃyuttanikāya:
+41,807,2,khandhavaggasaṃyuttapāḷi,:añña::sutta::saṅgayana-puccha vissajjanā::saṃyuttanikāya:
+41,916,2,saḷāyatanavaggasaṃyuttapāḷi,:añña::sutta::saṅgayana-puccha vissajjanā::saṃyuttanikāya:
+41,1101,2,mahāvaggasaṃyuttapāḷi,:añña::sutta::saṅgayana-puccha vissajjanā::saṃyuttanikāya:
+42,3,1,aṅguttaranikāye,:añña::sutta::saṅgayana-puccha vissajjanā::aṅguttaranikāya:
+43,2,1,vinayapiṭaka,:añña::vinaya::saṅgayana-puccha vissajjanā::vinayapiṭaka:
+43,270,2,saṅghādisesa sikkhāpucchā,:añña::vinaya::saṅgayana-puccha vissajjanā::saṅghādisesa::vinayapiṭaka:
+43,375,2,nissaggipācittiya,:añña::vinaya::saṅgayana-puccha vissajjanā::nissaggiya::vinayapiṭaka:
+43,987,2,mahāvaggapāḷi,:añña::vinaya::saṅgayana-puccha vissajjanā::vinayapiṭaka:
+43,1280,2,cūḷavaggapāḷi,:añña::vinaya::saṅgayana-puccha vissajjanā::vinayapiṭaka:
 44,2,1,abhidhammapiṭaka,:añña::abhidhamma::saṅgayana-puccha vissajjanā::abhidhammapiṭaka:
 45,2,1,aṭṭhakathā,:añña::saṅgayana-puccha vissajjanā::aṭṭhakathā:
 46,1,1,milidaṭīkā,:añña::sutta::khuddakanikāya::milindapañha::milidaṭīkā::ṭīkā::sihaḷa-ganthasaṅgaha:
-46,2,2,namo tassa bhagavato arahato sammāsambuddhassa,:añña::sutta::khuddakanikāya::milindapañha::milidaṭīkā::ṭīkā::sihaḷa-ganthasaṅgaha:
+46,2,2,,:añña::sutta::khuddakanikāya::milindapañha::milidaṭīkā::ṭīkā::sihaḷa-ganthasaṅgaha:
 46,18,2,pakiṇṇakathavivaraṇaṃ,:añña::sutta::khuddakanikāya::milindapañha::milidaṭīkā::ṭīkā::sihaḷa-ganthasaṅgaha:
 47,1,1,"padamañjarī ",:añña::sihaḷa-ganthasaṅgaha::padamañjarī::nirutti:
-48,1,1,"padasādhanaṃ ",:añña::sihaḷa-ganthasaṅgaha::padasādhana::nirutti:
-49,1,1,saddabindu  pakaraṇaṃ,:añña::sihaḷa-ganthasaṅgaha::saddabindu pakaraṇa::nirutti:
-50,1,1,kaccāyana  dhātu mañjūsā,:añña::sihaḷa-ganthasaṅgaha::kaccāyana dhātu mañjūsā::nirutti:
-50,261,2,tudādayo avuddhikā,:añña::sihaḷa-ganthasaṅgaha::kaccāyana dhātu mañjūsā::nirutti:
-50,312,2,juhotyā’dayo  sadvibhāvaluttavikaraṇā.,:añña::sihaḷa-ganthasaṅgaha::kaccāyana dhātu mañjūsā::nirutti:
-50,317,2,rudhādayo,:añña::sihaḷa-ganthasaṅgaha::kaccāyana dhātu mañjūsā::nirutti:
-50,325,2,"divādayo ",:añña::sihaḷa-ganthasaṅgaha::kaccāyana dhātu mañjūsā::nirutti:
-50,366,2,"svādayo ",:añña::sihaḷa-ganthasaṅgaha::kaccāyana dhātu mañjūsā::nirutti:
-50,369,2,kiyādayo,:añña::sihaḷa-ganthasaṅgaha::kaccāyana dhātu mañjūsā::nirutti:
-50,377,2,"tanādayo ",:añña::sihaḷa-ganthasaṅgaha::kaccāyana dhātu mañjūsā::nirutti:
-51,1,1,"samantakūṭavaṇṇanā ",:añña::sihaḷa-ganthasaṅgaha::samantakūṭavaṇṇanā:
-52,1,1,"moggallāna vuttivivaraṇapañcikā. ",:añña::sihaḷa-ganthasaṅgaha::vuttisametā:
-53,1,1,"thupavaṃso ",:añña::sihaḷa-ganthasaṅgaha::thupavaṃso::vaṃsa:
-53,46,2,abhinīhāra kathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃso::vaṃsa:
-53,199,2,cūḷāmaṇidussa thupadvayakathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃso::vaṃsa:
-53,248,2,dasathūpakathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃso::vaṃsa:
-53,256,2,dhātunidhāna kathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃso::vaṃsa:
-53,282,2,caturāsīti sahassa thūpakathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃso::vaṃsa:
-53,348,2,bodhi āgamanakathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃso::vaṃsa:
-53,354,2,yojanathūpa kathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃso::vaṃsa:
-53,356,2,tadatthadīpanatthaṃ ayamanupubbakathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃso::vaṃsa:
-53,382,2,mahiyaṅgana thūpakathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃso::vaṃsa:
-53,433,2,marīcavaṭṭi vihārakathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃso::vaṃsa:
-53,457,2,thūpasādhana lābhakathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃso::vaṃsa:
-53,479,2,thūpāramha kathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃso::vaṃsa:
-53,535,2,dhātugabba rūpavaṇṇanākathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃso::vaṃsa:
-54,1,1,"dāṭhāvaṃso ",:añña::sihaḷa-ganthasaṅgaha::dāṭhāvaṃso::vaṃsa:
+48,1,1,"padasādhanaṃ ",:añña::sihaḷa-ganthasaṅgaha::padasādhana::nirutti:
+49,1,1,saddabindu  pakaraṇaṃ,:añña::sihaḷa-ganthasaṅgaha::saddabindupakaraṇa::nirutti:
+50,1,1,kaccāyana dhātu mañjūsā,:añña::sihaḷa-ganthasaṅgaha::kaccāyanadhātumañjūsā::kaccāyana::nirutti:
+50,261,2,tudādayo avuddhikā,:añña::sihaḷa-ganthasaṅgaha::kaccāyanadhātumañjūsā::kaccāyana::nirutti:
+50,312,2,juhotyā’dayo  sadvibhāvaluttavikaraṇā.,:añña::sihaḷa-ganthasaṅgaha::kaccāyanadhātumañjūsā::kaccāyana::nirutti:
+50,317,2,rudhādayo,:añña::sihaḷa-ganthasaṅgaha::kaccāyanadhātumañjūsā::kaccāyana::nirutti:
+50,325,2,"divādayo ",:añña::sihaḷa-ganthasaṅgaha::kaccāyanadhātumañjūsā::kaccāyana::nirutti:
+50,366,2,"svādayo ",:añña::sihaḷa-ganthasaṅgaha::kaccāyanadhātumañjūsā::kaccāyana::nirutti:
+50,369,2,kiyādayo,:añña::sihaḷa-ganthasaṅgaha::kaccāyanadhātumañjūsā::kaccāyana::nirutti:
+50,377,2,"tanādayo ",:añña::sihaḷa-ganthasaṅgaha::kaccāyanadhātumañjūsā::kaccāyana::nirutti:
+51,1,1,"samantakūṭavaṇṇanā",:añña::sihaḷa-ganthasaṅgaha::samantakūṭavaṇṇanā:
+52,1,1,"moggallāna vuttivivaraṇapañcikā",:añña::sihaḷa-ganthasaṅgaha::moggallāna vuttivivaraṇapañcikā:
+53,1,1,"thupavaṃso",:añña::sihaḷa-ganthasaṅgaha::thupavaṃsa:
+53,46,2,abhinīhāra kathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃsa:
+53,199,2,cūḷāmaṇidussa thupadvayakathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃsa:
+53,248,2,dasathūpakathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃsa:
+53,256,2,dhātunidhāna kathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃsa:
+53,282,2,caturāsīti sahassa thūpakathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃsa:
+53,348,2,bodhi āgamanakathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃsa:
+53,354,2,yojanathūpa kathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃsa:
+53,356,2,tadatthadīpanatthaṃ ayamanupubbakathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃsa:
+53,382,2,mahiyaṅgana thūpakathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃsa:
+53,433,2,marīcavaṭṭi vihārakathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃsa:
+53,457,2,thūpasādhana lābhakathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃsa:
+53,479,2,thūpāramha kathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃsa:
+53,535,2,dhātugabba rūpavaṇṇanākathā,:añña::sihaḷa-ganthasaṅgaha::thupavaṃsa:
+54,1,1,"dāṭhāvaṃso ",:añña::sihaḷa-ganthasaṅgaha::dāṭhāvaṃsa:
 55,1,1,dhātupāṭha  vilāsiniyā,:añña::sihaḷa-ganthasaṅgaha::dhātupāṭha vilāsiniyā:
-56,1,1,"dhātuvaṃso ",:añña::sihaḷa-ganthasaṅgaha::dhātuvaṃso::vaṃsa:
-56,3,2,1. tathāgatassāgamanakathā,:añña::sihaḷa-ganthasaṅgaha::dhātuvaṃso::vaṃsa:
-56,81,2,2.  parinibbānakathā,:añña::sihaḷa-ganthasaṅgaha::dhātuvaṃso::vaṃsa:
-56,246,2,3.  dhātuparamparākathā,:añña::sihaḷa-ganthasaṅgaha::dhātuvaṃso::vaṃsa:
-56,307,2,4.  pakiṇṇakakathā,:añña::sihaḷa-ganthasaṅgaha::dhātuvaṃso::vaṃsa:
-56,358,2,5.  dhātunidhānādhikāro,:añña::sihaḷa-ganthasaṅgaha::dhātuvaṃso::vaṃsa:
-57,1,1,hatthavanagallavihāra  vaṃso,:añña::sihaḷa-ganthasaṅgaha::hatthavanagallavihāra vaṃso::vaṃsa:
-58,1,1,"jinacaritaya ",:añña::sihaḷa-ganthasaṅgaha::jinacaritaya:
-59,1,1,"jinavaṃsadīpaṃ ",:añña::sihaḷa-ganthasaṅgaha::jinavaṃsadīpa:
+56,1,1,"dhātuvaṃso ",:añña::sihaḷa-ganthasaṅgaha::dhātuvaṃsa:
+56,3,2,1. tathāgatassāgamanakathā,:añña::sihaḷa-ganthasaṅgaha::dhātuvaṃsa:
+56,81,2,2.  parinibbānakathā,:añña::sihaḷa-ganthasaṅgaha::dhātuvaṃsa:
+56,246,2,3.  dhātuparamparākathā,:añña::sihaḷa-ganthasaṅgaha::dhātuvaṃsa:
+56,307,2,4.  pakiṇṇakakathā,:añña::sihaḷa-ganthasaṅgaha::dhātuvaṃsa:
+56,358,2,5.  dhātunidhānādhikāro,:añña::sihaḷa-ganthasaṅgaha::dhātuvaṃsa:
+57,1,1,hatthavanagallavihāra  vaṃso,:añña::sihaḷa-ganthasaṅgaha::hatthavanagallavihāravaṃsa:
+58,1,1,"jinacaritaya",:añña::sihaḷa-ganthasaṅgaha::jinacaritaya:
+59,1,1,"jinavaṃsadīpaṃ ",:añña::sihaḷa-ganthasaṅgaha::jinavaṃsadīpa:
 60,1,1,"telakaṭāhagāthā ",:añña::sihaḷa-ganthasaṅgaha::telakaṭāhagāthā:
-61,2,1,cūḷaganthavaṃsapāḷi,:añña::vaṃsa-ganthasaṅgaha::cūḷaganthavaṃsa::vaṃsa:
-61,3,2,1. piṭakattayaparicchedo,:añña::vaṃsa-ganthasaṅgaha::cūḷaganthavaṃsa::vaṃsa:
-61,25,2,2. ganthakārakācariya-paricchedo,:añña::vaṃsa-ganthasaṅgaha::cūḷaganthavaṃsa::vaṃsa:
-61,37,2,3. ācariyānaṃ sañjātaṭṭhānaparicchedo,:añña::vaṃsa-ganthasaṅgaha::cūḷaganthavaṃsa::vaṃsa:
-61,42,2,4. āyāyakācariya-paricchedo,:añña::vaṃsa-ganthasaṅgaha::cūḷaganthavaṃsa::vaṃsa:
-61,66,2,5. pakiṇṇaka-paricchedo,:añña::vaṃsa-ganthasaṅgaha::cūḷaganthavaṃsa::vaṃsa:
-62,2,1,sāsanavaṃsappadīpikā,:añña::vaṃsa-ganthasaṅgaha::sāsanavaṃsappadīpikā::vaṃsa:
-62,3,2,sāsanavaṃsappadīpikā,:añña::vaṃsa-ganthasaṅgaha::sāsanavaṃsappadīpikā::vaṃsa:
-62,35,2,1. navaṭṭhānāgatasāsanavaṃsakathāmaggo,:añña::vaṃsa-ganthasaṅgaha::sāsanavaṃsappadīpikā::vaṃsa:
-62,130,2,2. sīhaḷadīpikasāsanavaṃsakathāmaggo,:añña::vaṃsa-ganthasaṅgaha::sāsanavaṃsappadīpikā::vaṃsa:
-62,244,2,3. suvaṇṇabhūmisāsanavaṃsakathāmaggo,:añña::vaṃsa-ganthasaṅgaha::sāsanavaṃsappadīpikā::vaṃsa:
-62,305,2,4. yonakaraṭṭhasāsanavaṃsakathāmaggo,:añña::vaṃsa-ganthasaṅgaha::sāsanavaṃsappadīpikā::vaṃsa:
-62,338,2,5. navavāsīraṭṭhasāsanavaṃsakathāmaggo,:añña::vaṃsa-ganthasaṅgaha::sāsanavaṃsappadīpikā::vaṃsa:
-62,364,2,6. aparantaraṭṭhasāsanavaṃsakathāmaggo,:añña::vaṃsa-ganthasaṅgaha::sāsanavaṃsappadīpikā::vaṃsa:
-62,907,2,7. kasmiragandhāraraṭṭhasāsanavaṃsakathāmaggo,:añña::vaṃsa-ganthasaṅgaha::sāsanavaṃsappadīpikā::vaṃsa:
-62,929,2,8. mahiṃsakaraṭṭhassāsanavaṃsakathāmaggo,:añña::vaṃsa-ganthasaṅgaha::sāsanavaṃsappadīpikā::vaṃsa:
-62,938,2,9. mahāraṭṭhasāsanavaṃsakathāmaggo,:añña::vaṃsa-ganthasaṅgaha::sāsanavaṃsappadīpikā::vaṃsa:
-62,950,2,10. cinaraṭṭhasāsanavaṃsakathāmaggo,:añña::vaṃsa-ganthasaṅgaha::sāsanavaṃsappadīpikā::vaṃsa:
-63,2,1,mahāvaṃsapāḷi,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,3,2,pathamapariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,269,2,dutiyapariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,375,2,tatiya pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,508,2,catuttha pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,717,2,pañcama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,1612,2,chaṭṭhapariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,1760,2,sattama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,1997,2,aṭṭhama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,2088,2,navama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,2184,2,dasama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,2513,2,ekādasama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,2646,2,dvādasama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,2819,2,terasama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,2891,2,cuddasama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,3093,2,pañcadasama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,3808,2,soḷasama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,3869,2,sattarasama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,4073,2,aṭṭhārasama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,4284,2,ekūnavīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,4545,2,vīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,4729,2,ekavīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,4840,2,bāvīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,5113,2,tevīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,5439,2,catuvīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,5629,2,pañcavīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,5992,2,chabbīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,6079,2,sattavīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,6234,2,aṭṭhavīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,6375,2,ekūnatiṃsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,6592,2,tiṃsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,6903,2,ekatiṃsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,7285,2,dvattiṃsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,7552,2,tettiṃsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,7883,2,catuttiṃsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,8172,2,pañcatiṃsatimapariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,8562,2,chattiṃsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,8972,2,sattatiṃsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,9728,2,aṭṭhatiṃsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,10082,2,ekūnacattālīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,10268,2,cattālīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,10584,2,ekacattālīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,10798,2,dvicattālīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,11270,2,tecattālīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,11523,2,catucattālīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,11673,2,pañcacattālīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,11874,2,chacattālīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,12362,2,sattacattālīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,12651,2,aṭṭhacattālīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,12921,2,ekūnapaññāsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,13338,2,paññāsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,13593,2,ekapaññāsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,13756,2,dvipaññāsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,13983,2,tivaññāsatima paccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,14092,2,catupaññāsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,14150,2,pañcapaññāsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,14385,2,chapaññāsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,14569,2,sattapaññāsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,14729,2,aṭṭhapaññāsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,15006,2,ekūnasaṭṭhima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,15233,2,saṭṭhima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,15441,2,ekasaṭṭhima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,15607,2,dvisaṭṭhimapariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
-63,15806,2,tisaṭṭhima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa:
+61,2,1,cūḷaganthavaṃsapāḷi,:añña::vaṃsa-ganthasaṅgaha::cūḷaganthavaṃsapāḷi::vaṃsa ganthasaṅgaha:
+61,3,2,1. piṭakattayaparicchedo,:añña::vaṃsa-ganthasaṅgaha::cūḷaganthavaṃsapāḷi::vaṃsa ganthasaṅgaha:
+61,25,2,2. ganthakārakācariya-paricchedo,:añña::vaṃsa-ganthasaṅgaha::cūḷaganthavaṃsapāḷi::vaṃsa ganthasaṅgaha:
+61,37,2,3. ācariyānaṃ sañjātaṭṭhānaparicchedo,:añña::vaṃsa-ganthasaṅgaha::cūḷaganthavaṃsapāḷi::vaṃsa ganthasaṅgaha:
+61,42,2,4. āyāyakācariya-paricchedo,:añña::vaṃsa-ganthasaṅgaha::cūḷaganthavaṃsapāḷi::vaṃsa ganthasaṅgaha:
+61,66,2,5. pakiṇṇaka-paricchedo,:añña::vaṃsa-ganthasaṅgaha::cūḷaganthavaṃsapāḷi::vaṃsa ganthasaṅgaha:
+62,2,1,sāsanavaṃsappadīpikā,:añña::vaṃsa-ganthasaṅgaha::sāsanavaṃsappadīpikā::vaṃsa ganthasaṅgaha:
+62,3,2,sāsanavaṃsappadīpikā,:añña::vaṃsa-ganthasaṅgaha::sāsanavaṃsappadīpikā::vaṃsa ganthasaṅgaha:
+62,35,2,1. navaṭṭhānāgatasāsanavaṃsakathāmaggo,:añña::vaṃsa-ganthasaṅgaha::sāsanavaṃsappadīpikā::vaṃsa ganthasaṅgaha:
+62,130,2,2. sīhaḷadīpikasāsanavaṃsakathāmaggo,:añña::vaṃsa-ganthasaṅgaha::sāsanavaṃsappadīpikā::vaṃsa ganthasaṅgaha:
+62,244,2,3. suvaṇṇabhūmisāsanavaṃsakathāmaggo,:añña::vaṃsa-ganthasaṅgaha::sāsanavaṃsappadīpikā::vaṃsa ganthasaṅgaha:
+62,305,2,4. yonakaraṭṭhasāsanavaṃsakathāmaggo,:añña::vaṃsa-ganthasaṅgaha::sāsanavaṃsappadīpikā::vaṃsa ganthasaṅgaha:
+62,338,2,5. navavāsīraṭṭhasāsanavaṃsakathāmaggo,:añña::vaṃsa-ganthasaṅgaha::sāsanavaṃsappadīpikā::vaṃsa ganthasaṅgaha:
+62,364,2,6. aparantaraṭṭhasāsanavaṃsakathāmaggo,:añña::vaṃsa-ganthasaṅgaha::sāsanavaṃsappadīpikā::vaṃsa ganthasaṅgaha:
+62,907,2,7. kasmiragandhāraraṭṭhasāsanavaṃsakathāmaggo,:añña::vaṃsa-ganthasaṅgaha::sāsanavaṃsappadīpikā::vaṃsa ganthasaṅgaha:
+62,929,2,8. mahiṃsakaraṭṭhassāsanavaṃsakathāmaggo,:añña::vaṃsa-ganthasaṅgaha::sāsanavaṃsappadīpikā::vaṃsa ganthasaṅgaha:
+62,938,2,9. mahāraṭṭhasāsanavaṃsakathāmaggo,:añña::vaṃsa-ganthasaṅgaha::sāsanavaṃsappadīpikā::vaṃsa ganthasaṅgaha:
+62,950,2,10. cinaraṭṭhasāsanavaṃsakathāmaggo,:añña::vaṃsa-ganthasaṅgaha::sāsanavaṃsappadīpikā::vaṃsa ganthasaṅgaha:
+63,2,1,mahāvaṃsapāḷi,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,3,2,pathamapariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,269,2,dutiyapariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,375,2,tatiya pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,508,2,catuttha pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,717,2,pañcama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,1612,2,chaṭṭhapariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,1760,2,sattama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,1997,2,aṭṭhama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,2088,2,navama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,2184,2,dasama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,2513,2,ekādasama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,2646,2,dvādasama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,2819,2,terasama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,2891,2,cuddasama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,3093,2,pañcadasama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,3808,2,soḷasama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,3869,2,sattarasama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,4073,2,aṭṭhārasama pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,4284,2,ekūnavīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,4545,2,vīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,4729,2,ekavīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,4840,2,bāvīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,5113,2,tevīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,5439,2,catuvīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,5629,2,pañcavīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,5992,2,chabbīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,6079,2,sattavīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,6234,2,aṭṭhavīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,6375,2,ekūnatiṃsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,6592,2,tiṃsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,6903,2,ekatiṃsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,7285,2,dvattiṃsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,7552,2,tettiṃsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,7883,2,catuttiṃsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,8172,2,pañcatiṃsatimapariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,8562,2,chattiṃsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,8972,2,sattatiṃsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,9728,2,aṭṭhatiṃsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,10082,2,ekūnacattālīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,10268,2,cattālīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,10584,2,ekacattālīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,10798,2,dvicattālīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,11270,2,tecattālīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,11523,2,catucattālīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,11673,2,pañcacattālīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,11874,2,chacattālīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,12362,2,sattacattālīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,12651,2,aṭṭhacattālīsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,12921,2,ekūnapaññāsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,13338,2,paññāsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,13593,2,ekapaññāsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,13756,2,dvipaññāsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,13983,2,tivaññāsatima paccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,14092,2,catupaññāsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,14150,2,pañcapaññāsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,14385,2,chapaññāsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,14569,2,sattapaññāsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,14729,2,aṭṭhapaññāsatima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,15006,2,ekūnasaṭṭhima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,15233,2,saṭṭhima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,15441,2,ekasaṭṭhima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,15607,2,dvisaṭṭhimapariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
+63,15806,2,tisaṭṭhima pariccheda,:añña::vaṃsa-ganthasaṅgaha::mahāvaṃsapāḷi::vaṃsa ganthasaṅgaha:
 64,2,1,visuddhimaggo,:visuddhimagga::añña::visuddhimagga::paṭhamo bhāgo::aṭṭhakathā:
 64,60,2,1. sīlaniddeso,:visuddhimagga::añña::visuddhimagga::paṭhamo bhāgo::aṭṭhakathā:
 64,417,2,2. dhutaṅganiddeso,:visuddhimagga::añña::visuddhimagga::paṭhamo bhāgo::aṭṭhakathā:
@@ -1193,36 +1193,36 @@ book,paragraph,level,title,tag
 107,3370,2,54. kaccāyanavaggo,:apadāna::aṭṭhakathā::sutta::khuddakanikāya::apadāna::therāpadāna:
 107,3501,2,55. bhaddiyavaggo,:apadāna::aṭṭhakathā::sutta::khuddakanikāya::apadāna::therāpadāna:
 107,3734,2,56. yasavaggo,:apadāna::aṭṭhakathā::sutta::khuddakanikāya::apadāna::therāpadāna:
-108,3,1,buddhavaṃsa-aṭṭhakathā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,4,2,ganthārambhakathā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,54,2,1. ratanacaṅkamanakaṇḍavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,695,2,2. sumedhapatthanākathāvaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,1487,2,3. dīpaṅkarabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,1686,2,4. koṇḍaññabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,1832,2,5. maṅgalabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,1956,2,6. sumanabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,2081,2,7. revatabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,2178,2,8. sobhitabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,2264,2,9. anomadassībuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,2354,2,10. padumabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,2437,2,11. nāradabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,2543,2,12. padumuttarabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,2647,2,13. sumedhabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,2737,2,14. sujātabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,2838,2,15. piyadassībuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,2936,2,16. atthadassībuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,3009,2,17. dhammadassībuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,3078,2,18. siddhatthabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,3145,2,19. tissabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,3223,2,20. phussabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,3283,2,21. vipassībuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,3404,2,22. sikhībuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,3489,2,23. vessabhūbuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,3581,2,24. kakusandhabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,3657,2,25. koṇāgamanabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,3742,2,26. kassapabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,3867,2,27. gotamabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
-108,4085,2,28. buddhapakiṇṇakakathā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa:
+108,3,1,buddhavaṃsa-aṭṭhakathā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,4,2,ganthārambhakathā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,54,2,1. ratanacaṅkamanakaṇḍavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,695,2,2. sumedhapatthanākathāvaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,1487,2,3. dīpaṅkarabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,1686,2,4. koṇḍaññabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,1832,2,5. maṅgalabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,1956,2,6. sumanabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,2081,2,7. revatabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,2178,2,8. sobhitabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,2264,2,9. anomadassībuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,2354,2,10. padumabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,2437,2,11. nāradabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,2543,2,12. padumuttarabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,2647,2,13. sumedhabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,2737,2,14. sujātabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,2838,2,15. piyadassībuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,2936,2,16. atthadassībuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,3009,2,17. dhammadassībuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,3078,2,18. siddhatthabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,3145,2,19. tissabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,3223,2,20. phussabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,3283,2,21. vipassībuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,3404,2,22. sikhībuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,3489,2,23. vessabhūbuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,3581,2,24. kakusandhabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,3657,2,25. koṇāgamanabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,3742,2,26. kassapabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,3867,2,27. gotamabuddhavaṃsavaṇṇanā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
+108,4085,2,28. buddhapakiṇṇakakathā,:aṭṭhakathā::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha:
 109,3,1,cariyāpiṭaka-aṭṭhakathā,:aṭṭhakathā::sutta::khuddakanikāya::cariyāpiṭaka::carita:
 109,4,2,ganthārambhakathā,:aṭṭhakathā::sutta::khuddakanikāya::cariyāpiṭaka::carita:
 109,123,2,1. akittivaggo,:aṭṭhakathā::sutta::khuddakanikāya::cariyāpiṭaka::carita:
@@ -1599,36 +1599,36 @@ book,paragraph,level,title,tag
 144,6937,2,2. ekūposathikavaggo,:apadāna::mūla::sutta::khuddakanikāya::apadāna::therīapadāna::pāḷi:
 144,8479,2,3. kuṇḍalakesīvaggo,:apadāna::mūla::sutta::khuddakanikāya::apadāna::therīapadāna::pāḷi:
 144,9951,2,4. khattiyāvaggo,:apadāna::mūla::sutta::khuddakanikāya::apadāna::therīapadāna::pāḷi:
-145,3,1,buddhavaṃsapāḷi,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,4,2,1. ratanacaṅkamanakaṇḍaṃ,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,252,2,2. sumedhapatthanākathā,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,827,2,3. dīpaṅkarabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,922,2,4. koṇḍaññabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,1040,2,5. maṅgalabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,1138,2,6. sumanabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,1241,2,7. revatabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,1330,2,8. sobhitabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,1421,2,9. anomadassībuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,1509,2,10. padumabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,1597,2,11. nāradabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,1697,2,12. padumuttarabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,1791,2,13. sumedhabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,1885,2,14. sujātabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,1994,2,15. piyadassībuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,2076,2,16. atthadassībuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,2155,2,17. dhammadassībuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,2231,2,18. siddhatthabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,2304,2,19. tissabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,2389,2,20. phussabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,2465,2,21. vipassībuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,2581,2,22. sikhībuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,2666,2,23. vessabhūbuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,2758,2,24. kakusandhabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,2840,2,25. koṇāgamanabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,2928,2,26. kassapabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,3087,2,27. gotamabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,3163,2,28. buddhapakiṇṇakakaṇḍaṃ,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
-145,3226,2,29. dhātubhājanīyakathā,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa::pāḷi:
+145,3,1,buddhavaṃsapāḷi,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,4,2,1. ratanacaṅkamanakaṇḍaṃ,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,252,2,2. sumedhapatthanākathā,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,827,2,3. dīpaṅkarabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,922,2,4. koṇḍaññabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,1040,2,5. maṅgalabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,1138,2,6. sumanabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,1241,2,7. revatabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,1330,2,8. sobhitabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,1421,2,9. anomadassībuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,1509,2,10. padumabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,1597,2,11. nāradabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,1697,2,12. padumuttarabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,1791,2,13. sumedhabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,1885,2,14. sujātabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,1994,2,15. piyadassībuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,2076,2,16. atthadassībuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,2155,2,17. dhammadassībuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,2231,2,18. siddhatthabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,2304,2,19. tissabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,2389,2,20. phussabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,2465,2,21. vipassībuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,2581,2,22. sikhībuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,2666,2,23. vessabhūbuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,2758,2,24. kakusandhabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,2840,2,25. koṇāgamanabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,2928,2,26. kassapabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,3087,2,27. gotamabuddhavaṃso,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,3163,2,28. buddhapakiṇṇakakaṇḍaṃ,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
+145,3226,2,29. dhātubhājanīyakathā,:buddhavaṃsa::mūla::sutta::khuddakanikāya::buddhavaṃsa::vaṃsa ganthasaṅgaha::pāḷi:
 146,3,1,cariyāpiṭakapāḷi,:cariyāpiṭaka::mūla::sutta::khuddakanikāya::cariyāpiṭaka::carita::pāḷi:
 146,4,2,1. akittivaggo,:cariyāpiṭaka::mūla::sutta::khuddakanikāya::cariyāpiṭaka::carita::pāḷi:
 146,467,2,2. hatthināgavaggo,:cariyāpiṭaka::mūla::sutta::khuddakanikāya::cariyāpiṭaka::carita::pāḷi:

+ 10 - 10
v1/scripts/upgrade_redis.bat

@@ -1,22 +1,22 @@
 net time \\127.0.0.1
-php ../app/dict/redis_import_dict.php ../../dicttext/system/system.json
+php ../../public/app/dict/redis_import_dict.php ../../dicttext/system/system.json
 
-php ../app/dict/redis_import_dict.php ../../dicttext/rich/rich.json
+php ../../public/app/dict/redis_import_dict.php ../../dicttext/rich/rich.json
 
-php ../app/dict/redis_import_dict.php ../../tmp/dict_text/comp.json
+php ../../public/app/dict/redis_import_dict.php ../../tmp/dict_text/comp.json
 
-php ../app/dict/redis_import_term.php
+php ../../public/app/dict/redis_import_term.php
 
-php ../app/dict/redis_import_user.php
+php ../../public/app/dict/redis_import_user.php
 
-php ../app/dict/redis_ref_with_mean.php
+php ../../public/app/dict/redis_ref_with_mean.php
 
-php ../app/dict/redis_refresh_first_mean.php
+php ../../public/app/dict/redis_refresh_first_mean.php
 
-php ../app/dict/redis_sys_rgl_part.php
+php ../../public/app/dict/redis_sys_rgl_part.php
 
-php ../app/dict/redis_pm_part.php
+php ../../public/app/dict/redis_pm_part.php
 
-php ../app/pali_sent/redis_upgrade_pali_sent.php
+php ../../public/app/pali_sent/redis_upgrade_pali_sent.php
 
 net time \\127.0.0.1