Spaces:
Running
Running
Commit History
-
メロンP追加 Running
なごみUnverified signature2811cbd
-
get_comments をページネーション対応し返信含む全件取得に変更
ClaudeUnverified signaturelimit:100 の1回取得では返信が多い場合に取りこぼすため、 totalCount を確認しながらページネーションで全コメントを取得するよう修正。 返信も articleId で紐づけているため件数カウントに正しく含まれる。 https://claude.ai/code/session_018sq37X4VGvDxwtnyyvQmFvc4fe594 -
いいねボタンをトグル式に変更・ボタン形状を円に変更
ClaudeUnverified signature- いいね済みの状態でもう一度押すと取り消せるようにした(localStorage で状態管理) - /api/like に action パラメータ(add/remove)を追加、カウントを増減 - ボタン形状を角丸四角から正円(rounded-full w-20 h-20)に変更 https://claude.ai/code/session_018sq37X4VGvDxwtnyyvQmFv5d91810 -
下書き→公開時に likes を引き継ぐよう修正
ClaudeUnverified signature旧記事の likes 値を post_data に含めてから POST するようにした。 コメント・バックアップと同様に新 ID の記事へ移行される。 https://claude.ai/code/session_018sq37X4VGvDxwtnyyvQmFvcede326 -
いいね機能とコメント返信(ツリー型)を追加
ClaudeUnverified signature【いいね】 - POST /api/like/{article_id} を追加(microCMS blog の likes フィールドをインクリメント) - 記事詳細に ♡ ボタンを表示、押すと ❤️ に変化しカウントアップ - localStorage で同一ブラウザからの重複いいねを防止 - ページ再読み込み後もいいね済み状態を復元 【コメント返信(ツリー型・無制限ネスト)】 - post_comment_api に parent_id 引数を追加、microCMS coment の parentId フィールドへ書き込み - build_comment_tree() を追加、フラットなコメントリストを再帰ツリーに変換 - /api/comment POST が parent_id を受け取れるよう対応 - blog_detail.html: Jinja2 再帰マクロ render_comment で返信を字下げ表示 - 各コメントに「↩ 返信する」ボタン → インライン返信フォームをトグル表示 microCMS での対応(手動): - blog コレクション: likes(数値)フィールド追加 - coment コレクション: parentId(テキスト・任意)フィールド追加 https://claude.ai/code/session_018sq37X4VGvDxwtnyyvQmFvdd1d936 -
記事詳細のコメント件数表示・AI装飾後のHTMLモード強制・X埋め込み装飾禁止
ClaudeUnverified signature- blog_detail.html: 記事ヘッダー(著者・日付の横)にコメント件数(💬 N件)を追加 - admin_editor.html: 単一ブロックAI装飾後に setEditorMode('html') を呼び出しHTMLモードへ強制切り替え - admin_editor.html: 全体装飾(ai-decorate-all)成功後、各テキストブロックの editorMode を 'html' に設定 - main.py: /api/ai-decorate および /api/ai-decorate-all のGeminiプロンプトに blockquote.twitter-tweet への装飾・スタイル追加を全面禁止するルールを追加 https://claude.ai/code/session_018sq37X4VGvDxwtnyyvQmFv45a24c3
-
コメント時刻表示とコメント件数の記事一覧への追加
ClaudeUnverified signature- blog_detail.html: コメントの日付表示を日付のみ([:10])から日時(JST, YYYY-MM-DD HH:MM)に変更 - main.py: _to_jst_str を Jinja2 フィルタ "to_jst" として登録 - main.py: get_all_comment_counts() を追加(コメントAPI を fields=articleId で1回叩き、articleIdごとに集計) - blog_list.html: 各記事カードに "💬 N件" のコメント件数を表示 https://claude.ai/code/session_018sq37X4VGvDxwtnyyvQmFv81062d4
-
Add pillow-heif support for HEIC image uploads
ClaudeUnverified signatureaccept="image/*"だけでは対応できないiOS HEICファイルを、 サーバー側でも処理できるようpillow-heifを追加。 Dockerfileにlibheifシステムライブラリも追加した。 https://claude.ai/code/session_011hjWBfQzZFHV7bCq9prHP6fbd4742
-
Update AI decoration prompts with full coding rules
ClaudeUnverified signatureReplace inline-only instruction with the full ruleset: - .article-body scoping for all CSS selectors - CSS variables on .article-body instead of :root - dark mode via @media + variable override - color:inherit for text, rgba for gray backgrounds - Twitter embed requires <a href> inside blockquote - <style> tag preferred over inline styles (global AI: style tag goes in first block only) - Output: HTML only, no explanations, readable line breaks https://claude.ai/code/session_01Qb3aHrurZxqwKKrwMMCvgVe269916 -
Fix block editor mode persistence, add blockquote button, dark-mode AI prompt
ClaudeUnverified signature- Per-block editorMode: openEditor reads block.editorMode, closeEditor saves it back, so HTML blocks reopen in HTML mode instead of re-wrapping in <p> - Add blockquote button to HTML toolbar (fas fa-quote-left) with dark-mode- safe default style: rgba background + color:inherit + pink left border - AI decoration prompts now instruct Gemini to use color:inherit for text and rgba semi-transparent backgrounds for dark mode compatibility https://claude.ai/code/session_01Qb3aHrurZxqwKKrwMMCvgV988ecc7 -
Fix blog detail: render from contentBlocks to preserve inline styles
ClaudeUnverified signatureWhen contentBlocks exists, render HTML directly from the block array instead of reading contentRich. microCMS strips inline styles from the rich text field, causing the styled editor output to appear unstyled in the published view. Image blocks were also invisible since they only live in contentBlocks, not contentRich. https://claude.ai/code/session_01Qb3aHrurZxqwKKrwMMCvgV12ec7e1 -
Add global AI decoration: /api/ai-decorate-all + UI section
ClaudeUnverified signatureSends all text blocks together to Gemini in one call so the AI can apply a consistent style across the whole article. Per-block AI decoration (HTML mode) is kept for individual refinement. https://claude.ai/code/session_01Qb3aHrurZxqwKKrwMMCvgV727f4a3
-
fix: SPACE_URL未設定時もシェアボタンが表示されるようにフォールバック追加
ClaudeUnverified signaturehttps://claude.ai/code/session_01Qb3aHrurZxqwKKrwMMCvgV4ac7fa5 -
feat: プレビューダークモード・タグtextarea化・画像キャプション表示
ClaudeUnverified signature- blog-previewにfont-size/line-height追加しフルプレビューもダークモード対応 - タグ入力をtextareaに変更(自動高さ調整・Enter無効) - 画像ブロックのキャプションを画像下に小さく表示(エディタ・プレビュー・公開ページ全て) https://claude.ai/code/session_01Qb3aHrurZxqwKKrwMMCvgVe0382dd -
fix: バックアップ作成日時をJST(UTC+9)で表示
ClaudeUnverified signaturehttps://claude.ai/code/session_01Qb3aHrurZxqwKKrwMMCvgV23f6c06 -
fix: バックアップ修正 - contentBlocks復活・eyecatch/contentRich除外
ClaudeUnverified signaturemicroCMSの画像型フィールド(eyecatch)はコンテンツAPIから URLを直接セットできないため、バックアップPOSTが400エラーになっていた。 - eyecatch をバックアップbodyから除外 - contentRich を除外(blog-backupスキーマに不要) - contentBlocks をバックアップbodyに復活(スキーマに存在することを確認) - editorMode を追加 https://claude.ai/code/session_01Qb3aHrurZxqwKKrwMMCvgV99b29e3 -
feat: ブロックエディタにリッチテキストモード追加・バックアップ修正
ClaudeUnverified signature【バックアップ修正】 - create_backup から contentBlocks フィールドを削除 (blog-backup スキーマに存在しないフィールドを送っていたため microCMS が 400 を返し、バックアップが作成されていなかった) - create_backup の戻り値を (bool, str) に変更し、失敗理由を返す - 保存APIレスポンスに backup_ok / backup_err を含め、 バックアップ失敗時はトーストで "(バックアップ失敗)" と表示 【リッチテキストモード】 - Quill 1.3.6 (Snow テーマ) を CDN から読み込み - テキスト編集モーダルに「リッチ / HTML」切り替えボタンを追加 - リッチモード: Quill WYSIWYG エディタ(太字・見出し・リスト・リンク) - HTML モード: 従来のテキストエリア+ツールバー - モード切り替え時に内容を双方向同期 - AI装飾・プレビューは両モードで動作 https://claude.ai/code/session_01Qb3aHrurZxqwKKrwMMCvgVe604fea -
fix: 認証をSHA256ハッシュに刷新・空パスワード送信エラー修正
ClaudeUnverified signatureitsdangerous.TimestampSignerをhashlib.sha256ベースのシンプルな トークン検証に置き換え。Cookieの値が安定して一致するようになり ログイン後のリダイレクトで認証が失われる問題を解消。 空の合言葉でフォーム送信した際の422エラーも修正(バリデーション エラーメッセージを日本語で表示)。 https://claude.ai/code/session_01Qb3aHrurZxqwKKrwMMCvgVd9a9432 -
fix: ログイン不具合修正・合言葉入力をtext型に変更・メインカラーをRGB(127,49,67)に変更
ClaudeUnverified signature- ADMIN_PASSWORD に .strip() を追加(シークレット設定時の末尾空白対策) - ログイン画面の合言葉入力を type=password から type=text に変更(日本語入力対応) - 全テンプレートのメインカラーをピンクから赤 #7f3143 に変更 https://claude.ai/code/session_01Qb3aHrurZxqwKKrwMMCvgV9f7f01a -
Fix TemplateResponse calls for new Starlette API
ClaudeUnverified signatureNew Starlette requires TemplateResponse(request, name, context). Old style TemplateResponse(name, context_dict) caused TypeError: unhashable type: 'dict' because the context dict was used as the template name in Jinja2's LRU cache key. https://claude.ai/code/session_01Qb3aHrurZxqwKKrwMMCvgV988c22e -
fix: コメントエンドポイントをcommentsに戻す
ClaudeUnverified signaturehttps://claude.ai/code/session_01Qb3aHrurZxqwKKrwMMCvgV1d82218 -
fix: google.generativeai インポートエラー耐性・コメントエンドポイント修正
ClaudeUnverified signature- google.generativeai を try-except でラップ(インポート失敗時もアプリ起動を継続) - コメントAPIエンドポイントを comments → coment に修正(CLAUDE.md準拠) - Dockerfile にシステム依存パッケージ追加(libssl-dev libffi-dev build-essential) https://claude.ai/code/session_01Qb3aHrurZxqwKKrwMMCvgV781bb19 -
feat: StreamlitからFastAPI + 純粋HTML/JS/CSSへ全面書き直し
ClaudeUnverified signature- main.py: FastAPIアプリ(認証・microCMS連携・全ルート) - Dockerfile: Hugging Face Docker Space用(ポート7860) - requirements.txt: FastAPI/uvicorn/jinja2等の依存関係 - templates/: 全テンプレート(ブログ一覧・詳細・管理画面・ブロックエディタ) - CLAUDE.md: セクション6.3のblog-backlog → blog-backupに修正 https://claude.ai/code/session_01Qb3aHrurZxqwKKrwMMCvgV4138418