SenY commited on
Commit
1e37ab5
·
1 Parent(s): 3e76749

コメントを整理

Browse files
Files changed (7) hide show
  1. control.js +16 -0
  2. history.js +20 -0
  3. index.html +47 -0
  4. prompt.js +15 -0
  5. storage.js +12 -0
  6. style.css +0 -28
  7. translation.js +13 -0
control.js CHANGED
@@ -1,3 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  updateHistoryList();
2
  loadFromUserStorage();
3
  setInterval(() => {
 
1
+ /**
2
+ * control.js - UIコントロールとイベント管理
3
+ *
4
+ * 主な機能:
5
+ * - サイドバーの制御(表示/非表示、リサイズ)
6
+ * - キーボードショートカット
7
+ * - ローカルストレージのクリア
8
+ * - レイアウトの自動調整
9
+ * - モデルリストの更新
10
+ *
11
+ * 重要な関数:
12
+ * - initSidebarResize(): サイドバーのリサイズ機能を初期化
13
+ * - resizeMain(): メインコンテンツのサイズを調整
14
+ * - updateModelList(): 利用可能なモデルリストを更新
15
+ */
16
+
17
  updateHistoryList();
18
  loadFromUserStorage();
19
  setInterval(() => {
history.js CHANGED
@@ -1,3 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  function saveToHistory(title) {
2
  if(!title) {
3
  title = document.getElementById('query').value.slice(0, 10);
 
1
+ /**
2
+ * history.js - プロンプト生成履歴の管理
3
+ *
4
+ * 主な機能:
5
+ * - 履歴の保存と読み込み
6
+ * - 履歴の検索
7
+ * - 履歴項目の編集と削除
8
+ * - ストレージ使用量の表示
9
+ *
10
+ * 重要な関数:
11
+ * - saveToHistory(): 新しい履歴項目を保存
12
+ * - updateHistoryList(): 履歴リストを更新
13
+ * - filterHistory(): 履歴の検索機能
14
+ * - loadHistoryItem(): 履歴項目を読み込み
15
+ *
16
+ * 注意事項:
17
+ * - 履歴の最大サイズは3MB
18
+ * - 容量超過時は古い履歴から自動削除
19
+ */
20
+
21
  function saveToHistory(title) {
22
  if(!title) {
23
  title = document.getElementById('query').value.slice(0, 10);
index.html CHANGED
@@ -5,6 +5,53 @@
5
  <meta charset="UTF-8">
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
  <title>Gemini Prompt Generator</title>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  <link href="https://unpkg.com/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous">
9
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css"
10
  crossorigin="anonymous">
 
5
  <meta charset="UTF-8">
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
  <title>Gemini Prompt Generator</title>
8
+
9
+ <!--
10
+ ファイル構成と役割:
11
+
12
+ 1. index.html
13
+ - メインのUIレイアウト
14
+ - スタイル定義
15
+ - 外部リソースの読み込み
16
+
17
+ 2. prompt.js
18
+ - Gemini APIとの通信
19
+ - プロンプト生成のロジック
20
+ - モデル管理
21
+ ※ API関連の機能追加はこのファイルに
22
+
23
+ 3. storage.js
24
+ - ローカルストレージの管理
25
+ - フォームデータの永続化
26
+ ※ データ保存関連の機能はこのファイルに
27
+
28
+ 4. translation.js
29
+ - 多言語対応
30
+ - i18next設定
31
+ - 言語リソース
32
+ ※ 新しい言語や翻訳文字列の追加はこのファイルに
33
+
34
+ 5. control.js
35
+ - UIイベント管理
36
+ - レイアウト制御
37
+ - グローバルショートカット
38
+ ※ UI操作に関する機能追加はこのファイルに
39
+
40
+ 6. history.js
41
+ - 履歴管理
42
+ - 履歴検索
43
+ - 履歴UI
44
+ ※ 履歴関連の機能追加はこのファイルに
45
+
46
+ 開発規約:
47
+ 1. 各ファイルの責務を明確に分離し、機能追加は適切なファイルに行う
48
+ 2. UIコンポーネントの追加は index.html に
49
+ 3. スタイルの追加は index.html の <style> タグ内に
50
+ 4. 新しい機能は既存のファイル構成に従い、適切なファイルに実装
51
+ 5. 共通で使用する定数や設定は storage.js で管理
52
+ 6. 多言語対応が必要な文字列は必ず translation.js に追加
53
+ -->
54
+
55
  <link href="https://unpkg.com/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous">
56
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css"
57
  crossorigin="anonymous">
prompt.js CHANGED
@@ -1,3 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  async function getModelList() {
2
  const url = 'https://generativelanguage.googleapis.com/v1beta/models?key=' + document.getElementById('apiKey').value;
3
  const response = await fetch(url);
 
1
+ /**
2
+ * prompt.js - プロンプト生成の中核機能を提供
3
+ *
4
+ * 主な機能:
5
+ * - Gemini APIを使用したプロンプト生成
6
+ * - モデルリストの取得と管理
7
+ * - プロンプトの生成と整形
8
+ * - 文字列置換機能
9
+ *
10
+ * 重要な関数:
11
+ * - getModelList(): 利用可能なGeminiモデルを取得
12
+ * - generatePrompt(): メインのプロンプト生成処理
13
+ * - applyReplacements(): 文字列置換を適用
14
+ */
15
+
16
  async function getModelList() {
17
  const url = 'https://generativelanguage.googleapis.com/v1beta/models?key=' + document.getElementById('apiKey').value;
18
  const response = await fetch(url);
storage.js CHANGED
@@ -1,3 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
  function saveToUserStorage(force = false) {
2
  const currentTime = new Date().getTime();
3
  const lastSaveTimestamp = parseInt(localStorage.getItem('lastSaveTimestamp') || '0');
 
1
+ /**
2
+ * storage.js - ローカルストレージを使用したデータ永続化を管理
3
+ *
4
+ * 主な機能:
5
+ * - フォーム入力値の保存と復元
6
+ * - 自動保存機能(5秒間隔)
7
+ *
8
+ * 重要な関数:
9
+ * - saveToUserStorage(): フォームデータを保存
10
+ * - loadFromUserStorage(): 保存されたデータを復元
11
+ */
12
+
13
  function saveToUserStorage(force = false) {
14
  const currentTime = new Date().getTime();
15
  const lastSaveTimestamp = parseInt(localStorage.getItem('lastSaveTimestamp') || '0');
style.css DELETED
@@ -1,28 +0,0 @@
1
- body {
2
- padding: 2rem;
3
- font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
4
- }
5
-
6
- h1 {
7
- font-size: 16px;
8
- margin-top: 0;
9
- }
10
-
11
- p {
12
- color: rgb(107, 114, 128);
13
- font-size: 15px;
14
- margin-bottom: 10px;
15
- margin-top: 5px;
16
- }
17
-
18
- .card {
19
- max-width: 620px;
20
- margin: 0 auto;
21
- padding: 16px;
22
- border: 1px solid lightgray;
23
- border-radius: 16px;
24
- }
25
-
26
- .card p:last-child {
27
- margin-bottom: 0;
28
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
translation.js CHANGED
@@ -1,3 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  const translations = {
2
  ja: {
3
  inputQueryTitle: "入力クエリ",
 
1
+ /**
2
+ * translation.js - 多言語対応機能を提供
3
+ *
4
+ * 主な機能:
5
+ * - i18nextを使用した多言語切り替え
6
+ * - 8言語対応(日本語、英語、中国語、韓国語、フランス語、スペイン語、ドイツ語、イタリア語)
7
+ * - UIテキストの動的更新
8
+ *
9
+ * 重要な関数:
10
+ * - updateContent(): UI要素の翻訳を更新
11
+ * - changeLang(): 言語切り替えを実行
12
+ */
13
+
14
  const translations = {
15
  ja: {
16
  inputQueryTitle: "入力クエリ",