| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | 
							- <?php
 
- /**
 
-  * @link http://www.yiiframework.com/
 
-  * @copyright Copyright (c) 2008 Yii Software LLC
 
-  * @license http://www.yiiframework.com/license/
 
-  */
 
- namespace yii\apidoc\helpers;
 
- use cebe\jssearch\Indexer;
 
- use cebe\jssearch\tokenizer\StandardTokenizer;
 
- use cebe\jssearch\TokenizerInterface;
 
- use yii\helpers\StringHelper;
 
- /**
 
-  * ApiIndexer indexes framework API
 
-  */
 
- class ApiIndexer extends Indexer
 
- {
 
-     /**
 
-      * @param string $file
 
-      * @param string $contents
 
-      * @param string $basePath
 
-      * @param string $baseUrl
 
-      * @return array
 
-      */
 
-     protected function generateFileInfo($file, $contents, $basePath, $baseUrl)
 
-     {
 
-         // create file entry
 
-         if (preg_match('~<h1>(.*?)</h1>~s', $contents, $matches)) {
 
-             $title = str_replace('¶', '', strip_tags($matches[1]));
 
-         } elseif (preg_match('~<title>(.*?)</title>~s', $contents, $matches)) {
 
-             $title = strip_tags($matches[1]);
 
-         } else {
 
-             $title = '<i>No title</i>';
 
-         }
 
-         if (preg_match('~<div id="classDescription">\s*<strong>(.*?)</strong>~s', $contents, $matches)) {
 
-             $description = strip_tags($matches[1]);
 
-         } elseif (preg_match('~<p>(.*?)</p>~s', $contents, $matches)) {
 
-             $description = StringHelper::truncate(strip_tags($matches[1]), 1000, '...', 'UTF-8');
 
-         } else {
 
-             $description = '';
 
-         }
 
-         return [
 
-             'u' => $baseUrl . str_replace('\\', '/', substr($file, strlen(rtrim($basePath, '\\/')))),
 
-             't' => $title,
 
-             'd' => $description,
 
-         ];
 
-     }
 
-     /**
 
-      * @return TokenizerInterface
 
-      */
 
-     public function getTokenizer()
 
-     {
 
-         $tokenizer = parent::getTokenizer();
 
-         if ($tokenizer instanceof StandardTokenizer) {
 
-             // yii is part of every doc and makes weird search results
 
-             $tokenizer->stopWords[] = 'yii';
 
-             $tokenizer->stopWords = array_unique($tokenizer->stopWords);
 
-         }
 
-         return $tokenizer;
 
-     }
 
- }
 
 
  |