Skip to content

Commit a733759

Browse files
committed
Update website to use astro
1 parent 5bf1984 commit a733759

4,234 files changed

Lines changed: 82388 additions & 3 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.astro/content-assets.mjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default new Map();

.astro/content-modules.mjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default new Map();

.astro/content.d.ts

Lines changed: 199 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
declare module 'astro:content' {
2+
export interface RenderResult {
3+
Content: import('astro/runtime/server/index.js').AstroComponentFactory;
4+
headings: import('astro').MarkdownHeading[];
5+
remarkPluginFrontmatter: Record<string, any>;
6+
}
7+
interface Render {
8+
'.md': Promise<RenderResult>;
9+
}
10+
11+
export interface RenderedContent {
12+
html: string;
13+
metadata?: {
14+
imagePaths: Array<string>;
15+
[key: string]: unknown;
16+
};
17+
}
18+
}
19+
20+
declare module 'astro:content' {
21+
type Flatten<T> = T extends { [K: string]: infer U } ? U : never;
22+
23+
export type CollectionKey = keyof AnyEntryMap;
24+
export type CollectionEntry<C extends CollectionKey> = Flatten<AnyEntryMap[C]>;
25+
26+
export type ContentCollectionKey = keyof ContentEntryMap;
27+
export type DataCollectionKey = keyof DataEntryMap;
28+
29+
type AllValuesOf<T> = T extends any ? T[keyof T] : never;
30+
type ValidContentEntrySlug<C extends keyof ContentEntryMap> = AllValuesOf<
31+
ContentEntryMap[C]
32+
>['slug'];
33+
34+
export type ReferenceDataEntry<
35+
C extends CollectionKey,
36+
E extends keyof DataEntryMap[C] = string,
37+
> = {
38+
collection: C;
39+
id: E;
40+
};
41+
export type ReferenceContentEntry<
42+
C extends keyof ContentEntryMap,
43+
E extends ValidContentEntrySlug<C> | (string & {}) = string,
44+
> = {
45+
collection: C;
46+
slug: E;
47+
};
48+
export type ReferenceLiveEntry<C extends keyof LiveContentConfig['collections']> = {
49+
collection: C;
50+
id: string;
51+
};
52+
53+
/** @deprecated Use `getEntry` instead. */
54+
export function getEntryBySlug<
55+
C extends keyof ContentEntryMap,
56+
E extends ValidContentEntrySlug<C> | (string & {}),
57+
>(
58+
collection: C,
59+
// Note that this has to accept a regular string too, for SSR
60+
entrySlug: E,
61+
): E extends ValidContentEntrySlug<C>
62+
? Promise<CollectionEntry<C>>
63+
: Promise<CollectionEntry<C> | undefined>;
64+
65+
/** @deprecated Use `getEntry` instead. */
66+
export function getDataEntryById<C extends keyof DataEntryMap, E extends keyof DataEntryMap[C]>(
67+
collection: C,
68+
entryId: E,
69+
): Promise<CollectionEntry<C>>;
70+
71+
export function getCollection<C extends keyof AnyEntryMap, E extends CollectionEntry<C>>(
72+
collection: C,
73+
filter?: (entry: CollectionEntry<C>) => entry is E,
74+
): Promise<E[]>;
75+
export function getCollection<C extends keyof AnyEntryMap>(
76+
collection: C,
77+
filter?: (entry: CollectionEntry<C>) => unknown,
78+
): Promise<CollectionEntry<C>[]>;
79+
80+
export function getLiveCollection<C extends keyof LiveContentConfig['collections']>(
81+
collection: C,
82+
filter?: LiveLoaderCollectionFilterType<C>,
83+
): Promise<
84+
import('astro').LiveDataCollectionResult<LiveLoaderDataType<C>, LiveLoaderErrorType<C>>
85+
>;
86+
87+
export function getEntry<
88+
C extends keyof ContentEntryMap,
89+
E extends ValidContentEntrySlug<C> | (string & {}),
90+
>(
91+
entry: ReferenceContentEntry<C, E>,
92+
): E extends ValidContentEntrySlug<C>
93+
? Promise<CollectionEntry<C>>
94+
: Promise<CollectionEntry<C> | undefined>;
95+
export function getEntry<
96+
C extends keyof DataEntryMap,
97+
E extends keyof DataEntryMap[C] | (string & {}),
98+
>(
99+
entry: ReferenceDataEntry<C, E>,
100+
): E extends keyof DataEntryMap[C]
101+
? Promise<DataEntryMap[C][E]>
102+
: Promise<CollectionEntry<C> | undefined>;
103+
export function getEntry<
104+
C extends keyof ContentEntryMap,
105+
E extends ValidContentEntrySlug<C> | (string & {}),
106+
>(
107+
collection: C,
108+
slug: E,
109+
): E extends ValidContentEntrySlug<C>
110+
? Promise<CollectionEntry<C>>
111+
: Promise<CollectionEntry<C> | undefined>;
112+
export function getEntry<
113+
C extends keyof DataEntryMap,
114+
E extends keyof DataEntryMap[C] | (string & {}),
115+
>(
116+
collection: C,
117+
id: E,
118+
): E extends keyof DataEntryMap[C]
119+
? string extends keyof DataEntryMap[C]
120+
? Promise<DataEntryMap[C][E]> | undefined
121+
: Promise<DataEntryMap[C][E]>
122+
: Promise<CollectionEntry<C> | undefined>;
123+
export function getLiveEntry<C extends keyof LiveContentConfig['collections']>(
124+
collection: C,
125+
filter: string | LiveLoaderEntryFilterType<C>,
126+
): Promise<import('astro').LiveDataEntryResult<LiveLoaderDataType<C>, LiveLoaderErrorType<C>>>;
127+
128+
/** Resolve an array of entry references from the same collection */
129+
export function getEntries<C extends keyof ContentEntryMap>(
130+
entries: ReferenceContentEntry<C, ValidContentEntrySlug<C>>[],
131+
): Promise<CollectionEntry<C>[]>;
132+
export function getEntries<C extends keyof DataEntryMap>(
133+
entries: ReferenceDataEntry<C, keyof DataEntryMap[C]>[],
134+
): Promise<CollectionEntry<C>[]>;
135+
136+
export function render<C extends keyof AnyEntryMap>(
137+
entry: AnyEntryMap[C][string],
138+
): Promise<RenderResult>;
139+
140+
export function reference<C extends keyof AnyEntryMap>(
141+
collection: C,
142+
): import('astro/zod').ZodEffects<
143+
import('astro/zod').ZodString,
144+
C extends keyof ContentEntryMap
145+
? ReferenceContentEntry<C, ValidContentEntrySlug<C>>
146+
: ReferenceDataEntry<C, keyof DataEntryMap[C]>
147+
>;
148+
// Allow generic `string` to avoid excessive type errors in the config
149+
// if `dev` is not running to update as you edit.
150+
// Invalid collection names will be caught at build time.
151+
export function reference<C extends string>(
152+
collection: C,
153+
): import('astro/zod').ZodEffects<import('astro/zod').ZodString, never>;
154+
155+
type ReturnTypeOrOriginal<T> = T extends (...args: any[]) => infer R ? R : T;
156+
type InferEntrySchema<C extends keyof AnyEntryMap> = import('astro/zod').infer<
157+
ReturnTypeOrOriginal<Required<ContentConfig['collections'][C]>['schema']>
158+
>;
159+
160+
type ContentEntryMap = {
161+
162+
};
163+
164+
type DataEntryMap = {
165+
166+
};
167+
168+
type AnyEntryMap = ContentEntryMap & DataEntryMap;
169+
170+
type ExtractLoaderTypes<T> = T extends import('astro/loaders').LiveLoader<
171+
infer TData,
172+
infer TEntryFilter,
173+
infer TCollectionFilter,
174+
infer TError
175+
>
176+
? { data: TData; entryFilter: TEntryFilter; collectionFilter: TCollectionFilter; error: TError }
177+
: { data: never; entryFilter: never; collectionFilter: never; error: never };
178+
type ExtractDataType<T> = ExtractLoaderTypes<T>['data'];
179+
type ExtractEntryFilterType<T> = ExtractLoaderTypes<T>['entryFilter'];
180+
type ExtractCollectionFilterType<T> = ExtractLoaderTypes<T>['collectionFilter'];
181+
type ExtractErrorType<T> = ExtractLoaderTypes<T>['error'];
182+
183+
type LiveLoaderDataType<C extends keyof LiveContentConfig['collections']> =
184+
LiveContentConfig['collections'][C]['schema'] extends undefined
185+
? ExtractDataType<LiveContentConfig['collections'][C]['loader']>
186+
: import('astro/zod').infer<
187+
Exclude<LiveContentConfig['collections'][C]['schema'], undefined>
188+
>;
189+
type LiveLoaderEntryFilterType<C extends keyof LiveContentConfig['collections']> =
190+
ExtractEntryFilterType<LiveContentConfig['collections'][C]['loader']>;
191+
type LiveLoaderCollectionFilterType<C extends keyof LiveContentConfig['collections']> =
192+
ExtractCollectionFilterType<LiveContentConfig['collections'][C]['loader']>;
193+
type LiveLoaderErrorType<C extends keyof LiveContentConfig['collections']> = ExtractErrorType<
194+
LiveContentConfig['collections'][C]['loader']
195+
>;
196+
197+
export type ContentConfig = typeof import("../src/content.config.mjs");
198+
export type LiveContentConfig = never;
199+
}

.astro/data-store.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[["Map",1,2],"meta::meta",["Map",3,4,5,6],"astro-version","5.16.3","astro-config-digest","{\"root\":{},\"srcDir\":{},\"publicDir\":{},\"outDir\":{},\"cacheDir\":{},\"site\":\"https://softwarecrafters.barcelona\",\"compressHTML\":true,\"base\":\"/\",\"trailingSlash\":\"ignore\",\"output\":\"static\",\"scopedStyleStrategy\":\"attribute\",\"build\":{\"format\":\"file\",\"client\":{},\"server\":{},\"assets\":\"_astro\",\"serverEntry\":\"entry.mjs\",\"redirects\":true,\"inlineStylesheets\":\"auto\",\"concurrency\":1},\"server\":{\"open\":false,\"host\":false,\"port\":4321,\"streaming\":true,\"allowedHosts\":[]},\"redirects\":{},\"image\":{\"endpoint\":{\"route\":\"/_image\"},\"service\":{\"entrypoint\":\"astro/assets/services/sharp\",\"config\":{}},\"domains\":[],\"remotePatterns\":[],\"responsiveStyles\":false},\"devToolbar\":{\"enabled\":true},\"markdown\":{\"syntaxHighlight\":{\"type\":\"shiki\",\"excludeLangs\":[\"math\"]},\"shikiConfig\":{\"langs\":[],\"langAlias\":{},\"theme\":\"github-dark\",\"themes\":{},\"wrap\":false,\"transformers\":[]},\"remarkPlugins\":[],\"rehypePlugins\":[],\"remarkRehype\":{},\"gfm\":true,\"smartypants\":true},\"security\":{\"checkOrigin\":true,\"allowedDomains\":[]},\"env\":{\"schema\":{},\"validateSecrets\":false},\"experimental\":{\"clientPrerender\":false,\"contentIntellisense\":false,\"headingIdCompat\":false,\"preserveScriptOrder\":false,\"liveContentCollections\":false,\"csp\":false,\"staticImportMetaEnv\":false,\"chromeDevtoolsWorkspace\":false,\"failOnPrerenderConflict\":false,\"svgo\":false},\"legacy\":{\"collections\":false}}"]

.astro/settings.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"_variables": {
3+
"lastUpdateCheck": 1763714901243
4+
}
5+
}

.astro/types.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
/// <reference types="astro/client" />
2+
/// <reference path="content.d.ts" />

.github/workflows/deploy.yml

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# Sample workflow for building and deploying an Astro site to GitHub Pages
2+
#
3+
# To get started with Astro see: https://docs.astro.build/en/getting-started/
4+
#
5+
name: Deploy Astro site to Pages
6+
7+
on:
8+
# Runs on pushes targeting the default branch
9+
push:
10+
branches: ["master"]
11+
12+
# Allows you to run this workflow manually from the Actions tab
13+
workflow_dispatch:
14+
15+
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
16+
permissions:
17+
contents: read
18+
pages: write
19+
id-token: write
20+
21+
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
22+
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
23+
concurrency:
24+
group: "pages"
25+
cancel-in-progress: false
26+
27+
env:
28+
BUILD_PATH: "." # default value when not using subfolders
29+
# BUILD_PATH: subfolder
30+
31+
jobs:
32+
build:
33+
name: Build
34+
runs-on: ubuntu-latest
35+
steps:
36+
- name: Checkout
37+
uses: actions/checkout@v4
38+
- name: Detect package manager
39+
id: detect-package-manager
40+
run: |
41+
if [ -f "${{ github.workspace }}/yarn.lock" ]; then
42+
echo "manager=yarn" >> $GITHUB_OUTPUT
43+
echo "command=install" >> $GITHUB_OUTPUT
44+
echo "runner=yarn" >> $GITHUB_OUTPUT
45+
echo "lockfile=yarn.lock" >> $GITHUB_OUTPUT
46+
exit 0
47+
elif [ -f "${{ github.workspace }}/package.json" ]; then
48+
echo "manager=npm" >> $GITHUB_OUTPUT
49+
echo "command=ci" >> $GITHUB_OUTPUT
50+
echo "runner=npx --no-install" >> $GITHUB_OUTPUT
51+
echo "lockfile=package-lock.json" >> $GITHUB_OUTPUT
52+
exit 0
53+
else
54+
echo "Unable to determine package manager"
55+
exit 1
56+
fi
57+
- name: Setup Node
58+
uses: actions/setup-node@v4
59+
with:
60+
node-version: "24"
61+
cache: ${{ steps.detect-package-manager.outputs.manager }}
62+
cache-dependency-path: ${{ env.BUILD_PATH }}/${{ steps.detect-package-manager.outputs.lockfile }}
63+
- name: Setup Pages
64+
id: pages
65+
uses: actions/configure-pages@v5
66+
- name: Install dependencies
67+
run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }}
68+
working-directory: ${{ env.BUILD_PATH }}
69+
- name: Build with Astro
70+
run: |
71+
${{ steps.detect-package-manager.outputs.runner }} astro build \
72+
--site "${{ steps.pages.outputs.origin }}" \
73+
--base "${{ steps.pages.outputs.base_path }}"
74+
working-directory: ${{ env.BUILD_PATH }}
75+
- name: Upload artifact
76+
uses: actions/upload-pages-artifact@v3
77+
with:
78+
path: ${{ env.BUILD_PATH }}/dist
79+
80+
deploy:
81+
environment:
82+
name: github-pages
83+
url: ${{ steps.deployment.outputs.page_url }}
84+
needs: build
85+
runs-on: ubuntu-latest
86+
name: Deploy
87+
steps:
88+
- name: Deploy to GitHub Pages
89+
id: deployment
90+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
11
.*.swp
22

3-
.idea
3+
.idea
4+
5+
node_modules
6+
/dist
7+
8+
.DS_Store

README.md

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,55 @@
1-
# scbcn.github.io
1+
# Software Crafters Barcelona Website
2+
3+
Official website for the Software Crafters Barcelona community.
4+
5+
## Prerequisites
6+
7+
- Node.js version 24.0.0 or higher
8+
9+
## Getting Started
10+
11+
### Installation
12+
13+
Install the dependencies:
14+
15+
```bash
16+
npm install
17+
```
18+
19+
### Development
20+
21+
Run the development server:
22+
23+
```bash
24+
npm run dev
25+
```
26+
27+
The site will be available at `http://localhost:4321` (or another port if 4321 is in use).
28+
29+
### Building
30+
31+
Build the site for production:
32+
33+
```bash
34+
npm run build
35+
```
36+
37+
The built site will be output to the `./dist` directory.
38+
39+
### Testing the Build
40+
41+
To test the production build locally, you can serve the built site:
42+
43+
```bash
44+
npx serve ./dist
45+
```
46+
47+
Alternatively, use Astro's built-in preview command:
48+
49+
```bash
50+
npm run preview
51+
```
52+
53+
## Deployment
54+
55+
The site is automatically deployed to GitHub Pages when changes are pushed to the `master` branch via GitHub Actions.

0 commit comments

Comments
 (0)