summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/index.ts54
-rw-r--r--src/vitePlugin.ts2
2 files changed, 32 insertions, 24 deletions
diff --git a/src/index.ts b/src/index.ts
index 83ffc75..47e82da 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,7 +1,7 @@
import type {AstroIntegration, ContentEntryType, HookParameters} from "astro"
import {fileURLToPath} from "url"
import gemtextVitePlugin from "./vitePlugin.js"
-import { parse as parseYaml } from "yaml";
+import {parse as parseYaml} from "yaml"
/** Gemtext configuration options */
export interface GemtextConfig {
@@ -31,26 +31,34 @@ export default function gemtext(config: GemtextConfig = {}): AstroIntegration {
hooks: {
"astro:config:setup": async (_params) => {
const params = _params as SetupHookParams
- params.addPageExtension('.gmi')
+ params.addPageExtension(".gmi")
params.addContentEntryType({
- extensions: ['.gmi'],
- getEntryInfo: async ({ fileUrl, contents }) => {
- const lines = contents.split('\n');
- let data: Record<string, unknown> = {};
- let frontmatter = '';
- let bodyStartLineIndex = 0;
+ extensions: [".gmi"],
+ getEntryInfo: async ({fileUrl, contents}) => {
+ const lines = contents.split("\n")
+ let data: Record<string, unknown> = {}
+ let frontmatter = ""
+ let bodyStartLineIndex = 0
- if (lines.at(0) === '---' && lines.lastIndexOf('---') > 0) {
- bodyStartLineIndex = lines.indexOf('---', 1) + 1;
- frontmatter = lines.slice(1, bodyStartLineIndex - 1).join('\n');
- try {
- data = { ...data, ...parseYaml(frontmatter, { schema: 'yaml-1.1' }) };
- } catch (e) {
- console.debug('Failed to parse YAML frontmatter in gemtext:', e);
+ if (lines.at(0) === "---" && lines.lastIndexOf("---") > 0) {
+ bodyStartLineIndex = lines.indexOf("---", 1) + 1
+ frontmatter = lines
+ .slice(1, bodyStartLineIndex - 1)
+ .join("\n")
+ try {
+ data = {
+ ...data,
+ ...parseYaml(frontmatter, {schema: "yaml-1.1"}),
+ }
+ } catch (e) {
+ console.debug(
+ "Failed to parse YAML frontmatter in gemtext:",
+ e,
+ )
+ }
}
- }
- const body = lines.slice(bodyStartLineIndex).join('\n');
+ const body = lines.slice(bodyStartLineIndex).join("\n")
const slug =
typeof data["slug"] === "string" ?
@@ -59,12 +67,12 @@ export default function gemtext(config: GemtextConfig = {}): AstroIntegration {
fileURLToPath(fileUrl).lastIndexOf("/") + 1,
)
- return {
- data,
- rawData: frontmatter,
- body,
- slug,
- };
+ return {
+ data,
+ rawData: frontmatter,
+ body,
+ slug,
+ }
},
})
params.updateConfig({
diff --git a/src/vitePlugin.ts b/src/vitePlugin.ts
index 7b5ef44..4546a95 100644
--- a/src/vitePlugin.ts
+++ b/src/vitePlugin.ts
@@ -54,7 +54,7 @@ export default function gemtextVitePlugin(config: GemtextConfig): Plugin {
name: "astro-gemtext",
enforce: "pre",
transform(code, id) {
- if (!id.endsWith('.gmi')) return
+ if (!id.endsWith(".gmi")) return
return {
code: transform(code, id, config),
map: null,