- Add DocumentSeeder with Home, Getting Started, and Markdown Guide - Update DatabaseSeeder to call UserSeeder and DocumentSeeder - Update UserSeeder to set is_admin flag - Update README with seeder documentation
259 lines
5.5 KiB
PHP
259 lines
5.5 KiB
PHP
<?php
|
||
|
||
namespace Database\Seeders;
|
||
|
||
use App\Models\Document;
|
||
use Illuminate\Database\Seeder;
|
||
|
||
class DocumentSeeder extends Seeder
|
||
{
|
||
/**
|
||
* Run the database seeds.
|
||
*/
|
||
public function run(): void
|
||
{
|
||
// 既存のドキュメントがある場合はスキップ
|
||
if (Document::count() > 0) {
|
||
$this->command->info('Documents already exist. Skipping...');
|
||
return;
|
||
}
|
||
|
||
$documents = [
|
||
[
|
||
'title' => 'Home',
|
||
'path' => 'Home.md',
|
||
'slug' => 'home',
|
||
'content' => $this->getHomeContent(),
|
||
],
|
||
[
|
||
'title' => 'Getting Started',
|
||
'path' => 'Getting Started.md',
|
||
'slug' => 'getting-started',
|
||
'content' => $this->getGettingStartedContent(),
|
||
],
|
||
[
|
||
'title' => 'Markdown Guide',
|
||
'path' => 'Markdown Guide.md',
|
||
'slug' => 'markdown-guide',
|
||
'content' => $this->getMarkdownGuideContent(),
|
||
],
|
||
];
|
||
|
||
foreach ($documents as $doc) {
|
||
Document::create([
|
||
'title' => $doc['title'],
|
||
'path' => $doc['path'],
|
||
'slug' => $doc['slug'],
|
||
'content' => $doc['content'],
|
||
'rendered_html' => Document::renderMarkdown($doc['content']),
|
||
]);
|
||
|
||
$this->command->info("Created: {$doc['title']}");
|
||
}
|
||
|
||
$this->command->info('Initial documents created successfully!');
|
||
}
|
||
|
||
private function getHomeContent(): string
|
||
{
|
||
return <<<'MARKDOWN'
|
||
# Welcome to Knowledge Base
|
||
|
||
ナレッジベースへようこそ!このアプリケーションは、Markdownで知識を整理・共有するためのツールです。
|
||
|
||
## 🚀 クイックスタート
|
||
|
||
- **Ctrl+K** (Mac: **Cmd+K**) でクイックスイッチャーを開く
|
||
- サイドバーの「New Document」で新規ドキュメント作成
|
||
- `[[ページ名]]` でWikiリンクを作成
|
||
|
||
## 📚 ドキュメント
|
||
|
||
- [[Getting Started]] - 基本的な使い方
|
||
- [[Markdown Guide]] - Markdown記法ガイド
|
||
|
||
## ✨ 機能
|
||
|
||
| 機能 | 説明 |
|
||
|------|------|
|
||
| Wikiリンク | `[[ページ名]]` で簡単リンク |
|
||
| 階層構造 | タイトルに `/` を含めて整理 |
|
||
| 全文検索 | クイックスイッチャーで高速検索 |
|
||
| シンタックスハイライト | コードブロックを美しく表示 |
|
||
|
||
## 🔗 便利なリンク
|
||
|
||
- [Laravel Documentation](https://laravel.com/docs)
|
||
- [Markdown Cheatsheet](https://www.markdownguide.org/cheat-sheet/)
|
||
MARKDOWN;
|
||
}
|
||
|
||
private function getGettingStartedContent(): string
|
||
{
|
||
return <<<'MARKDOWN'
|
||
# Getting Started
|
||
|
||
このガイドでは、ナレッジベースの基本的な使い方を説明します。
|
||
|
||
## ドキュメントの作成
|
||
|
||
1. サイドバーの「**New Document**」ボタンをクリック
|
||
2. タイトルを入力(`/` を含めると階層化されます)
|
||
3. Markdownでコンテンツを記述
|
||
4. 「Save」で保存
|
||
|
||
### 階層構造の例
|
||
|
||
タイトルに `/` を含めると自動的にフォルダ構造が作成されます:
|
||
|
||
- `Laravel/Eloquent/Relationships` → Laravel > Eloquent フォルダ内
|
||
- `プロジェクト/2024/メモ` → プロジェクト > 2024 フォルダ内
|
||
|
||
## Wikiリンク
|
||
|
||
他のドキュメントへのリンクは `[[ページ名]]` 記法で作成できます:
|
||
|
||
```markdown
|
||
詳細は [[Markdown Guide]] を参照してください。
|
||
[[Home]] に戻る
|
||
```
|
||
|
||
存在しないページへのリンクをクリックすると、新規作成画面が開きます。
|
||
|
||
## キーボードショートカット
|
||
|
||
| ショートカット | 機能 |
|
||
|--------------|------|
|
||
| Ctrl+K / Cmd+K | クイックスイッチャーを開く |
|
||
| Esc | モーダルを閉じる |
|
||
| ↑ / ↓ | 検索結果をナビゲート |
|
||
| Enter | 選択したドキュメントを開く |
|
||
|
||
## 次のステップ
|
||
|
||
- [[Markdown Guide]] でMarkdown記法を学ぶ
|
||
- [[Home]] に戻る
|
||
MARKDOWN;
|
||
}
|
||
|
||
private function getMarkdownGuideContent(): string
|
||
{
|
||
return <<<'MARKDOWN'
|
||
# Markdown Guide
|
||
|
||
このページでは、使用できるMarkdown記法を紹介します。
|
||
|
||
## 見出し
|
||
|
||
```markdown
|
||
# 見出し1
|
||
## 見出し2
|
||
### 見出し3
|
||
```
|
||
|
||
## テキスト装飾
|
||
|
||
```markdown
|
||
**太字**
|
||
*イタリック*
|
||
~~取り消し線~~
|
||
`インラインコード`
|
||
```
|
||
|
||
**太字** / *イタリック* / ~~取り消し線~~ / `インラインコード`
|
||
|
||
## リスト
|
||
|
||
### 順序なしリスト
|
||
|
||
```markdown
|
||
- 項目1
|
||
- 項目2
|
||
- ネスト項目
|
||
```
|
||
|
||
- 項目1
|
||
- 項目2
|
||
- ネスト項目
|
||
|
||
### 順序付きリスト
|
||
|
||
```markdown
|
||
1. 最初
|
||
2. 次
|
||
3. 最後
|
||
```
|
||
|
||
1. 最初
|
||
2. 次
|
||
3. 最後
|
||
|
||
## コードブロック
|
||
|
||
````markdown
|
||
```php
|
||
<?php
|
||
echo "Hello, World!";
|
||
```
|
||
````
|
||
|
||
```php
|
||
<?php
|
||
echo "Hello, World!";
|
||
```
|
||
|
||
## テーブル
|
||
|
||
```markdown
|
||
| 列1 | 列2 | 列3 |
|
||
|-----|-----|-----|
|
||
| A | B | C |
|
||
| D | E | F |
|
||
```
|
||
|
||
| 列1 | 列2 | 列3 |
|
||
|-----|-----|-----|
|
||
| A | B | C |
|
||
| D | E | F |
|
||
|
||
## 引用
|
||
|
||
```markdown
|
||
> これは引用です。
|
||
> 複数行にまたがることもできます。
|
||
```
|
||
|
||
> これは引用です。
|
||
> 複数行にまたがることもできます。
|
||
|
||
## リンク
|
||
|
||
```markdown
|
||
[外部リンク](https://example.com)
|
||
[[Wikiリンク]]
|
||
[[Getting Started]]
|
||
```
|
||
|
||
## 画像
|
||
|
||
```markdown
|
||

|
||
```
|
||
|
||
## 水平線
|
||
|
||
```markdown
|
||
---
|
||
```
|
||
|
||
---
|
||
|
||
## 関連ページ
|
||
|
||
- [[Getting Started]] - 基本的な使い方
|
||
- [[Home]] - ホームに戻る
|
||
MARKDOWN;
|
||
}
|
||
}
|
||
|