@anja.codes/create-vitakit 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -34,7 +34,8 @@ pnpm create @anja.codes/vitakit --deployment-help
34
34
  - **GitLab Pages:** private source supported on Free; uses GitLab CI/CD.
35
35
  - **Codeberg Pages:** uses git-pages and Forgejo Actions. Hosted CI requires public,
36
36
  freely licensed source; use your own runner for sensitive CV source.
37
- - **SSH/rsync:** needs existing web space; the preset uses Forgejo Actions.
37
+ - **SSH/rsync:** needs existing web space; uses GitHub Actions via
38
+ `.github/workflows/rsync.yml`.
38
39
 
39
40
  Choosing to decide later adds no workflows and leaves all hosting options open.
40
41
 
package/deployments.mjs CHANGED
@@ -87,17 +87,17 @@ export const DEPLOYMENTS = {
87
87
  details: {
88
88
  URL: 'Your server’s URL, e.g. https://www.example.edu/~username/.',
89
89
  Needs: 'SSH/rsync access and a writable web directory; not SFTP-only hosting.',
90
- CI: 'Forgejo Actions, not GitHub Actions.',
90
+ CI: 'GitHub Actions.',
91
91
  },
92
92
  setup: [
93
- 'Open .forgejo/workflows/deploy.yml.',
93
+ 'Open .github/workflows/rsync.yml.',
94
94
  'Set the SSH user, host, destination path and NUXT_APP_BASE_URL.',
95
- 'Add SSH_DEPLOY_KEY as a Forgejo Actions repository secret.',
95
+ 'Add SSH_DEPLOY_KEY as a GitHub Actions repository secret.',
96
96
  'Configure SSH host-key verification; the template currently disables it.',
97
97
  'Commit pnpm-lock.yaml and push to main.',
98
98
  ],
99
99
  notes: ['Check the destination: rsync --delete removes files absent from the build.'],
100
- files: ['.forgejo/workflows/deploy.yml'],
100
+ files: ['.github/workflows/rsync.yml'],
101
101
  },
102
102
  'none': {
103
103
  label: 'Decide later / deploy manually',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anja.codes/create-vitakit",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Scaffold a vitakit project: an academic website and a LaTeX CV from one set of files.",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -2,28 +2,33 @@
2
2
  #
3
3
  # Secret: SSH_DEPLOY_KEY (private key with write access to the target).
4
4
  # Adjust NUXT_APP_BASE_URL and the rsync target below.
5
+ name: Deploy (SSH/rsync)
6
+
5
7
  on:
6
8
  push:
7
9
  branches: [main]
8
10
  workflow_dispatch:
9
11
 
12
+ permissions:
13
+ contents: read
14
+
10
15
  jobs:
11
16
  deploy:
12
17
  runs-on: ubuntu-latest
13
18
  env:
14
19
  NUXT_APP_BASE_URL: /
15
20
  steps:
16
- - uses: https://github.com/actions/checkout@v7
17
- - run: apt update && apt install -y rsync
18
- - uses: https://github.com/pnpm/action-setup@v6
21
+ - uses: actions/checkout@v7
22
+ - run: sudo apt-get update && sudo apt-get install -y rsync
23
+ - uses: pnpm/action-setup@v6
19
24
  # The runner image may ship an older Node than Nuxt requires.
20
- - uses: https://github.com/actions/setup-node@v7
25
+ - uses: actions/setup-node@v7
21
26
  with:
22
27
  node-version: 22
23
28
  cache: pnpm
24
29
  - run: pnpm install --frozen-lockfile
25
30
  - run: pnpm check
26
- - uses: https://github.com/webfactory/ssh-agent@v0.9.0
31
+ - uses: webfactory/ssh-agent@v0.9.0
27
32
  with:
28
33
  ssh-private-key: ${{ secrets.SSH_DEPLOY_KEY }}
29
34
  - run: |
@@ -52,9 +52,15 @@ a {
52
52
  .vita-publications__group + .vita-publications__group {
53
53
  @apply mt-8;
54
54
  }
55
+ .vita-publications__title {
56
+ @apply text-xl font-semibold;
57
+ }
55
58
  .vita-publications__heading {
56
59
  @apply text-xl font-semibold;
57
60
  }
61
+ .vita-publications__title ~ .vita-publications__group .vita-publications__heading {
62
+ @apply mt-4 text-base;
63
+ }
58
64
  .vita-bib {
59
65
  @apply mt-3 list-decimal space-y-3 pl-6;
60
66
  }
@@ -1,13 +1,15 @@
1
1
  <script setup lang="ts">
2
2
  /**
3
3
  * The landing page: who you are, then the prose from
4
- * `content/pages/index.md`, then a few recent items.
4
+ * `content/pages/index.md`, then a few recent items: the list `recent` of
5
+ * `content/publication-lists.yml`, and the newest talks.
5
6
  *
6
7
  * This file is yours — reorder it, delete parts, add your own markup.
7
8
  */
8
9
  const profile = useProfile()
9
10
  const page = usePage('/')
10
11
  const talks = useSection('talks')
12
+ const publications = usePublicationList('recent')
11
13
 
12
14
  useHead({
13
15
  title: profile.name,
@@ -47,6 +49,18 @@ useHead({
47
49
 
48
50
  <VitaMarkdown v-if="page" class="mt-8" :html="page.bodyHtml" />
49
51
 
52
+ <section v-if="publications.count" class="mt-10">
53
+ <h2 class="text-xl font-semibold">
54
+ Recent publications
55
+ </h2>
56
+ <VitaPublications list="recent" class="mt-3" />
57
+ <p class="mt-3 text-sm">
58
+ <NuxtLink to="/publications/">
59
+ All publications →
60
+ </NuxtLink>
61
+ </p>
62
+ </section>
63
+
50
64
  <section v-if="talks.length" class="mt-10">
51
65
  <h2 class="text-xl font-semibold">
52
66
  Recent talks
@@ -22,6 +22,6 @@ useHead({
22
22
  <article>
23
23
  <h1 class="text-3xl font-semibold" v-html="page.titleHtml" />
24
24
  <VitaMarkdown class="mt-6" :html="page.bodyHtml" />
25
- <VitaPublications class="mt-8" />
25
+ <VitaPublications list="all" class="mt-8" />
26
26
  </article>
27
27
  </template>
@@ -0,0 +1,23 @@
1
+ # Publication lists: which publications of publications.bib a list shows,
2
+ # in what order and in which groups. A page shows one with
3
+ # <VitaPublications list="recent" title="Recent publications" />
4
+ # and a PDF with
5
+ # \vitapublications[Recent publications]{recent}
6
+ #
7
+ # Settings, all optional:
8
+ # where: { status: preprint }, { keywords: selected }, { year: 2024 } --
9
+ # fields of the entries in publications.bib; [a, b] means a or b
10
+ # keys: [doe2024, roe2023] -- exactly these, in this order
11
+ # since, until: years
12
+ # sort: date (newest first), year, title, source (as in publications.bib),
13
+ # or a field; order: asc or desc
14
+ # limit: at most this many
15
+ # groupBy: status, year or a field; otherLabel: the heading for the entries
16
+ # without it (Other)
17
+ # `vitakit explain publications` shows what each list contains and where.
18
+
19
+ all:
20
+ groupBy: status
21
+
22
+ recent:
23
+ limit: 3
@@ -1,9 +1,11 @@
1
1
  % Your publication list. Export it from Zotero, JabRef or arXiv and replace the
2
2
  % examples below.
3
3
  %
4
- % The non-standard `status` field decides the grouping on /publications/ and in
5
- % the PDF: published, accepted, preprint, software or other; without it, an
6
- % entry is published. To change the groups:
4
+ % The non-standard `status` field says what an entry is: published, accepted,
5
+ % preprint, software or other; without it, an entry is published. Which
6
+ % publications are shown where -- grouped by status on /publications/, the
7
+ % newest on the home page -- is decided in content/publication-lists.yml.
8
+ % To change the statuses and their headings:
7
9
  % pnpm vitakit customize publications # -> schemas/publications.ts
8
10
  %
9
11
  % `doi`, `arxiv`, `mrnumber` and `zbl` become links; `eprint` with
@@ -30,8 +30,7 @@
30
30
  \vitasection[Education]{education}
31
31
  \vitasection[Teaching]{teaching}
32
32
 
33
- \section{Publications}
34
- \vitainput{publications}
33
+ \vitapublications[Publications]{all}
35
34
 
36
35
  \vitasection[Supervised theses]{supervision}
37
36
  \vitasection[Selected talks]{talks}
@@ -16,7 +16,7 @@
16
16
  "pdf": "vitakit pdf"
17
17
  },
18
18
  "dependencies": {
19
- "@anja.codes/vitakit": "^0.2.0",
19
+ "@anja.codes/vitakit": "^0.3.0",
20
20
  "@nuxt/fonts": "^0.14.0",
21
21
  "@tailwindcss/vite": "^4.3.3",
22
22
  "nuxt": "^4.5.2",