Files
knowledge_base/src/database/seeders/DocumentSeeder.php
Yutaka Kurosaki ecfa21d56c feat: Add DocumentSeeder with initial documents
- 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
2025-11-29 11:40:08 +09:00

259 lines
5.5 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?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
![代替テキスト](https://example.com/image.png)
```
## 水平線
```markdown
---
```
---
## 関連ページ
- [[Getting Started]] - 基本的な使い方
- [[Home]] - ホームに戻る
MARKDOWN;
}
}