From 1f9b9e99989748a760f9cfec77d4c6de729382cf Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 23 Aug 2023 18:49:53 +0200 Subject: [PATCH] Feature/blog post ghostfolio joins oss friends (#2260) * Add blog post: Ghostfolio joins OSS Friends * Update changelog --- CHANGELOG.md | 4 + apps/api/src/assets/sitemap.xml | 4 + .../middlewares/html-template.middleware.ts | 4 + ...tfolio-joins-oss-friends-page.component.ts | 14 ++ .../ghostfolio-joins-oss-friends-page.html | 167 ++++++++++++++++++ .../pages/blog/blog-page-routing.module.ts | 9 + apps/client/src/app/pages/blog/blog-page.html | 26 +++ .../blog/ghostfolio-joins-oss-friends.png | Bin 0 -> 15638 bytes 8 files changed, 228 insertions(+) create mode 100644 apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts create mode 100644 apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.html create mode 100644 apps/client/src/assets/images/blog/ghostfolio-joins-oss-friends.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 1699c6c6d..b08b7d4fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Added + +- Added a blog post: _Ghostfolio joins OSS Friends_ + ### Changed - Refreshed the cryptocurrencies list diff --git a/apps/api/src/assets/sitemap.xml b/apps/api/src/assets/sitemap.xml index 10f20ca46..915bb8e84 100644 --- a/apps/api/src/assets/sitemap.xml +++ b/apps/api/src/assets/sitemap.xml @@ -142,6 +142,10 @@ https://ghostfol.io/en/blog/2023/07/exploring-the-path-to-fire ${currentDate}T00:00:00+00:00 + + https://ghostfol.io/en/blog/2023/08/ghostfolio-joins-oss-friends + ${currentDate}T00:00:00+00:00 + https://ghostfol.io/en/faq ${currentDate}T00:00:00+00:00 diff --git a/apps/api/src/middlewares/html-template.middleware.ts b/apps/api/src/middlewares/html-template.middleware.ts index efbd60fa7..acb3f5aa0 100644 --- a/apps/api/src/middlewares/html-template.middleware.ts +++ b/apps/api/src/middlewares/html-template.middleware.ts @@ -71,6 +71,10 @@ const locales = { '/en/blog/2023/07/exploring-the-path-to-fire': { featureGraphicPath: 'assets/images/blog/20230701.jpg', title: `Exploring the Path to FIRE - ${titleShort}` + }, + '/en/blog/2023/08/ghostfolio-joins-oss-friends': { + featureGraphicPath: 'assets/images/blog/ghostfolio-joins-oss-friends.png', + title: `Ghostfolio joins OSS Friends - ${titleShort}` } }; diff --git a/apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts b/apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts new file mode 100644 index 000000000..682a1fdd8 --- /dev/null +++ b/apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts @@ -0,0 +1,14 @@ +import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { RouterModule } from '@angular/router'; + +@Component({ + host: { class: 'page' }, + imports: [MatButtonModule, RouterModule], + selector: 'gf-ghostfolio-joins-oss-friends-page', + standalone: true, + templateUrl: './ghostfolio-joins-oss-friends-page.html' +}) +export class GhostfolioJoinsOssFriendsPageComponent { + public routerLinkAboutOssFriends = ['/' + $localize`about`, 'oss-friends']; +} diff --git a/apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.html b/apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.html new file mode 100644 index 000000000..16cb3d72e --- /dev/null +++ b/apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.html @@ -0,0 +1,167 @@ +
+
+
+
+
+

Ghostfolio joins OSS Friends

+
2023-08-23
+ Ghostfolio joins OSS Friends Teaser +
+
+

+ We are excited to announce that Ghostfolio is now part of the + OSS Friends. This + new initiative is all about helping open source projects grow and + become more popular. +

+
+
+

The Story of OSS Friends

+

+ OSS Friends started as a simple + post + on X (formerly known as Twitter). The idea came from + Formbricks, an + open source experience management platform to create surveys in + minutes, and is all about giving open source projects a boost. +

+

+ If you are excited about the OSS Friends movement and want to bring + your own open source project along, just take a moment to fill out + this form. Let’s work and learn together – all the open source way. +

+
+
+

+ Ghostfolio – Next Generation Software for your Personal Finances +

+

+ Money management can be tricky, especially when you have various + investments like cryptocurrencies, ETFs and stocks in your + portfolio. But guess what? There are cooler ways than staring at + boring spreadsheets. Say hello to Ghostfolio, a privacy-first, open + source dashboard for your personal finances. +

+
+
+

+ Would you like to simplify asset tracking? +

+

+ Ghostfolio empowers you to make informed investment decisions. +

+ +
+
+
    +
  • + Asset +
  • +
  • + Collaboration +
  • +
  • + Cryptocurrency +
  • +
  • + Community +
  • +
  • + Dashboard +
  • +
  • + ETF +
  • +
  • + Finance +
  • +
  • + Fintech +
  • +
  • + Ghostfolio +
  • +
  • + Initiative +
  • +
  • + Innovation +
  • +
  • + Investment +
  • +
  • + Open Source +
  • +
  • + OSS +
  • +
  • + OSS Friends +
  • +
  • + Personal Finance +
  • +
  • + Platform +
  • +
  • + Portfolio +
  • +
  • + Privacy +
  • +
  • + Software +
  • +
  • + Stock +
  • +
  • + Technology +
  • +
  • + Tracking +
  • +
  • + Wealth Management +
  • +
  • + Web3 +
  • +
+
+ +
+
+
+
diff --git a/apps/client/src/app/pages/blog/blog-page-routing.module.ts b/apps/client/src/app/pages/blog/blog-page-routing.module.ts index 4c41b423e..30d9eb3b5 100644 --- a/apps/client/src/app/pages/blog/blog-page-routing.module.ts +++ b/apps/client/src/app/pages/blog/blog-page-routing.module.ts @@ -136,6 +136,15 @@ const routes: Routes = [ './2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component' ).then((c) => c.ExploringThePathToFirePageComponent), title: 'Exploring the Path to FIRE' + }, + { + canActivate: [AuthGuard], + path: '2023/08/ghostfolio-joins-oss-friends', + loadComponent: () => + import( + './2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component' + ).then((c) => c.GhostfolioJoinsOssFriendsPageComponent), + title: 'Ghostfolio joins OSS Friends' } ]; diff --git a/apps/client/src/app/pages/blog/blog-page.html b/apps/client/src/app/pages/blog/blog-page.html index 26c262c1a..b5dfae39e 100644 --- a/apps/client/src/app/pages/blog/blog-page.html +++ b/apps/client/src/app/pages/blog/blog-page.html @@ -8,6 +8,32 @@ finance + + + + +
diff --git a/apps/client/src/assets/images/blog/ghostfolio-joins-oss-friends.png b/apps/client/src/assets/images/blog/ghostfolio-joins-oss-friends.png new file mode 100644 index 0000000000000000000000000000000000000000..f8d90aedb87cac069d03e7be044de0adad519f39 GIT binary patch literal 15638 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 KmsKiuAN~)H*2@Y2 literal 0 HcmV?d00001