メインコンテンツへスキップ

349 AIとの対話履歴を、数式を崩さずに綺麗な状態でHTML化するためのプロンプト



    AIとの対話履歴を、数式を崩さずに綺麗な状態でHTML化するためのプロンプトですね。

    数式をHTML上で綺麗に表示(LaTeXの代替表示)するためには、**「MathJax(マスジャックス)」**という仕組み(JavaScript)をHTMLに組み込むのが最も簡単で確実です。

    以下の【 】で囲まれたプロンプトをコピーして、対話しているAIにそのまま貼り付けて送信してください。



    了解しました。「PDFの内容は除外する」という点をさらに強調し、「ログインページを作らない」「ポップアップさせない」という指示をはっきりと追加しました。



    22pt


    **【ここから下をコピーしてAIに入力してください】**

    以下の【対話データ】と【各種リンクデータ】を使用して、見やすく構造化された1つのHTMLファイルを作成してください。
    作成にあたっては、必ず以下の【HTML/JS構造の指定】に従い、具体的なタグやID、クラス名、CSS変数をそのまま使用してください。

    ### 【HTML/JS構造の指定(厳守事項)】

    **1. `<head>`内の指定(セキュリティとMathJax)**
    - 悪意のあるリダイレクトを防ぐため、`polyfill.io` は絶対に記述しないこと。
    - MathJaxは以下の安全なタグのみを使用すること。
    `<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>`

    **2. `<style>`の指定(カラー変数・ダークモード・数式スタイル)**
    以下のCSS変数とクラスを定義して適用すること。
    - `:root` にカラー変数を設定: `--bg-color: #f8f9fa ;`, `--text-color: #000 ;`, `--box-bg: #fff ;`, `--box-border: #ddd ;`, `--user-bg: #e6f7ff ;`, `--ai-bg: #f6ffed ;`
    - `body.dark-mode` で変数を上書き: `--bg-color: #121212 ;`, `--text-color: #ffffff ;`, `--box-bg: #1e1e1e ;`, `--box-border: #333 ;`, `--user-bg: #1a2a3a ;`, `--ai-bg: #1e3a1e ;`
    - `body`:
    - `font-size: var(--base-font-size, 22px);`
    - 背景色 `var(--bg-color)`、文字色 `var(--text-color)`、最大幅 `800px`、中央寄せ、適切な余白。
    - UI要素やメッセージ枠などの背景・境界線にはすべて上記のCSS変数を使用すること。
    - **数式スタイル強制上書き用CSS**:
    - `body.force-inline mjx-container[display="true"] { display: inline-block !important; margin: 0 !important; }`
    - `body.force-display mjx-container { display: block !important; text-align: center !important; margin: 1em 0 !important; }`

    **3. `<body>`内の構造指定**
    必ず以下の順番とタグ構造で出力すること。
    ```html
    <body>
    <!-- 1. 設定UI -->
    <div class="settings-ui" style="background-color: var(--box-bg); border: 1px solid var(--box-border); padding: 15px; margin-bottom: 20px; border-radius: 8px;">
    <div class="settings-row" style="margin-bottom: 10px;">
    <label for="font-size-slider">文字サイズ:</label>
    <input type="range" id="font-size-slider" min="10" max="40" value="22" step="1">
    <span id="font-size-display">22px</span>
    </div>
    <div class="settings-row" style="margin-bottom: 10px;">
    <label for="math-style-selector">数式スタイル:</label>
    <select id="math-style-selector">
    <option value="default">標準(自動)</option>
    <option value="force-inline">全てインライン(テキスト内埋め込み)</option>
    <option value="force-display">全て独立行(ディスプレイ)</option>
    </select>
    </div>
    <div class="settings-row">
    <select id="ai-selector">
    <option value="AI Studio">AI Studio</option>
    <option value="Chat GPT">Chat GPT</option>
    <option value="Claude">Claude</option>
    </select>
    <button id="download-btn">この対話を保存</button>
    <button id="dark-mode-btn">背景・文字色を反転</button>
    </div>
    </div>

    <!-- 2. 先頭のリンク -->
    <div class="link-section" id="top-links">
    <h3>【関連リンク】</h3>
    <ul><!-- 【提供したリンク】のリスト --></ul>
    </div>

    <!-- 3. 対話本文 -->
    <div id="chat-content">
    <div class="message user" style="background-color: var(--user-bg);">
    <h3>ユーザー</h3>
    <p><!-- ユーザーのテキスト --></p>
    </div>
    <div class="message ai" style="background-color: var(--ai-bg);">
    <h3>AI</h3>
    <p><!-- AIのテキスト --></p>
    </div>
    </div>

    <!-- 4. 本文内の抽出リンク -->
    <div class="link-section" id="inline-links">
    <h3>【本文内リンク】</h3>
    <ul><!-- 抽出したリンク --></ul>
    </div>

    <!-- 5. PDFリンク -->
    <div class="link-section" id="pdf-links">
    <h3>【読み込みPDFリンク先】</h3>
    <ul><!-- 【PDFのリンク】 --></ul>
    </div>

    <!-- 6. JavaScript -->
    <script>
    // ここに指示通りJSを記述する
    </script>
    </body>
    ```

    **4. `<script>`内のJavaScript処理指定**
    以下の4つのロジックを必ず実装すること。

    1. **文字サイズ変更**: `font-size-slider` の入力値で `document.documentElement.style.setProperty('--base-font-size', value + 'px')` を更新し、表示も更新する。
    2. **数式スタイル変更**: `math-style-selector` の値に応じて、bodyの `force-inline` または `force-display` クラスを付与/削除する。
    3. **ダークモード切替**: `dark-mode-btn` クリック時、`document.body.classList.toggle('dark-mode')` を実行。
    4. **ダウンロード処理**: `download-btn` クリック時、日時から `YYYYMMDDHHMMSS` を生成し、AI名と結合してファイル名を作成。HTML全体をBlob化して一時的な `<a>` タグでダウンロード実行。

    ---

    ### 【データ入力欄】

    **【提供したリンク】(先頭に配置)**
    (※ここに先頭に置きたいリンクとタイトルを貼り付けます)


    **【対話データ】(本文)**
    (※ここに対話のテキストを貼り付けます)


    **【PDFのリンク】(最後に配置)**
    (※ここに読み込ませたPDFのリンクを貼り付けます)


    ---
    **【出力に関する指示】**
    上記の条件と指定コード構造をすべて満たした、**完全なHTMLコードのみ**をMarkdownのコードブロック(```html ... ```)で囲んで出力してください。説明や挨拶は不要です。




    <body>
        <!-- 1. 設定UI -->
        <div class="settings-ui" style="background-color: var(--box-bg); border: 1px solid var(--box-border); padding: 15px; margin-bottom: 20px; border-radius: 8px;">
            <div class="settings-row" style="margin-bottom: 10px;">
                <label for="font-size-slider">文字サイズ:</label>
                <input type="range" id="font-size-slider" min="10" max="40" value="22" step="1">
                <span id="font-size-display">22px</span>
            </div>
            <div class="settings-row" style="margin-bottom: 10px;">
                <label for="math-style-selector">数式スタイル:</label>
                <select id="math-style-selector">
                    <option value="default">標準(自動)</option>
                    <option value="force-inline">全てインライン(テキスト内埋め込み)</option>
                    <option value="force-display">全て独立行(ディスプレイ)</option>
                </select>
            </div>
            <div class="settings-row">
                <select id="ai-selector">
                    <option value="AI Studio">AI Studio</option>
                    <option value="Chat GPT">Chat GPT</option>
                    <option value="Claude">Claude</option>
                </select>
                <button id="download-btn">この対話を保存</button>
                <button id="dark-mode-btn">背景・文字色を反転</button>
            </div>
        </div>
    
        <!-- 2. 先頭のリンク -->
        <div class="link-section" id="top-links">
            <h3>【関連リンク】</h3>
            <ul><!-- 【提供したリンク】のリスト --></ul>
        </div>
    
        <!-- 3. 対話本文 -->
        <div id="chat-content">
            <div class="message user" style="background-color: var(--user-bg);">
                <h3>ユーザー</h3>
                <p><!-- ユーザーのテキスト --></p>
            </div>
            <div class="message ai" style="background-color: var(--ai-bg);">
                <h3>AI</h3>
                <p><!-- AIのテキスト --></p>
            </div>
        </div>
    
        <!-- 4. 本文内の抽出リンク -->
        <div class="link-section" id="inline-links">
            <h3>【本文内リンク】</h3>
            <ul><!-- 抽出したリンク --></ul>
        </div>
    
        <!-- 5. PDFリンク -->
        <div class="link-section" id="pdf-links">
            <h3>【読み込みPDFリンク先】</h3>
            <ul><!-- 【PDFのリンク】 --></ul>
        </div>
    
        <!-- 6. JavaScript -->
        <script>
            // ここに指示通りJSを記述する
        </script>
    </body>

    4. `<script>`内のJavaScript処理指定
    以下の4つのロジックを必ず実装すること。

    1. 文字サイズ変更: `font-size-slider` の入力値で `document.documentElement.style.setProperty('--base-font-size', value + 'px')` を更新し、表示も更新する。

    2. 数式スタイル変更: `math-style-selector` の値に応じて、bodyの `force-inline` または `force-display` クラスを付与/削除する。

    3. ダークモード切替: `dark-mode-btn` クリック時、`document.body.classList.toggle('dark-mode')` を実行。

    4. ダウンロード処理: `download-btn` クリック時、日時から `YYYYMMDDHHMMSS` を生成し、AI名と結合してファイル名を作成。HTML全体をBlob化して一時的な `<a>` タグでダウンロード実行。


    【データ入力欄】

    【提供したリンク】(先頭に配置)
    (※ここに先頭に置きたいリンクとタイトルを貼り付けます)

    【対話データ】(本文)
    (※ここに対話のテキストを貼り付けます)

    【PDFのリンク】(最後に配置)
    (※ここに読み込ませたPDFのリンクを貼り付けます)


    【出力に関する指示】
    上記の条件と指定コード構造をすべて満たした、完全なHTMLコードのみをMarkdownのコードブロック(```html ... ```)で囲んで出力してください。説明や挨拶は不要です。



    先頭に追加リンクを付けて リンクと リンク対おる
    
    
    ここまでのあなたとの対話履歴を、1つのHTMLファイルとして出力してください。
    
    【厳守する条件】
    1. 私(ユーザー)とあなた(AI)の対話内容のみを抽出し、HTML化してください。AIが読み込んだPDFなどのデータ内容は絶対にHTMLに含めないでください。
    2. 私は別途ログインページを作成中ですが、**今回の出力においてログインページ(ログイン画面)は絶対に作らないでください**。
    3. ログイン画面などがポップアップするような仕様(JavaScript等)も一切含めないでください。純粋な対話ログのみを読むためのページにしてください。
    4. 数式は画像や他の文字に変形せず、LaTeX形式のまま保持してください。
    5. HTML上で数式を綺麗に表示(LaTeXの代替表示)するため、ヘッダーに必ず「MathJax」を読み込むスクリプトを含めてください。
    6. インライン数式は `\( ... \)`、ブロック数式は `$$ ... $$` または `\[ ... \]` の記法を用いてください。
    7. コピーしやすいように、全体を1つの `html` コードブロック( ```html で始まり ``` で終わる形)で出力してください。
    
    【デザイン指定】
    - 全体の背景色は真っ白ではなく、ほんの僅かに灰色(例: #f8f9fa )に指定してください。
    - 文字色は黒(#000000)に指定してください。
    
    【HTMLのテンプレート】
    以下の構造を使用し、<body> タグの中に対話履歴を書き込んでください。
    
    <!DOCTYPE html>
    <html lang="ja">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>AIとの対話履歴</title>
        <!-- MathJaxの読み込み -->
        <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
        <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
        <style>
            body { 
                font-family: sans-serif; 
                line-height: 1.6; 
                padding: 20px; 
                max-width: 800px; 
                margin: 0 auto; 
                background-color: #f8f9fa ; /* ほんの僅かに灰色 */
                color: #000000 ; /* 黒文字 */
            }
            .user { background-color: #e6f7ff ; padding: 15px; border-radius: 8px; margin-bottom: 10px; }
            .ai { background-color: #f6ffed ; padding: 15px; border-radius: 8px; margin-bottom: 30px; }
            h3 { margin-top: 0; font-size: 1em; color: #333 ; }
            p { white-space: pre-wrap; margin: 0; }
        </style>
    </head>
    <body>
        <!-- ここに以下の形式でこれまでの対話を追加してください -->
        <!-- <div class="user"><h3>ユーザー</h3><p>質問の内容</p></div> -->
        <!-- <div class="ai"><h3>AI</h3><p>回答の内容(数式含む)</p></div> -->
    </body>
    </html>
    
    
    ログイン画面なし
    ログインポップアップなし
    ログイン用JavaScriptなし
    対話ログを読むだけのHTML
    MathJaxは維持
    背景色・文字色も指定どおり




    あなたへのおすすめ