diff --git a/composer.json b/composer.json index 3079052..b4427db 100644 --- a/composer.json +++ b/composer.json @@ -23,6 +23,7 @@ "ext-mbstring": "*", "ext-fileinfo": "*", "league/commonmark": ">=2.3.8", - "gregwar/rst": "^1.0" + "gregwar/rst": "^1.0", + "xemlock/php-latex": "dev-master" } } diff --git a/constant.php b/constant.php index 7c0c39c..69b7d32 100644 --- a/constant.php +++ b/constant.php @@ -2,6 +2,6 @@ const APP_NAME = "ph-Bookshelf"; -const VERSION = "0.3.2"; +const VERSION = "0.3.3"; const CHANNEL = "suk-ws"; const BRANCH = "master"; diff --git a/index.php b/index.php index c036fe4..5abaa4f 100644 --- a/index.php +++ b/index.php @@ -52,8 +52,22 @@ try { // 页面寻找失败,寻找资源文件 - if (!is_file($resLoc = "./data/%assets/$req")) { // 全局文件夹的资源文件 - throw $e; + if ( // 搜索全局资源文件夹的指定文件 + file_exists($resLoc = "./data/%assets/$req") + ) {} else if ( // 搜索原始路径上的文件 + file_exists($resLoc = "./data/$req") + ) {} else if ( // 搜索可能存在的书籍资源文件夹中的指定文件 + sizeof($uri) > 1 && ($resBook = (SiteMeta::getBookshelf()->getBook($uri[0]))) != null && + file_exists($resLoc = "./data/{$resBook->getId()}/%assets/$uri[1]") + ) {} else if ( // 上面的 %root 兼容 + sizeof($uri) > 1 && ($resBook = $uri[0]) == "%root" && + file_exists($resLoc = "./data/$resBook/%assets/$uri[1]") + ) {} else if ( // 搜索以root书为根目录的原始路径上的文件 + file_exists($resLoc = "./data/%root/$req") + ) {} else if ( // 搜索root书中的书籍资源文件夹中的文件 + file_exists($resLoc = "./data/%root/%assets/$req") + ) {} else { + throw $e; // 找不到资源文件 } PageParse::outputBinaryFile($resLoc); diff --git a/src/Utils/HTML/HTML.php b/src/Utils/HTML/HTML.php new file mode 100644 index 0000000..b38f538 --- /dev/null +++ b/src/Utils/HTML/HTML.php @@ -0,0 +1,19 @@ +render((new PhpLatex_Parser())->parse($raw)); + } + +} \ No newline at end of file diff --git a/template/raw-article.php b/template/raw-article.php index 7cfd870..87fa456 100644 --- a/template/raw-article.php +++ b/template/raw-article.php @@ -1,6 +1,8 @@ hasContent(Markd } $parsers = array( + new HTML(), new Markdown(), + new LaTeX(), new ReST() );