From 77be046f194515a3de8a0c51c1a62c418225b751 Mon Sep 17 00:00:00 2001 From: Sean Morley Date: Tue, 6 May 2025 14:47:03 -0400 Subject: [PATCH 1/5] feat: Add JSON-LD structured data for homepage SEO enhancement --- documentation/.vitepress/config.mts | 60 +++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/documentation/.vitepress/config.mts b/documentation/.vitepress/config.mts index ef5cd99..46effbb 100644 --- a/documentation/.vitepress/config.mts +++ b/documentation/.vitepress/config.mts @@ -25,6 +25,66 @@ export default defineConfig({ hostname: "https://adventurelog.app", }, + transformPageData(pageData) { + if (pageData.relativePath === "/") { + const jsonLd = { + "@context": "https://schema.org", + "@type": "SoftwareApplication", + name: "AdventureLog", + url: "https://adventurelog.app", + applicationCategory: "TravelApplication", + operatingSystem: "Web, Docker, Linux", + description: + "AdventureLog is a self-hosted platform for tracking and planning travel experiences. Built for modern explorers, it offers trip planning, journaling, tracking and location mapping in one privacy-respecting package.", + creator: { + "@type": "Person", + name: "Sean Morley", + url: "https://seanmorley.com", + }, + offers: { + "@type": "Offer", + price: "0.00", + priceCurrency: "USD", + description: "Open-source version available for self-hosting.", + }, + softwareVersion: "v0.9.0", + license: + "https://github.com/seanmorley15/adventurelog/blob/main/LICENSE", + screenshot: "https://adventurelog.app/adventurelog.png", + downloadUrl: "https://github.com/seanmorley15/adventurelog", + sameAs: ["https://github.com/seanmorley15/adventurelog"], + keywords: [ + "self-hosted travel log", + "open source trip planner", + "travel journaling app", + "docker travel diary", + "map-based travel tracker", + "privacy-focused travel app", + "adventure log software", + "travel experience tracker", + "self-hosted travel app", + "open source travel software", + "trip planning tool", + "travel itinerary manager", + "location-based travel app", + "travel experience sharing", + "travel log application", + ], + }; + + return { + frontmatter: { + ...pageData.frontmatter, + head: [ + ["script", { type: "application/ld+json" }, JSON.stringify(jsonLd)], + ], + }, + }; + } + + return {}; + }, + themeConfig: { // https://vitepress.dev/reference/default-theme-config nav: [ From 8d0490fd814888cdcf144eba693fa82affff50cb Mon Sep 17 00:00:00 2001 From: Sean Morley Date: Tue, 6 May 2025 14:50:39 -0400 Subject: [PATCH 2/5] fix: Update pageData check to use 'index.md' for JSON-LD transformation --- documentation/.vitepress/config.mts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/.vitepress/config.mts b/documentation/.vitepress/config.mts index 46effbb..d3bbf49 100644 --- a/documentation/.vitepress/config.mts +++ b/documentation/.vitepress/config.mts @@ -26,7 +26,7 @@ export default defineConfig({ }, transformPageData(pageData) { - if (pageData.relativePath === "/") { + if (pageData.relativePath === "index.md") { const jsonLd = { "@context": "https://schema.org", "@type": "SoftwareApplication", From c93d4865cea702ff7b5e7f3b99eeec0bc4e6ba80 Mon Sep 17 00:00:00 2001 From: Sean Morley <98704938+seanmorley15@users.noreply.github.com> Date: Tue, 6 May 2025 16:57:32 -0400 Subject: [PATCH 3/5] Update config.mts --- documentation/.vitepress/config.mts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/.vitepress/config.mts b/documentation/.vitepress/config.mts index d3bbf49..b4562a9 100644 --- a/documentation/.vitepress/config.mts +++ b/documentation/.vitepress/config.mts @@ -50,7 +50,7 @@ export default defineConfig({ softwareVersion: "v0.9.0", license: "https://github.com/seanmorley15/adventurelog/blob/main/LICENSE", - screenshot: "https://adventurelog.app/adventurelog.png", + screenshot: "https://raw.githubusercontent.com/seanmorley15/AdventureLog/refs/heads/main/brand/screenshots/adventures.png", downloadUrl: "https://github.com/seanmorley15/adventurelog", sameAs: ["https://github.com/seanmorley15/adventurelog"], keywords: [ From 5c109bbbaf483d083e261d4914f76bd2d59a2607 Mon Sep 17 00:00:00 2001 From: Sean Morley <98704938+seanmorley15@users.noreply.github.com> Date: Tue, 6 May 2025 19:40:36 -0400 Subject: [PATCH 4/5] Update config.mts --- documentation/.vitepress/config.mts | 1 + 1 file changed, 1 insertion(+) diff --git a/documentation/.vitepress/config.mts b/documentation/.vitepress/config.mts index b4562a9..715e501 100644 --- a/documentation/.vitepress/config.mts +++ b/documentation/.vitepress/config.mts @@ -244,6 +244,7 @@ export default defineConfig({ { icon: "buymeacoffee", link: "https://buymeacoffee.com/seanmorley15" }, { icon: "x", link: "https://x.com/AdventureLogApp" }, { icon: "mastodon", link: "https://mastodon.social/@adventurelog" }, + { icon: "instagram", link: "https://www.instagram.com/adventurelogapp" }, ], }, }); From 274dafc47d6725863222474617869b5cb12ca89d Mon Sep 17 00:00:00 2001 From: Florian Meinicke Date: Wed, 21 May 2025 07:33:20 +0000 Subject: [PATCH 5/5] Change note preview to render markdown content in the Collection/Itinerary view Closes #627 --- frontend/src/lib/components/NoteCard.svelte | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/frontend/src/lib/components/NoteCard.svelte b/frontend/src/lib/components/NoteCard.svelte index c973084..d7b35f1 100644 --- a/frontend/src/lib/components/NoteCard.svelte +++ b/frontend/src/lib/components/NoteCard.svelte @@ -5,6 +5,12 @@ import { createEventDispatcher } from 'svelte'; const dispatch = createEventDispatcher(); + import { marked } from 'marked'; // Import the markdown parser + + const renderMarkdown = (markdown: string) => { + return marked(markdown); + }; + import Launch from '~icons/mdi/launch'; import TrashCan from '~icons/mdi/trash-can'; import Calendar from '~icons/mdi/calendar'; @@ -72,9 +78,11 @@
{$t('adventures.out_of_range')}
{/if} {#if note.content && note.content.length > 0} -

- {note.content} -

+
+ {@html renderMarkdown(note.content || '')} +
{/if} {#if note.links && note.links.length > 0}