web.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <?php
  2. use App\Http\Controllers\AssetsController;
  3. use App\Http\Controllers\BlogController;
  4. use App\Http\Controllers\DownloadController;
  5. use App\Http\Controllers\Library\AnthologyController;
  6. use App\Http\Controllers\Library\AnthologyReadController;
  7. use App\Http\Controllers\Library\BookController;
  8. use App\Http\Controllers\Library\CourseController;
  9. use App\Http\Controllers\Library\HomeController;
  10. use App\Http\Controllers\Library\SearchController;
  11. use App\Http\Controllers\Library\TipitakaController;
  12. use App\Http\Controllers\Library\WikiController;
  13. use App\Http\Controllers\PageIndexController;
  14. use App\Http\Controllers\WbwAnalysisController;
  15. use Illuminate\Support\Facades\File;
  16. use Illuminate\Support\Facades\Route;
  17. /*
  18. |--------------------------------------------------------------------------
  19. | Web Routes
  20. |--------------------------------------------------------------------------
  21. |
  22. | Here is where you can register web routes for your application. These
  23. | routes are loaded by the RouteServiceProvider within a group which
  24. | contains the "web" middleware group. Now create something great!
  25. |
  26. */
  27. Route::redirect('/app', '/app/pcdl/index.php');
  28. Route::redirect('/app/pcdl', '/app/pcdl/index.php');
  29. Route::get('/', [PageIndexController::class, 'index']);
  30. Route::get('/wbwanalyses', [WbwAnalysisController::class, 'index']);
  31. Route::get('/attachments/{bucket}/{name}', [AssetsController::class, 'show']);
  32. Route::get('/export/wbw', function () {
  33. return view('export_wbw', ['sentences' => []]);
  34. });
  35. Route::get('/privacy/{file}', function (string $file) {
  36. $path = base_path("documents/mobile/privacy/{$file}.md");
  37. abort_unless(File::exists($path), 404);
  38. return view('privacy', [
  39. 'content' => File::get($path),
  40. ]);
  41. });
  42. Route::get('/book/{id}', function ($id) {
  43. return view('book', ['id' => $id]);
  44. });
  45. Route::redirect('/privacy', '/privacy/index');
  46. Route::post('/theme/toggle', [BookController::class, 'toggleTheme'])->name('theme.toggle');
  47. Route::post('/logout', function () {
  48. // Handle logout
  49. // Auth::logout();
  50. return redirect('/login');
  51. })->name('logout');
  52. Route::prefix('library')->name('library.')->group(function () {
  53. Route::get('/', [HomeController::class, 'index'])->name('home');
  54. Route::get('/tipitaka', [TipitakaController::class, 'index'])->name('tipitaka.index');
  55. Route::get('/tipitaka/category/{id}', [TipitakaController::class, 'index'])->name('tipitaka.category');
  56. Route::get('/tipitaka/{id}', [BookController::class, 'show'])->name('tipitaka.show');
  57. Route::get('/tipitaka/{id}/read', [BookController::class, 'read'])->name('tipitaka.read');
  58. Route::get('/wiki', [WikiController::class, 'home'])->name('wiki.home');
  59. Route::get('/wiki/{lang}', [WikiController::class, 'index'])->name('wiki.index');
  60. Route::get('/wiki/{lang}/{word}', [WikiController::class, 'show'])->name('wiki.show');
  61. Route::get('/course', [CourseController::class, 'index'])->name('course');
  62. Route::get('/course/history', [CourseController::class, 'history'])->name('course.history');
  63. Route::get('/download', [DownloadController::class, 'index'])->name('download');
  64. // 文集
  65. Route::get('/anthology', [AnthologyController::class, 'index'])->name('anthology.index');
  66. Route::get('/anthology/{id}', [AnthologyController::class, 'show'])->name('anthology.show');
  67. Route::get(
  68. '/anthology/{anthology}/read/{article}',
  69. [AnthologyReadController::class, 'read']
  70. )->name('anthology.read');
  71. Route::get('/search', [SearchController::class, 'search'])->name('search');
  72. Route::get('/tools/script-convertor', function () {
  73. return view('library.tools.script-convertor');
  74. })->name('tools.script-convertor');
  75. });
  76. // 博客路由
  77. Route::prefix('blog')->group(function () {
  78. Route::get('/{user}', [BlogController::class, 'index'])->name('blog.index')->where('user', '[a-zA-Z0-9_-]+');
  79. Route::get('/{user}/categories', [BlogController::class, 'categories'])->name('blog.categories');
  80. Route::get('/{user}/category/{category1}/{category2?}/{category3?}/{category4?}/{category5?}', [BlogController::class, 'category'])->name('blog.category');
  81. Route::get('/{user}/archives', [BlogController::class, 'archives'])->name('blog.archives');
  82. Route::get('/{user}/archives/{year}', [BlogController::class, 'archivesByYear'])->name('blog.archives.year');
  83. Route::get('/{user}/tag/{tag}', [BlogController::class, 'tag'])->name('blog.tag');
  84. Route::get('/{user}/search', [BlogController::class, 'search'])->name('blog.search');
  85. Route::get('/{user}/{post}', [BlogController::class, 'show'])
  86. ->name('blog.show')
  87. ->where([
  88. 'user' => '[a-zA-Z0-9_-]+',
  89. 'post' => '[a-zA-Z0-9_-]+',
  90. ]);
  91. });
  92. Route::group(['prefix' => 'tools'], function () {
  93. Route::get('/nissaya_format_converter', function () {
  94. return view('nissaya_format_converter');
  95. });
  96. });