※ウェブアプリ
// プロデルなブログ //
//for プロデル Ver.1.9.1218
「pspt.rdr」を参照する

管理者パスワードは「admin」
プログラムのタイトルは「プロデルなブログ」
要求から「mode」という引数を取得して、モードとする
モードについて分岐
「detail」の場合
	日記詳細ページとして処理する
「category」の場合
	カテゴリ管理ページとして処理する
「search」の場合
	検索ページを表示する
「login」の場合
	ログインページとして処理する
「admin」の場合
	日記管理ページを表示する
「write」の場合
	日記投稿ページとして処理する
「edit」の場合
	日記編集ページとして処理する
その他の場合
	ブログトップページを表示する
そして

終了する

///////////////////////////////　バウンダリ　//////////////////////////////////
プロデルブログとは
	ページを受け継ぐ
	はじめの手順
		テンプレートファイルは「base.pspt」
		「タイトル」としてプログラムのタイトルを設定する
		「見出し」としてプログラムのタイトルを設定する
		「スクリプト」としてプログラムのファイル名を設定する
		「表示年月」として今日を設定する
		「警告メッセージ」として無を設定する
		「情報メッセージ」として無を設定する
	終わり
	
	【自分】を、表示する手順
		要求から「calendar」という引数を取得して"表示年月"とする
		表示年月が無でなければ
			「表示年月」として(表示年月を日時形式化したもの)を設定する
		そして
		継承元を表示する
	終わり
終わり

ブログトップページとは
	プロデルブログを受け継ぐ

	はじめの手順
		//ページパラメータの設定
		要求から「page」という引数を取得して、表示ページとする
		表示ページについて分岐
		「profile」の場合
			「メインテンプレート」として「profile.pspt」を設定する
		「link」の場合
			「メインテンプレート」として「link.pspt」を設定する
		その他の場合
			「メインテンプレート」として「diary.pspt」を設定する
		そして
	終わり
	
	【自分】を、表示する手順
		要求から「id」という引数を取得して、日記IDとする
		要求から「cat」という引数を取得して、カテゴリIDとする
		要求から「day」という引数を取得して、選択日時とする
		日記IDが無でなければ
			ブログ管理から日記IDの日記を取得して、日記一覧とする
			「日記一覧」として日記一覧を設定する
		他でカテゴリIDが無でなければ
			ブログ管理からカテゴリがカテゴリIDの日記を取得して、日記一覧とする
			「日記一覧」として日記一覧を設定する
		他で選択日時が無でなければ
			日付は、選択日時を日時形式化したもの
			ブログ管理から日付だけの日記を取得して日記一覧とする
			「日記一覧」として日記一覧を設定する
		そうでなければ
			ブログ管理から日記を取得して日記一覧とする
			「日記一覧」として日記一覧を設定する
		そして
		ブログ管理から最近の日記を取得して日記一覧とする
		「最近日記一覧」として日記一覧を設定する
		ブログ管理からカテゴリを取得してカテゴリ一覧とする
		「カテゴリ一覧」としてカテゴリ一覧を設定する
		継承元を表示する
	終わり
終わり


日記詳細ページとは
	プロデルブログを受け継ぐ
	+コメントフォーム

	はじめの手順
		「メインテンプレート」として「diarydetail.pspt」を設定する
	終わり
	
	【自分】として、処理する手順
		要求から「id」という引数を取得して、日記IDとする
		要求から「docomment」という引数を取得したものが無でなければ
			コメントフォームというフォーム（要求）を作る
			コメントフォームへ「お名前」として「name」を加える。その空欄可能は、×
			コメントフォームへ「コメント」として「comment」を加える。その空欄可能は、×
			コメントフォームへ「パスワード」として「pass」を加える。その空欄可能は、×
			コメントフォームを検証して、エラー一覧とする
			エラー一覧の個数が0なら
				対象コメントというコメント()を作る
				対象コメントの日記IDは、日記ID
				対象コメントの名前は、コメントフォームから「name」を取得したもの
				対象コメントの本文は、コメントフォームから「comment」を取得したもの
				対象コメントのパスワードは、（コメントフォームから「pass」を取得したもの）からMD5ハッシュ値を計算したもの
				応答として「commentname」というクッキーへ（対象コメントの名前）を設定する
				応答として「commentpass」というクッキーへ（コメントフォームから「pass」を取得したもの）を設定する
				ブログ管理で対象コメントを登録する
			そうでなければ
				「警告メッセージ」として（エラー一覧を「<br>」で繋げたもの）を設定する
			そして
		他で要求から「doremove」という引数を取得したものが無でなければ
			対象コメントというコメント()を作る
			対象コメントのIDは、要求から「commentid」という引数を取得したもの
			対象コメントのパスワードは（要求から「pass」という引数を取得したもの）からMD5ハッシュ値を計算したもの
			対象コメントの日記IDは、日記ID
			ブログ管理で対象コメントを削除して処理数とする
			処理数が0なら
				「警告メッセージ」として「番号またはパスワードが違います。」を設定する
			そして
		そして
		自分を表示する
	終わり

	【自分】を、表示する手順
		要求から「id」という引数を取得して、日記IDとする
		日記IDが無でなければ
			ブログ管理から日記IDの日記を取得して、日記一覧とする
		そうでなければ
			ブログ管理から日記を取得して、日記一覧とする
		そして
		「対象日記」として日記一覧（1）を設定する

		ブログ管理から日記IDのコメントを取得して、コメント一覧とする
		「コメント一覧」としてコメント一覧を設定する
		要求から「commentname」というクッキーを取得して、名前クッキーとする
		要求から「commentpass」というクッキーを取得して、パスワードクッキーとする
		名前クッキーが無でなければ
			「コメント名前」として[名前クッキーの内容]を設定する
			「コメントパスワード」として[パスワードクッキーの内容]を設定する
		そうでなければ
			「コメント名前」として「」を設定する
			「コメントパスワード」として「」を設定する
		そして

		ブログ管理から最近の日記を取得して、日記一覧とする
		「最近日記一覧」として日記一覧を設定する
		ブログ管理からカテゴリを取得して、カテゴリ一覧とする
		「カテゴリ一覧」としてカテゴリ一覧を設定する

		継承元を表示する
	終わり
終わり

ログインページとは
	プロデルブログを受け継ぐ

	はじめの手順
		//ページパラメータの設定
		「タイトル」として「管理ページログイン - 」&プログラムのタイトルを設定する
		「見出し」として「ログイン」を設定する
		「メインテンプレート」として「login.pspt」を設定する
	終わり
	
	【自分】として、処理する手順
		要求から「dologin」という引数を取得したものが無でなければ
			要求から「password」という引数を取得して入力パスワードとする
			入力パスワードが管理者パスワードなら
				パスワードハッシュは、入力パスワードからMD5ハッシュ値を計算したもの
				応答として「login」というクッキーへパスワードハッシュを設定する
				応答として「?mode=admin」へリダイレクトする
			そうでなければ
				「警告メッセージ」として「パスワードが違います。」を設定する
			そして
		そして
		表示する
	終わり
	
	【自分】を、表示する手順
		ブログ管理から最近の日記を取得して、日記一覧とする
		「最近日記一覧」として日記一覧を設定する
		ブログ管理からカテゴリを取得して、カテゴリ一覧とする
		「カテゴリ一覧」としてカテゴリ一覧を設定する

		継承元を表示する
	終わり
終わり

日記編集ページとは
	プロデルブログを受け継ぐ
	+日記投稿フォーム

	はじめの手順
		//ページパラメータの設定
		「タイトル」として「編集 - [プログラムのタイトル]」を設定する
		「見出し」として「編集する」を設定する
		「メインテンプレート」として「edit.pspt」を設定する
	終わり
	
	【自分】として、処理する手順
		日記投稿フォームというフォーム（要求）を作る
		日記投稿フォームへ「タイトル」として「title」を加える。その空欄可能は、×
		日記投稿フォームへ「本文」として「content」を加える。その空欄可能は、×
		日記投稿フォームへ「カテゴリ」として「category」を加える。その空欄可能は、×
		表示する
	終わり
	
	【自分】を、表示する手順
		ブログ管理からカテゴリを取得して、カテゴリ一覧とする
		「最近日記一覧」として無を設定する
		「カテゴリ一覧」としてカテゴリ一覧を設定する
		要求から「id」という引数を取得して日記IDとする
		要求から「doedit」という引数を取得したものが無でなければ
			日記投稿フォームを検証して、エラー一覧とする
			エラー一覧の個数が0なら
				対象日記という日記を作る
				対象日記のIDは、日記ID
				対象日記のタイトルは、要求から「title」という引数を取得したもの
				対象日記のカテゴリIDは、要求から「category」という引数を取得したもの
				対象日記の本文は、要求から「content」という引数を取得したもの
				ブログ管理で対象日記を更新する
				日記管理ページを表示する
			そうでなければ
				「警告メッセージ」として（エラー一覧を「<br>」で繋げたもの）を設定する
				継承元を表示する
			そして
		他で要求から「doremove」という引数を取得したものが無でなければ
			対象日記という日記を作る
			対象日記のIDは、日記ID
			ブログ管理で対象日記を削除する
			日記管理ページを表示する
		そうでなければ
			ブログ管理から日記IDの日記を取得して、日記一覧とする
			編集日記は、日記一覧（1）
			「編集日記」として編集日記を設定する
			選択カテゴリは、編集日記のカテゴリID
			「選択カテゴリ」として選択カテゴリを設定する
			継承元を表示する
		そして
	終わり
終わり

日記投稿ページとは
	プロデルブログを受け継ぐ
	+日記投稿フォーム

	はじめの手順
		//ページパラメータの設定
		「タイトル」として「投稿 - 」&プログラムのタイトルを設定する
		「見出し」として「投稿する」を設定する
		「メインテンプレート」として「write.pspt」を設定する
	終わり
	
	【自分】として、処理する手順
		日記投稿フォームというフォーム（要求）を作る
		日記投稿フォームへ「タイトル」として「title」を加える。その空欄可能は、×
		日記投稿フォームへ「本文」として「content」を加える。その空欄可能は、×
		日記投稿フォームへ「カテゴリ」として「category」を加える。その空欄可能は、×
		表示する
	終わり
	
	【自分】を、表示する手順
		ブログ管理からカテゴリを取得して、カテゴリ一覧とする
		「最近日記一覧」として無を設定する
		「カテゴリ一覧」としてカテゴリ一覧を設定する
		要求から「dowrite」という引数を取得したものが無でなければ
			日記投稿フォームを検証して、エラー一覧とする
			エラー一覧の個数が0なら
				新規日記という日記を作る
				新規日記のタイトルは、日記投稿フォームから「title」を取得したもの
				新規日記の本文は、日記投稿フォームから「content」を取得したもの
				新規日記のカテゴリIDは、日記投稿フォームから「category」を取得したもの
				ブログ管理で新規日記を登録する
				ブログトップページを表示する
			そうでなければ
				「警告メッセージ」として（エラー一覧を「<br>」で繋げたもの）を設定する
				継承元を表示する
			そして
		そうでなければ
			継承元を表示する
		そして
	終わり
終わり

日記管理ページとは
	プロデルブログを受け継ぐ

	はじめの手順
		//ページパラメータの設定
		「タイトル」として「日記の管理 - 」&プログラムのタイトルを設定する
		「見出し」として「日記の管理」を設定する
		「メインテンプレート」として「admin.pspt」を設定する
	終わり
	
	【自分】を、表示する手順
		ブログ管理からカテゴリを取得して、カテゴリ一覧とする
		「最近日記一覧」として無を設定する
		「カテゴリ一覧」としてカテゴリ一覧を設定する
			ブログ管理から日記を取得して、日記一覧とする
			「日記一覧」として日記一覧を設定する
		要求から「id」という引数を取得して日記IDとする
		要求から「doedit」という引数を取得したものが無でなければ
			対象日記という日記を作る
			対象日記のIDは、日記ID
			対象日記のタイトルは、要求から「title」という引数を取得したもの
			対象日記のカテゴリIDは、要求から「category」という引数を取得したもの
			対象日記の本文は、要求から「content」という引数を取得したもの
			ブログ管理で対象日記を更新する
			ブログトップページを表示する
		そうでなければ
			ブログ管理から日記IDの日記を取得して、日記一覧とする
			編集日記は、日記一覧（1）
			「編集日記」として編集日記を設定する
			継承元を表示する
		そして
	終わり
終わり

カテゴリ管理ページとは
	プロデルブログを受け継ぐ
	+カテゴリ管理フォーム

	はじめの手順
		//ページパラメータの設定
		「タイトル」として「カテゴリの管理 - 」&プログラムのタイトルを設定する
		「見出し」として「カテゴリの管理」を設定する
		「メインテンプレート」として「category.pspt」を設定する
	終わり
	
	【自分】として、処理する手順
		カテゴリ管理フォームというフォーム（要求）を作る
		カテゴリ管理フォームへ「カテゴリ名」として「name」を加える。その空欄可能は、×

		要求から「id」という引数を取得してカテゴリIDとする
		要求から「doadd」という引数を取得したものが無でなければ
			カテゴリ管理フォームを検証して、エラー一覧とする
			エラー一覧の個数が0なら
				新規カテゴリというカテゴリを作る
				新規カテゴリの名前は、カテゴリ管理フォームから「name」を取得したもの
				ブログ管理で新規カテゴリを登録する
			そうでなければ
				「警告メッセージ」として（エラー一覧を「<br>」で繋げたもの）を設定する
			そして
		他で要求から「doedit」という引数を取得したものが無でなければ
			カテゴリ管理フォームを検証して、エラー一覧とする
			エラー一覧の個数が0なら
				編集カテゴリというカテゴリを作る
				編集カテゴリのIDは、カテゴリID
				編集カテゴリの名前は、カテゴリ管理フォームから「name」を取得したもの
				ブログ管理で編集カテゴリを更新する
			そうでなければ
				「警告メッセージ」として（エラー一覧を「<br>」で繋げたもの）を設定する
			そして
		他で要求から「doremove」という引数を取得したものが無でなければ
			編集カテゴリというカテゴリを作る
			編集カテゴリのIDは、カテゴリID
			ブログ管理で編集カテゴリを削除する
		そして
		表示する
	終わり
	
	【自分】を、表示する手順
		「最近日記一覧」として無を設定する
		ブログ管理からカテゴリを取得してカテゴリ一覧とする
		「カテゴリ一覧」としてカテゴリ一覧を設定する

		要求から「id」という引数を取得してカテゴリIDとする
		カテゴリIDが無なら
			「編集カテゴリ」として無を設定する
		そうでなければ
			ブログ管理からカテゴリIDのカテゴリを取得して編集カテゴリとする
			「編集カテゴリ」として編集カテゴリを設定する
		そして
		継承元を表示する
	終わり
終わり

検索ページとは
	プロデルブログを受け継ぐ

	はじめの手順
		//ページパラメータの設定
		「タイトル」として「検索 - 」&プログラムのタイトルを設定する
		「見出し」として「検索する」を設定する
		「メインテンプレート」として「search.pspt」を設定する
	終わり
	
	【自分】を、表示する手順
		要求から「category」という引数を取得してカテゴリIDとする
		要求から「keyword」という引数を取得してキーワードとする
		選択カテゴリは、無
		カテゴリIDが無でないかつカテゴリIDが0でなければ
			条件（「カテゴリID」）は、カテゴリID
			選択カテゴリは、カテゴリID
		そうでなければ
			条件は、辞書を作ったもの
		そして
		
		ブログ管理から条件でキーワードを検索して日記一覧とする
		「日記一覧」として日記一覧を設定する
		ブログ管理から最近の日記を取得して、日記一覧とする
		「最近日記一覧」として日記一覧を設定する
		ブログ管理からカテゴリを取得して、カテゴリ一覧とする
		「カテゴリ一覧」としてカテゴリ一覧を設定する
		「キーワード」としてキーワードを設定する
		「選択カテゴリ」として選択カテゴリを設定する
		継承元を表示する
	終わり
終わり

カレンダとは
	【自分】を、【表示年月】について、表示する手順
		表示年は、表示年月の年
		表示月は、表示年月の月
		日数は｛３１，２８＋［表示年のうるう］，３１，３０，３１，３０，
									３１，３１，３０，３１，３０，３１｝
		内容は「<table class="calendar">」
		内容は、内容&「<capion><a href="?calendar=[表示年月の前月を「yyyy-MM-dd」に整えたもの]">&lt;&lt;</a>［表示年］年［表示月］月<a href="?calendar=[表示年月の翌月を「yyyy-MM-dd」に整えたもの]">&gt;&gt;</a></caption>[改行]」
		Zは、1－（（表示年）年、（表示月）月、１日、曜日番号）
		LDは、日数（表示月）
		内容は、内容&「
	<tr>
		<th>日</th><th>月</th><th>火</th><th>水</th>
		<th>木</th><th>金</th><th>土</th>
	</tr>
」
		DにZからLDまでカウントして、繰り返す
			内容は、内容&「	<tr>
		」
			EにDからカウントして７回繰り返す
				（Eは、１未満）または（EがLDより大きい）なら
					内容は、内容&「<td>&nbsp;</td>」
				他なら
					日付は「[表示年]/[表示月を2桁に整えたもの]/[Eを2桁に整えたもの]」を日時形式化したもの
					ブログ管理から日付の日記が存在すれば
						内容は、内容&「<td><a href="?day=[日付を「yyyy-MM-dd」に整えたもの]">[E]</a></td>」
					そうでなければ
						内容は、内容&「<td>[E]</a></td>」
					そして
				そして
			そして
			内容は、内容&「
	</tr>
」
			Dに６を足す
		そして
		内容は、内容&「</table>[改行]」
		内容を返す
	終わり
	【Y】年、【M】月、【D】日、ツェラー式を求める手順
		あは、（Y／100）を切り捨てたもの
		いは、Yを100で割った剰り
		[([M×2.6－0.2を切り捨たもの]＋D＋い＋(い÷４を切り捨てたもの)＋
						(あ÷４を切り捨てたもの)＋５×あ)を7で割った剰り]を返す
	終わり
	【Y】年、【M】月、【D】日、曜日番号を求める手順
		Mが3未満なら
			ツェラー式（（Y－１）年、（M＋１０）月、（D）日）を返す
		他なら
			（（Y）年、（M－２）月、（D）日ツェラー式）を返す
		そして
	終わり
	【年】の、うるうを求める手順
		結果は、(年を4で差計算したもの)－(年を100で差計算したもの)＋(年を400で差計算したもの)
		整数（結果）を返す
	終わり
	【年】を、【日】で、差計算を求める手順
		年÷日－（年－１）÷日を返す
	終わり
終わり

///////////////////////////////　コントロール　//////////////////////////////////

ブログ管理とは
	+今日クエリ=「datetime('now', 'localtime')」

	はじめの手順
		データベースというSQLiteデータベースを作る
		データベースへ「URI=file:rdrblog.db;version=3」で接続する
		[データベースから「SELECT count(*) FROM sqlite_master WHERE type='table'」を取得したもの](1)(1)が0なら
			「	CREATE TABLE カテゴリ一覧 (ID INTEGER PRIMARY KEY, 名前 TEXT);」をデータベースで実行する
			「	CREATE TABLE 日記一覧 (タグ TEXT, タイトル TEXT, ID INTEGER PRIMARY KEY, 日付 TEXT, カテゴリID NUMERIC, 本文 TEXT);
				CREATE TABLE コメント一覧 (パスワード TEXT, 日記ID NUMERIC, ID INTEGER PRIMARY KEY, 名前 TEXT, 本文 TEXT, 日付 TEXT);
			」をデータベースで実行する
		そして
	終わり
	
	【自分】から、日記を、取得する手順
		クエリは「SELECT 日記一覧.ID,日付,タイトル,カテゴリID,カテゴリ一覧.名前 AS カテゴリ名,本文
		FROM 日記一覧
		INNER JOIN カテゴリ一覧 ON カテゴリ一覧.ID=日記一覧.カテゴリID
		ORDER BY julianday(日付) DESC」
		データベースからクエリを取得して、レコード一覧とする
		日記一覧は｛｝
		レコード一覧のすべてのレコードについて、それぞれ繰り返す
			対象日記という日記（レコード）を作る
			日記一覧に対象日記を加える
		そして
		日記一覧を返す
	終わり
	
	【自分】から、【日記ID】の日記を、取得する手順
		クエリは「SELECT 日記一覧.ID,日付,タイトル,カテゴリID,カテゴリ一覧.名前,本文
		FROM 日記一覧
		INNER JOIN カテゴリ一覧 ON カテゴリ一覧.ID=日記一覧.カテゴリID
		WHERE 日記一覧.ID=?」
		パラメータは｛日記ID｝
		データベースからクエリをパラメータとして取得して、レコード一覧とする
		日記一覧は｛｝
		レコード一覧のすべてのレコードについて、それぞれ繰り返す
			対象日記という日記（レコード）を作る
			日記一覧に対象日記を加える
		そして
		日記一覧を返す
	終わり

	【自分】から、最近の日記を、取得する手順
		クエリは「SELECT 日記一覧.ID,日付,タイトル,カテゴリID,カテゴリ一覧.名前,本文 
		FROM 日記一覧
		INNER JOIN カテゴリ一覧 ON カテゴリ一覧.ID=日記一覧.カテゴリID
		ORDER BY julianday(日付) DESC LIMIT 0,8」
		データベースからクエリを取得して、レコード一覧とする
		日記一覧は｛｝
		レコード一覧のすべてのレコードについて、それぞれ繰り返す
			対象日記という日記（レコード）を作る
			日記一覧に対象日記を加える
		そして
		日記一覧を返す
	終わり

	【自分】から、【日付：日時形式】の日記が、存在する手順
		クエリは「SELECT count(ID) FROM 日記一覧
		WHERE strftime('%Y/%m/%d',日付)=?」
		パラメータは｛[日付を「yyyy/MM/dd」に整えたもの]｝
		データベースからクエリをパラメータとして取得して、レコード一覧とする
		レコード一覧（1）（1）が0なら
			×を返す
		そうでなければ
			○を返す
		そして
	終わり

	【自分】から、【日付：日時形式】だけの日記を、取得する手順
		クエリは「SELECT 日記一覧.ID,日付,タイトル,カテゴリID,カテゴリ一覧.名前,本文 
		FROM 日記一覧
		INNER JOIN カテゴリ一覧 ON カテゴリ一覧.ID=日記一覧.カテゴリID
		WHERE strftime('%Y/%m/%d',日付)=?
		ORDER BY julianday(日付)」
		パラメータは｛[日付を「yyyy/MM/dd」に整えたもの]｝
		データベースからクエリをパラメータとして取得して、レコード一覧とする
		日記一覧は｛｝
		レコード一覧のすべてのレコードについて、それぞれ繰り返す
			対象日記という日記（レコード）を作る
			日記一覧に対象日記を加える
		そして
		日記一覧を返す
	終わり

	【自分】から、カテゴリを、取得する手順
		クエリは「SELECT ID,名前 FROM カテゴリ一覧」
		データベースからクエリを取得して、レコード一覧とする
		カテゴリ一覧は｛｝
		レコード一覧のすべてのレコードについて、それぞれ繰り返す
			対象カテゴリというカテゴリ（レコード）を作る
			カテゴリ一覧に対象カテゴリを加える
		そして
		カテゴリ一覧を返す
	終わり
	
	【自分】から、カテゴリが、【カテゴリID】の日記を、取得する手順
		クエリは「SELECT 日記一覧.ID,日付,タイトル,カテゴリID,カテゴリ一覧.名前,本文
		FROM 日記一覧
		INNER JOIN カテゴリ一覧 ON カテゴリ一覧.ID=日記一覧.カテゴリID
		WHERE カテゴリID=?
		ORDER BY julianday(日付)  DESC」
		パラメータは｛カテゴリID｝
		データベースからクエリをパラメータとして取得して、レコード一覧とする
		日記一覧は｛｝
		レコード一覧のすべてのレコードについて、それぞれ繰り返す
			対象日記という日記（レコード）を作る
			日記一覧に対象日記を加える
		そして
		日記一覧を返す
	終わり

	【自分】から、条件が、【条件】の日記を、取得する手順
		条件クエリは「」
		条件値は｛｝
		条件のすべての項目についてそれぞれ繰り返す
			条件クエリは、条件クエリ＆「[項目]=?」
			条件値に条件クエリ（項目）を加える
		そして

		クエリは「SELECT 日記一覧.ID,日付,タイトル,カテゴリID,カテゴリ一覧.名前,本文
		FROM 日記一覧
		INNER JOIN カテゴリ一覧 ON カテゴリ一覧.ID=日記一覧.カテゴリID
		WHERE [条件クエリ]
		ORDER BY julianday(日付)  DESC」
		パラメータは、条件値
		データベースからクエリをパラメータとして取得して、レコード一覧とする
		日記一覧は｛｝
		レコード一覧のすべてのレコードについて、それぞれ繰り返す
			対象日記という日記（レコード）を作る
			日記一覧に対象日記を加える
		そして
		日記一覧を返す
	終わり

	【自分】から、【条件】で、【キーワード】を、検索する手順
		条件クエリは「」
		パラメータは｛「%[キーワード]%」、「%[キーワード]%」、「%[キーワード]%」｝
		条件の見出しのすべての項目についてそれぞれ繰り返す
			条件クエリは、条件クエリ＆「AND [項目]=? 」
			パラメータに条件（項目）を加える
		そして

		クエリは「SELECT 日記一覧.ID,日付,タイトル,カテゴリID,カテゴリ一覧.名前,本文
		FROM 日記一覧
		INNER JOIN カテゴリ一覧 ON カテゴリ一覧.ID=日記一覧.カテゴリID
		WHERE (本文 LIKE ? OR タイトル LIKE ? OR タグ LIKE ?) [条件クエリ]
		ORDER BY julianday(日付)  DESC」
		データベースからクエリをパラメータとして取得して、レコード一覧とする
		日記一覧は｛｝
		レコード一覧のすべてのレコードについて、それぞれ繰り返す
			対象日記という日記（レコード）を作る
			日記一覧に対象日記を加える
		そして
		日記一覧を返す
	終わり

//日記
	【自分】で、【対象日記：日記】を、登録する手順
		クエリは「INSERT INTO 日記一覧 (日付,タイトル,カテゴリID,本文)
									VALUES ([今日クエリ],?,?,?)」
		パラメータは｛対象日記のタイトル,対象日記のカテゴリID,対象日記の本文｝
		クエリをパラメータとしてデータベースで実行する
	終わり
	
	【自分】で、【対象日記：日記】を、更新する手順
		クエリは「UPDATE 日記一覧 SET タイトル=?,カテゴリID=?,本文=? WHERE ID=?」
		パラメータは｛対象日記のタイトル,対象日記のカテゴリID,対象日記の本文,対象日記のID｝
		クエリをパラメータとしてデータベースで実行する
	終わり
	
	【自分】で、【対象日記：日記】を、削除する手順
		クエリは「DELETE FROM 日記一覧 WHERE ID=?」
		パラメータは｛対象日記のID｝
		クエリをパラメータとしてデータベースで実行する

		クエリは「DELETE FROM コメント一覧 WHERE 日記ID=?」
		パラメータは｛対象日記のID｝
		クエリをパラメータとしてデータベースで実行する
	終わり

//カテゴリ
	【自分】から、【カテゴリID】のカテゴリを、取得する手順
		クエリは「SELECT ID,名前 FROM カテゴリ一覧 WHERE id=?」
		パラメータは｛カテゴリID｝
		データベースからクエリをパラメータとして取得して、レコード一覧とする
		カテゴリ一覧は｛｝
		レコード一覧のすべてのレコードについて、それぞれ繰り返す
			対象カテゴリというカテゴリ（レコード）を作る
			カテゴリ一覧に対象カテゴリを加える
		そして
		カテゴリ一覧（1）を返す
	終わり

	【自分】で、【対象カテゴリ：カテゴリ】を、登録する手順
		クエリは「INSERT INTO カテゴリ一覧 (名前) VALUES (?)」
		パラメータは｛対象カテゴリの名前｝
		クエリをパラメータとしてデータベースで実行する
	終わり
	
	【自分】で、【対象カテゴリ：カテゴリ】を、更新する手順
		クエリは「UPDATE カテゴリ一覧 SET 名前=? WHERE ID=?」
		パラメータは｛対象カテゴリの名前,対象カテゴリのID｝
		クエリをパラメータとしてデータベースで実行する
	終わり
	
	【自分】で、【対象カテゴリ：カテゴリ】を、削除する手順
		クエリは「DELETE FROM カテゴリ一覧 WHERE ID=?」
		パラメータは｛対象カテゴリのID｝
		クエリをパラメータとしてデータベースで実行する
	終わり
	
//コメント
	【自分】から、【日記ID】のコメントを、取得する手順
		クエリは「SELECT ID,日記ID,名前,本文,日付 FROM コメント一覧
		WHERE 日記ID=?」
		パラメータは｛日記ID｝
		データベースからクエリをパラメータとして取得して、レコード一覧とする
		コメント一覧は｛｝
		レコード一覧のすべてのレコードについて、それぞれ繰り返す
			対象コメントというコメント（レコード）を作る
			コメント一覧に対象コメントを加える
		そして
		コメント一覧を返す
	終わり

	【自分】で、【対象コメント：コメント】を、登録する手順
		クエリは「INSERT INTO コメント一覧 (日記ID,名前,本文,パスワード,日付)
				VALUES (?,?,?,?,[今日クエリ])」
		パラメータは｛対象コメントの日記ID、対象コメントの名前、対象コメントの本文、対象コメントのパスワード｝
		クエリをパラメータとしてデータベースで実行する
	終わり
	
	【自分】で、【対象コメント：コメント】を、削除する手順
		クエリは「DELETE FROM コメント一覧 WHERE ID=? AND 日記ID=? AND パスワード=?」
		パスワードハッシュは、対象コメントのパスワードからMD5ハッシュ値を計算したもの
		パラメータは｛対象コメントのID,対象コメントの日記ID,対象コメントのパスワード｝
		クエリをパラメータとしてデータベースで実行して結果とする
		結果を返す
	終わり
	
	終わりの手順
		データベースから切断する
	終わり

終わり

///////////////////////////////　エンティティ　//////////////////////////////////

日記とは
	+ID
	+日付
	+タイトル
	+カテゴリID
	+カテゴリ名
	+本文
	はじめの手順
	終わり
	はじめ（レコード）の手順
		レコードを｛ID,日付,タイトル,カテゴリID,カテゴリ名,本文｝とみなす。
	終わり
終わり

カテゴリとは
	+ID
	+名前
	はじめの手順
	終わり
	はじめ（レコード）の手順
		レコードを｛ID,名前｝とみなす。
	終わり
終わり

コメントとは
	+ID
	+日記ID
	+名前
	+本文
	+日付
	+パスワード
	はじめの手順
	終わり
	はじめ（レコード）の手順
		レコードを｛ID,日記ID,名前,本文,日付｝とみなす。
	終わり
終わり
