From a53772bbd1dd2804872ae0e519bedeb2a2fd4287 Mon Sep 17 00:00:00 2001
From: Osman Tunahan ARIKAN <154083945+OsmanTunahan@users.noreply.github.com>
Date: Wed, 30 Oct 2024 22:33:22 +0000
Subject: [PATCH] feat(i18n): add turkish language (#1554)
---
quartz/plugins/transformers/ofm.ts | 25 +++++++++++--------------
1 files changed, 11 insertions(+), 14 deletions(-)
diff --git a/quartz/plugins/transformers/ofm.ts b/quartz/plugins/transformers/ofm.ts
index 8fbfd37..70dce60 100644
--- a/quartz/plugins/transformers/ofm.ts
+++ b/quartz/plugins/transformers/ofm.ts
@@ -2,7 +2,6 @@
import { Root, Html, BlockContent, DefinitionContent, Paragraph, Code } from "mdast"
import { Element, Literal, Root as HtmlRoot } from "hast"
import { ReplaceFunction, findAndReplace as mdastFindReplace } from "mdast-util-find-and-replace"
-import { slug as slugAnchor } from "github-slugger"
import rehypeRaw from "rehype-raw"
import { SKIP, visit } from "unist-util-visit"
import path from "path"
@@ -120,7 +119,7 @@
const highlightRegex = new RegExp(/==([^=]+)==/g)
const commentRegex = new RegExp(/%%[\s\S]*?%%/g)
// from https://github.com/escwxyz/remark-obsidian-callout/blob/main/src/index.ts
-const calloutRegex = new RegExp(/^\[\!(\w+)\|?(.+?)?\]([+-]?)/)
+const calloutRegex = new RegExp(/^\[\!([\w-]+)\|?(.+?)?\]([+-]?)/)
const calloutLineRegex = new RegExp(/^> *\[\!\w+\|?.*?\][+-]?.*$/gm)
// (?:^| ) -> non-capturing group, tag should start be separated by a space or be the start of the line
// #(...) -> capturing group, tag itself must start with #
@@ -137,9 +136,7 @@
/^(?<alt>(?!^\d*x?\d*$).*?)?(\|?\s*?(?<width>\d+)(x(?<height>\d+))?)?$/,
)
-export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin<Partial<Options> | undefined> = (
- userOpts,
-) => {
+export const ObsidianFlavoredMarkdown: QuartzTransformerPlugin<Partial<Options>> = (userOpts) => {
const opts = { ...defaultOptions, ...userOpts }
const mdastToHtml = (ast: PhrasingContent | Paragraph) => {
@@ -196,7 +193,7 @@
const [rawFp, rawHeader, rawAlias]: (string | undefined)[] = capture
const [fp, anchor] = splitAnchor(`${rawFp ?? ""}${rawHeader ?? ""}`)
- const blockRef = Boolean(anchor?.startsWith("^")) ? "^" : ""
+ const blockRef = Boolean(rawHeader?.match(/^#?\^/)) ? "^" : ""
const displayAnchor = anchor ? `#${blockRef}${anchor.trim().replace(/^#+/, "")}` : ""
const displayAlias = rawAlias ?? rawHeader?.replace("#", "|") ?? ""
const embedDisplay = value.startsWith("!") ? "!" : ""
@@ -264,7 +261,7 @@
} else if ([".pdf"].includes(ext)) {
return {
type: "html",
- value: `<iframe src="${url}"></iframe>`,
+ value: `<iframe src="${url}" class="pdf"></iframe>`,
}
} else {
const block = anchor
@@ -327,8 +324,8 @@
replacements.push([
tagRegex,
(_value: string, tag: string) => {
- // Check if the tag only includes numbers
- if (/^\d+$/.test(tag)) {
+ // Check if the tag only includes numbers and slashes
+ if (/^[\/\d]+$/.test(tag)) {
return false
}
@@ -433,7 +430,9 @@
children: [
{
type: "text",
- value: useDefaultTitle ? capitalize(typeString) : titleContent + " ",
+ value: useDefaultTitle
+ ? capitalize(typeString).replace(/-/g, " ")
+ : titleContent + " ",
},
...restOfTitle,
],
@@ -617,11 +616,10 @@
// YouTube video (with optional playlist)
node.tagName = "iframe"
node.properties = {
- class: "external-embed",
+ class: "external-embed youtube",
allow: "fullscreen",
frameborder: 0,
width: "600px",
- height: "350px",
src: playlistId
? `https://www.youtube.com/embed/${videoId}?list=${playlistId}`
: `https://www.youtube.com/embed/${videoId}`,
@@ -630,11 +628,10 @@
// YouTube playlist only.
node.tagName = "iframe"
node.properties = {
- class: "external-embed",
+ class: "external-embed youtube",
allow: "fullscreen",
frameborder: 0,
width: "600px",
- height: "350px",
src: `https://www.youtube.com/embed/videoseries?list=${playlistId}`,
}
}
--
Gitblit v1.10.0