Quartz4ではSNSなどに共有した際にOGPを使用してカード表示が行えます。

概要の表示

デフォルトでは記事の文頭が入った画像が生成されます。

記事のmarkdownにFront Matterを作成しdescriptionキーを記載すると以下のようになります。

descriptionを空文字列にすることもできます。

記事タイトルの編集

記事タイトルにサイトのpageTitleSuffixを付けたくなかったのでQuartz側を直接修正しました。

diff --git a/quartz/quartz/plugins/emitters/ogImage.tsx b/quartz/quartz/plugins/emitters/ogImage.tsx
index 813d934..68875d3 100644
--- a/quartz/quartz/plugins/emitters/ogImage.tsx
+++ b/quartz/quartz/plugins/emitters/ogImage.tsx
@@ -73,9 +73,8 @@ async function processOgImage(
 ) {
   const cfg = ctx.cfg.configuration
   const slug = fileData.slug!
-  const titleSuffix = cfg.pageTitleSuffix ?? ""
   const title =
-    (fileData.frontmatter?.title ?? i18n(cfg.locale).propertyDefaults.title) + titleSuffix
+    (fileData.frontmatter?.title ?? i18n(cfg.locale).propertyDefaults.title)
   const description =
     fileData.frontmatter?.socialDescription ??
     fileData.frontmatter?.description ??

アイコン画像の調整

quartz/static/icon.pngにある画像がOG画像の左上にアイコンとして表示されます。

画像サイズによっては見切れることがあるためQuartz側を修正しました。

diff --git a/quartz/quartz/util/og.tsx b/quartz/quartz/util/og.tsx
index 2afd606..ac64951 100644
--- a/quartz/quartz/util/og.tsx
+++ b/quartz/quartz/util/og.tsx
@@ -220,14 +220,26 @@ export const defaultImage: SocialImageOptions["imageStructure"] = ({
         }}
       >
         {iconBase64 && (
-          <img
-            src={iconBase64}
-            width={56}
-            height={56}
+          <div 
             style={{
-              borderRadius: "50%",
+                display: "flex",
+                alignItems: "center",
+                justifyContent: "center",
+                width: 56,
+                height: 56,
+                borderRadius: "50%",
+                overflow: "hidden",
             }}
-          />
+          >
+            <img
+              src={iconBase64}
+              style={{
+                width: "90%",
+                height: "90%",
+                objectFit: "contain",
+              }}
+            />
+          </div>
         )}
         <div
           style={{

最終的に以下のような形にしました。