Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extract image generation #16

Merged
merged 24 commits into from
Jun 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/silly-hounds-sit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@d0rich/dog': minor
---

Implement OG images generator CLI and web UI
5 changes: 5 additions & 0 deletions .changeset/tasty-spies-shop.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'd0xigen': minor
---

Remove image generations. Now it will be available via @d0rich/dog
28 changes: 28 additions & 0 deletions .github/workflows/cdn.build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Build CDN
on:
schedule:
# Run every day
- cron: '0 0 * * *'
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install Node.js
uses: actions/setup-node@v2
with:
node-version: '20'
- name: Install dependencies
working-directory: ./cdn
run: npm ci
- name: Build
working-directory: ./cdn
run: npm run build
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./cdn/dist
publish_branch: cdn
1 change: 0 additions & 1 deletion .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"recommendations": [
"vue.vscode-typescript-vue-plugin",
"vue.volar",
"nuxt.mdc",
"bradlc.vscode-tailwindcss",
Expand Down
2 changes: 1 addition & 1 deletion apps/d0rich.me/components/layouts/DHeader.vue
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
<DBtn to="/"> Dorich </DBtn>
<DBtn to="/projects/"> Projects </DBtn>
<DBtn to="/blog/"> Blog </DBtn>
<DBtn to="/resume/"> Resume </DBtn>
<DBtn to="/resume/"> Resumé </DBtn>
</div>
</DShape>
</header>
Expand Down
8 changes: 6 additions & 2 deletions apps/d0rich.me/components/resume/CertificatesCard.vue
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,13 @@ defineProps<{
</script>

<template>
<DCard dense class="break-inside-avoid">
<DCard dense class="">
<ul class="resume-sertificates-card__list">
<li v-for="cert in cerificates" :key="cert._id">
<li
v-for="cert in cerificates"
:key="cert._id"
class="break-inside-avoid"
>
{{ cert.title }}
(<NuxtLink
class="resume-sertificates-card__place"
Expand Down
2 changes: 1 addition & 1 deletion apps/d0rich.me/components/resume/ProjectNote.vue
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ defineProps<{
</script>

<template>
<DCard class="break-inside-avoid">
<DCard class="">
<DCardTitle>
{{ project.title }}
<template #extra>
Expand Down
8 changes: 6 additions & 2 deletions apps/d0rich.me/components/resume/ProjectsCard.vue
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,13 @@ defineProps<{
</script>

<template>
<DCard dense class="break-inside-avoid">
<DCard dense>
<ul class="resume-projects-card__list">
<li v-for="project in projects" :key="project.url">
<li
v-for="project in projects"
:key="project.url"
class="break-inside-avoid"
>
<NuxtLink
class="resume-projects-card__place"
:href="addTrailingSlash(project.url)"
Expand Down
8 changes: 5 additions & 3 deletions apps/d0rich.me/components/resume/TimeNote.vue
Original file line number Diff line number Diff line change
Expand Up @@ -18,21 +18,23 @@ defineProps<{
</script>

<template>
<DCard class="break-inside-avoid">
<DCard class="">
<DCardTitle>
{{ timenote.title }}
<template #extra>
<Component
:is="timenote.place.link ? 'a' : 'span'"
:href="timenote.place.link"
target="_blank"
class="timenote__place-link"
class="timenote__place-link print:ml-2"
>
{{ timenote.place.title }}
</Component>
</template>
</DCardTitle>
<p class="text-blue-600 dark:text-blue-300 print:text-sm">
<p
class="text-blue-600 dark:text-blue-300 print:text-sm break-inside-avoid"
>
<time :datetime="timenote.daterange.start">
{{ dateToMonthYear(timenote.daterange.start) }}
</time>
Expand Down
3 changes: 3 additions & 0 deletions apps/d0rich.me/netlify.toml
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
[build]
base = "/"
publish = "apps/d0rich.me/dist"
ignore = "node apps/d0rich.me/ignore-build.mjs"
command = "npm run generate --workspace=d0rich.me"
8 changes: 1 addition & 7 deletions apps/d0rich.me/nuxt.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,7 @@ export default defineNuxtConfig({
modules: ['@nuxthq/studio', '@nuxt/content'],
nitro: {
prerender: {
routes: [
'/',
'/sitemap.xml',
'/api/resume/Nikolai_Dorofeev-Fullstack_Developer.pdf',
'/api/resume/Nikolai_Dorofeev-Backend_Developer.pdf',
'/api/resume/Nikolai_Dorofeev-Frontend_Developer.pdf'
]
routes: ['/', '/sitemap.xml', '/api/resume/list.json']
}
},
content: {
Expand Down
2 changes: 0 additions & 2 deletions apps/d0rich.me/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,7 @@
"dateformat": "^5.0.3",
"gsap": "^3.12.5",
"mobile-detect": "^1.4.5",
"node-html-parser": "^6.1.13",
"octokit": "^4.0.2",
"puppeteer": "^21.11.0",
"rehype-external-links": "^3.0.0",
"remark-simple-plantuml": "npm:@akebifiky/remark-simple-plantuml@^1.0.2",
"sitemap": "^8.0.0",
Expand Down
21 changes: 10 additions & 11 deletions apps/d0rich.me/pages/resume/[type].vue
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,8 @@ const { data, error } = useFetch<ResumeData>('/api/resume/data', {
})

const printResumeLink = computed(() => {
return `/api/resume/Nikolai_Dorofeev-${data.value?.lead.title?.replaceAll(
' ',
'_'
)}.pdf`
const specialization = data.value?.lead.title?.replaceAll(' ', '_')
return `https://cdn.d0rich.me/resume/Nikolai_Dorofeev-${specialization}.pdf`
})

const { data: resumeList } = useAsyncData(
Expand All @@ -42,7 +40,7 @@ const { data: resumeList } = useAsyncData(
<div>
<AsyncSafeSeoWithOg
v-if="data"
:title="`Resume: ${data.lead.title}`"
:title="`Resumé: ${data.lead.title}`"
:description="data.lead.description"
/>
<DevOnly>
Expand Down Expand Up @@ -110,15 +108,15 @@ const { data: resumeList } = useAsyncData(
}"
>
<div class="print:order-2">
<section id="languages" class="break-inside-avoid">
<section id="languages" class="">
<h2 class="resume-page__section-title">Languages</h2>
<ContentRenderer
:value="data.languages"
tag="section"
class="resume-page__prose-content"
/>
</section>
<section id="skills" class="break-inside-avoid">
<section id="skills" class="">
<h2 class="resume-page__section-title">Skills</h2>
<TransitionGroup
name="skills-list"
Expand All @@ -133,12 +131,13 @@ const { data: resumeList } = useAsyncData(
v-for="skillset in data.skills"
:key="skillset._id"
:value="skillset"
class="break-inside-avoid"
/>
</TransitionGroup>
</section>
</div>
<div>
<section id="work-experience" class="break-inside-avoid">
<section id="work-experience" class="">
<h2 class="resume-page__section-title">Work Experience</h2>
<ResumeTimeNote
v-for="workPlace in data.work"
Expand All @@ -148,16 +147,16 @@ const { data: resumeList } = useAsyncData(
/>
</section>
<div class="grid md:grid-cols-2 gap-x-20 print:block">
<section id="projects" class="break-inside-avoid">
<section id="projects" class="">
<h2 class="resume-page__section-title">Projects</h2>
<ResumeProjectsCard :projects="data.projects" />
</section>
<section id="certificates" class="break-inside-avoid">
<section id="certificates" class="">
<h2 class="resume-page__section-title">Certificates</h2>
<ResumeCertificatesCard :cerificates="data.certificates" />
</section>
</div>
<section id="education" class="break-inside-avoid">
<section id="education" class="">
<h2 class="resume-page__section-title">Education</h2>
<ResumeTimeNote
v-for="eduPlace in data.education"
Expand Down
21 changes: 0 additions & 21 deletions apps/d0rich.me/server/routes/api/resume/[type].pdf.ts

This file was deleted.

12 changes: 12 additions & 0 deletions apps/d0rich.me/server/routes/api/resume/list.json.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { serverQueryContent } from '#content/server'

// Add required routes to prerender in nuxt.config.ts
export default defineEventHandler(async (event) => {
const resumeList = await serverQueryContent(event, '/resume/leads')
.only(['_path' as const, 'title' as const])
.find()
return resumeList.map((resume) => ({
title: resume.title,
path: resume._path?.replace('/resume/leads', '/resume')
}))
})
68 changes: 0 additions & 68 deletions apps/d0rich.me/server/utils/puppeteer.ts

This file was deleted.

2 changes: 1 addition & 1 deletion apps/d0xigen.d0rich.me/app.config.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
export default defineAppConfig({
d0xigen: {
title: 'd0xigen',
description: '🌬🕮 Docs to breath life into your project',
description: '🌬📓 Docs to breath life into your project',
url: 'https://d0xigen.d0rich.me',
author: 'Nikolay Dorofeev',
social: {
Expand Down
3 changes: 3 additions & 0 deletions apps/d0xigen.d0rich.me/netlify.toml
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
[build]
base = "/"
publish = "apps/d0xigen.d0rich.me/dist"
ignore = "node apps/d0xigen.d0rich.me/ignore-build.mjs"
command = "npm run generate --workspace=d0xigen.d0rich.me"
Binary file added apps/d0xigen.d0rich.me/public/favicon.ico
Binary file not shown.
Binary file added apps/d0xigen.d0rich.me/public/og/image.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions apps/design.d0rich.me/netlify.toml
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
[build]
base = "/"
publish = "apps/design.d0rich.me/dist"
ignore = "node apps/design.d0rich.me/ignore-build.mjs"
command = "npm run generate --workspace=design.d0rich.me"
Loading
Loading