From 5eec1e98e6f6b16d4a29cdbbc69c573fb06e538d Mon Sep 17 00:00:00 2001
From: Emile Bangma <github@emilebangma.com>
Date: Wed, 25 Sep 2024 22:15:07 +0000
Subject: [PATCH] fix(layout): grid triage with backlinks (#1442)
---
quartz/plugins/transformers/description.ts | 22 +++++++++++++---------
1 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/quartz/plugins/transformers/description.ts b/quartz/plugins/transformers/description.ts
index 0f8cd8d..c7e592e 100644
--- a/quartz/plugins/transformers/description.ts
+++ b/quartz/plugins/transformers/description.ts
@@ -18,7 +18,7 @@
"g",
)
-export const Description: QuartzTransformerPlugin<Partial<Options> | undefined> = (userOpts) => {
+export const Description: QuartzTransformerPlugin<Partial<Options>> = (userOpts) => {
const opts = { ...defaultOptions, ...userOpts }
return {
name: "Description",
@@ -39,29 +39,33 @@
const desc = frontMatterDescription ?? text
const sentences = desc.replace(/\s+/g, " ").split(/\.\s/)
- let finalDesc = ""
- let sentenceIdx = 0
+ const finalDesc: string[] = []
const len = opts.descriptionLength
+ let sentenceIdx = 0
+ let currentDescriptionLength = 0
if (sentences[0] !== undefined && sentences[0].length >= len) {
const firstSentence = sentences[0].split(" ")
- while (finalDesc.length < len) {
+ while (currentDescriptionLength < len) {
const sentence = firstSentence[sentenceIdx]
if (!sentence) break
- finalDesc += sentence + " "
+ finalDesc.push(sentence)
+ currentDescriptionLength += sentence.length
sentenceIdx++
}
- finalDesc = finalDesc.trimEnd() + "..."
+ finalDesc.push("...")
} else {
- while (finalDesc.length < len) {
+ while (currentDescriptionLength < len) {
const sentence = sentences[sentenceIdx]
if (!sentence) break
- finalDesc += sentence.endsWith(".") ? sentence : sentence + "."
+ const currentSentence = sentence.endsWith(".") ? sentence : sentence + "."
+ finalDesc.push(currentSentence)
+ currentDescriptionLength += currentSentence.length
sentenceIdx++
}
}
- file.data.description = finalDesc
+ file.data.description = finalDesc.join(" ")
file.data.text = text
}
},
--
Gitblit v1.10.0