content workflow / pipe

This commit is contained in:
lovebird 2025-03-13 19:49:29 +01:00
parent 8c9496a857
commit f66769175c
19 changed files with 588 additions and 4 deletions

4
.astro/content.d.ts vendored
View File

@ -188,9 +188,7 @@ declare module 'astro:content' {
}>;
"resources": Record<string, {
id: string;
render(): Render[".md"];
slug: string;
body: string;
body?: string;
collection: "resources";
data: InferEntrySchema<"resources">;
rendered?: RenderedContent;

File diff suppressed because one or more lines are too long

View File

@ -27,6 +27,7 @@ const infopages = defineCollection({
})
const resources = defineCollection({
loader: glob({ base: './src/content/resources', pattern: '*.{md,mdx}' }),
schema: z.object({
title: z.string(),
pubDate: z.date(),

View File

@ -0,0 +1,22 @@
---
---
## Migration
- json -> content/resources/directory/*.mdx
## Editing
- content/resources/directory/*.mdx + overlay
## Processing
- content/resources/directory/*.mdx + overlay ->
filters (grammar,spelling,bullshit, rewrite) ->
completions (resources ext/content) ->
outputs (json-ld/pdf/md)
## overlay
- products
- feed

Binary file not shown.

After

Width:  |  Height:  |  Size: 514 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 KiB

View File

@ -0,0 +1,300 @@
{
"id": "mIXA2UBI2weRIer7DMW0",
"total_views": 1,
"moderation": "draft",
"comments": [],
"_deleted": true,
"creatorCountry": "be",
"_createdBy": "fromwastetowind",
"previousSlugs": [
"3d-print-a-500w-windturbine-from-recycled-pet"
],
"_id": "mIXA2UBI2weRIer7DMW0",
"description": "This tutorial will teach you how to print the parts for a basic windturbine. \nA how-to for a more advanced windturbine with follow soon.",
"_modified": "2024-01-23T13:30:33.263Z",
"fileLink": "",
"cover_image": {
"size": 341861,
"updated": "2022-05-28T12:50:28.413Z",
"contentType": "image/png",
"timeCreated": "2022-05-28T12:50:28.413Z",
"fullPath": "uploads/howtos/mIXA2UBI2weRIer7DMW0/284410269_538285404469005_5504249321824877867_n-1810ab2b8cb.png",
"name": "284410269_538285404469005_5504249321824877867_n-1810ab2b8cb.png",
"downloadUrl": "https://firebasestorage.googleapis.com/v0/b/onearmyworld.appspot.com/o/uploads%2Fhowtos%2FmIXA2UBI2weRIer7DMW0%2F284410269_538285404469005_5504249321824877867_n-1810ab2b8cb.png?alt=media&token=7d4b79f8-038b-4fd9-8c70-19a5d3aacef3",
"type": "image/png"
},
"tags": [],
"time": "1-2 weeks",
"files": [],
"_contentModifiedTimestamp": "2022-05-28T12:50:33.564Z",
"mentions": [],
"title": "3D-print a 500W windturbine from recycled PET",
"difficulty_level": "Hard",
"steps": [
{
"text": "Todo",
"_animationKey": "unique1",
"title": "Acquire all parts",
"images": [
{
"updated": "2022-05-28T12:46:01.580Z",
"size": 46139,
"type": "image/jpeg",
"fullPath": "uploads/howtos/nPMq2miDDDIP6OflIffB/permanent-magnet-generator-240v08331602850-1810ab333db.jpg",
"contentType": "image/jpeg",
"downloadUrl": "https://firebasestorage.googleapis.com/v0/b/onearmyworld.appspot.com/o/uploads%2Fhowtos%2FnPMq2miDDDIP6OflIffB%2Fpermanent-magnet-generator-240v08331602850-1810ab333db.jpg?alt=media&token=307d6597-c6f8-42b8-a06f-1e582afb82dd",
"timeCreated": "2022-05-28T12:46:01.580Z",
"name": "permanent-magnet-generator-240v08331602850-1810ab333db.jpg"
}
]
},
{
"text": "We're using SuperSlicer because it has the best thin-edge control, which is important for the leading edge of the blade. It also allows to use multiple infills in one object.\n\n- 5mm wall thickness\n- spar of 1cm: 100%infill\n- above the spar: 5% gyroid infill\n- under the spar: 18% gyroid infill\n- (todo:upload gcode and SuperSlicer 3mf project)",
"title": "Set-up your slicing software",
"_animationKey": "unique2",
"images": [
{
"contentType": "image/png",
"type": "image/png",
"size": 50773,
"downloadUrl": "https://firebasestorage.googleapis.com/v0/b/onearmyworld.appspot.com/o/uploads%2Fhowtos%2FnPMq2miDDDIP6OflIffB%2Fsuperslicer1-1810ab38891.png?alt=media&token=cc197dbc-933e-4e9c-89d4-91b6161c9c2c",
"timeCreated": "2022-05-28T12:46:03.207Z",
"fullPath": "uploads/howtos/nPMq2miDDDIP6OflIffB/superslicer1-1810ab38891.png",
"name": "superslicer1-1810ab38891.png",
"updated": "2022-05-28T12:46:03.207Z"
},
{
"updated": "2022-05-28T12:47:08.712Z",
"downloadUrl": "https://firebasestorage.googleapis.com/v0/b/onearmyworld.appspot.com/o/uploads%2Fhowtos%2FkXwyUnDicMvmHhGgCAQJ%2Fsuperslicer2-1810ab3e44d.png?alt=media&token=bbb8e7a8-4440-4821-b2a4-1570ab219379",
"fullPath": "uploads/howtos/kXwyUnDicMvmHhGgCAQJ/superslicer2-1810ab3e44d.png",
"type": "image/png",
"timeCreated": "2022-05-28T12:47:08.712Z",
"contentType": "image/png",
"size": 142899,
"name": "superslicer2-1810ab3e44d.png"
}
]
},
{
"_animationKey": "unique1usf9a",
"images": [
{
"name": "284170163_326718269616463_2564227729431909493_n-1810ab5b6aa.jpg",
"updated": "2022-05-28T12:50:31.292Z",
"downloadUrl": "https://firebasestorage.googleapis.com/v0/b/onearmyworld.appspot.com/o/uploads%2Fhowtos%2FmIXA2UBI2weRIer7DMW0%2F284170163_326718269616463_2564227729431909493_n-1810ab5b6aa.jpg?alt=media&token=febdf092-6311-4e6d-88c5-f6d6dfe5676c",
"contentType": "image/jpeg",
"type": "image/jpeg",
"fullPath": "uploads/howtos/mIXA2UBI2weRIer7DMW0/284170163_326718269616463_2564227729431909493_n-1810ab5b6aa.jpg",
"size": 255407,
"timeCreated": "2022-05-28T12:50:31.292Z"
}
],
"text": "Blades and hub will look like this.",
"title": "Print!"
},
{
"_animationKey": "unique2dr2u",
"title": "Assemble blades and hub",
"text": "Use 10mm bolts",
"images": [
{
"updated": "2022-05-28T12:50:34.280Z",
"type": "image/png",
"size": 526515,
"downloadUrl": "https://firebasestorage.googleapis.com/v0/b/onearmyworld.appspot.com/o/uploads%2Fhowtos%2FmIXA2UBI2weRIer7DMW0%2F283666920_541139140955404_515806269962593427_n%20copy-1810ab67279.png?alt=media&token=2dc3a3c7-3775-4da6-9db6-64a820c73102",
"contentType": "image/png",
"timeCreated": "2022-05-28T12:50:34.280Z",
"fullPath": "uploads/howtos/mIXA2UBI2weRIer7DMW0/283666920_541139140955404_515806269962593427_n copy-1810ab67279.png",
"name": "283666920_541139140955404_515806269962593427_n copy-1810ab67279.png"
}
]
},
{
"videoUrl": "https://youtu.be/lA4Sl1riOsA",
"_animationKey": "uniquen2y7yf",
"images": [],
"title": "Balance the propeller",
"text": "Make sure that each blade has the same weight to prevent vibrations"
}
],
"_created": "2022-05-28T12:50:33.564Z",
"slug": "3d-print-a-500w-windturbine-from-recycled-pet",
"user": {
"_modified": "2024-01-25T12:40:40.422Z",
"type": "machine-builder",
"moderation": "accepted",
"_id": "fromwastetowind",
"verified": false,
"_deleted": false,
"_created": "2024-01-25T12:40:40.422Z",
"location": {
"lng": "4.4081929",
"lat": "51.2340787"
},
"geo": {
"latitude": 51.2340787,
"lookupSource": "coordinates",
"longitude": 4.4081929,
"localityLanguageRequested": "en",
"continent": "Europe",
"continentCode": "EU",
"countryName": "Belgium",
"countryCode": "BE",
"principalSubdivision": "Flanders",
"principalSubdivisionCode": "BE-VLG",
"city": "Antwerpen",
"locality": "Antwerp",
"postcode": "2000",
"plusCode": "9F366CM5+J7",
"localityInfo": {
"administrative": [
{
"name": "Belgium",
"description": "constitutional monarchy in Western Europe",
"isoName": "Belgium",
"order": 5,
"adminLevel": 2,
"isoCode": "BE",
"wikidataId": "Q31",
"geonameId": 2802361
},
{
"name": "Flanders",
"description": "federal region of Belgium",
"isoName": "Flanders",
"order": 7,
"adminLevel": 4,
"isoCode": "BE-VLG",
"wikidataId": "Q9337",
"geonameId": 3337388
},
{
"name": "Provincie Antwerpen",
"description": "province in Flanders, Belgium",
"isoName": "Provincie Antwerpen",
"order": 9,
"adminLevel": 6,
"isoCode": "BE-VAN",
"wikidataId": "Q1116",
"geonameId": 2803136
},
{
"name": "Arrondissement of Antwerp",
"description": "1 of 43 administrative arrondissements of Belgium",
"order": 10,
"adminLevel": 7,
"wikidataId": "Q90895",
"geonameId": 2803137
},
{
"name": "Antwerpen",
"description": "municipality in the province of Antwerp, Belgium",
"order": 11,
"adminLevel": 8,
"wikidataId": "Q12892",
"geonameId": 2803138
},
{
"name": "Antwerp",
"order": 12,
"adminLevel": 9
}
],
"informative": [
{
"name": "Europe",
"description": "continent",
"isoName": "Europe",
"order": 1,
"isoCode": "EU",
"wikidataId": "Q46",
"geonameId": 6255148
},
{
"name": "North European Plain",
"description": "geomorphological region in Europe iceland",
"order": 2,
"wikidataId": "Q560549"
},
{
"name": "Benelux",
"description": "politico-economic union between Belgium, the Netherlands and Luxembourg",
"order": 3,
"wikidataId": "Q13116"
},
{
"name": "Europe/Brussels",
"description": "time zone",
"order": 4
},
{
"name": "Dutch Language Union",
"description": "Dutch language regulator",
"order": 6,
"wikidataId": "Q152299"
},
{
"name": "Flemish Community",
"description": "one of the three official communities in Belgium",
"order": 8,
"wikidataId": "Q9331"
},
{
"name": "2000",
"description": "postal code",
"order": 13
}
]
}
},
"data": {
"urls": [
{
"name": "Website",
"url": "https://www.fromwastetowind.com"
},
{
"name": "Social media",
"url": "https://www.linkedin.com/company/fromwastetowind/"
},
{
"name": "Instagram",
"url": "https://www.instagram.com/fromwastetowind/"
},
{
"name": "Facebook",
"url": "https://www.facebook.com/fromwastetowind"
},
{
"name": "Bazar",
"url": "https://bazar.preciousplastic.com/vendor.php?dispatch=companies.update&company_id=879"
},
{
"name": "Email",
"url": "mailto:bram@fromwastetowind.com"
},
{
"name": "sponsor the work",
"url": "https://www.patreon.com/one_army"
}
],
"description": "From Waste To Wind is a start-up that 3D-prints windturbines from plastic waste and makes small windturbines accessible. All windturbines are fully open-source and can be built with easy to find parts. ",
"services": [
{
"welding": false,
"assembling": true,
"machining": false,
"electronics": true,
"molds": false
}
],
"title": "fromwastetowind",
"images": []
},
"detail": {
"services": [],
"urls": []
}
},
"images": []
}

View File

@ -0,0 +1,219 @@
id: "mIXA2UBI2weRIer7DMW0"
total_views: 1
moderation: "draft"
comments: []
_deleted: true
creatorCountry: "be"
_createdBy: "fromwastetowind"
previousSlugs:
- "3d-print-a-500w-windturbine-from-recycled-pet"
_id: "mIXA2UBI2weRIer7DMW0"
description: "This tutorial will teach you how to print the parts for a basic windturbine. \nA how-to for a more advanced windturbine with follow soon."
_modified: "2024-01-23T13:30:33.263Z"
fileLink: ""
cover_image:
size: 341861
updated: "2022-05-28T12:50:28.413Z"
contentType: "image/png"
timeCreated: "2022-05-28T12:50:28.413Z"
fullPath: "uploads/howtos/mIXA2UBI2weRIer7DMW0/284410269_538285404469005_5504249321824877867_n-1810ab2b8cb.png"
name: "284410269_538285404469005_5504249321824877867_n-1810ab2b8cb.png"
downloadUrl: "https://firebasestorage.googleapis.com/v0/b/onearmyworld.appspot.com/o/uploads%2Fhowtos%2FmIXA2UBI2weRIer7DMW0%2F284410269_538285404469005_5504249321824877867_n-1810ab2b8cb.png?alt=media&token=7d4b79f8-038b-4fd9-8c70-19a5d3aacef3"
type: "image/png"
tags: []
time: "1-2 weeks"
files: []
_contentModifiedTimestamp: "2022-05-28T12:50:33.564Z"
mentions: []
title: "3D-print a 500W windturbine from recycled PET"
difficulty_level: "Hard"
steps:
- text: "Todo"
_animationKey: "unique1"
title: "Acquire all parts"
images:
- updated: "2022-05-28T12:46:01.580Z"
size: 46139
type: "image/jpeg"
fullPath: "uploads/howtos/nPMq2miDDDIP6OflIffB/permanent-magnet-generator-240v08331602850-1810ab333db.jpg"
contentType: "image/jpeg"
downloadUrl: "https://firebasestorage.googleapis.com/v0/b/onearmyworld.appspot.com/o/uploads%2Fhowtos%2FnPMq2miDDDIP6OflIffB%2Fpermanent-magnet-generator-240v08331602850-1810ab333db.jpg?alt=media&token=307d6597-c6f8-42b8-a06f-1e582afb82dd"
timeCreated: "2022-05-28T12:46:01.580Z"
name: "permanent-magnet-generator-240v08331602850-1810ab333db.jpg"
- text: "We're using SuperSlicer because it has the best thin-edge control, which is important for the leading edge of the blade. It also allows to use multiple infills in one object.\n\n- 5mm wall thickness\n- spar of 1cm: 100%infill\n- above the spar: 5% gyroid infill\n- under the spar: 18% gyroid infill\n- (todo:upload gcode and SuperSlicer 3mf project)"
title: "Set-up your slicing software"
_animationKey: "unique2"
images:
- contentType: "image/png"
type: "image/png"
size: 50773
downloadUrl: "https://firebasestorage.googleapis.com/v0/b/onearmyworld.appspot.com/o/uploads%2Fhowtos%2FnPMq2miDDDIP6OflIffB%2Fsuperslicer1-1810ab38891.png?alt=media&token=cc197dbc-933e-4e9c-89d4-91b6161c9c2c"
timeCreated: "2022-05-28T12:46:03.207Z"
fullPath: "uploads/howtos/nPMq2miDDDIP6OflIffB/superslicer1-1810ab38891.png"
name: "superslicer1-1810ab38891.png"
updated: "2022-05-28T12:46:03.207Z"
- updated: "2022-05-28T12:47:08.712Z"
downloadUrl: "https://firebasestorage.googleapis.com/v0/b/onearmyworld.appspot.com/o/uploads%2Fhowtos%2FkXwyUnDicMvmHhGgCAQJ%2Fsuperslicer2-1810ab3e44d.png?alt=media&token=bbb8e7a8-4440-4821-b2a4-1570ab219379"
fullPath: "uploads/howtos/kXwyUnDicMvmHhGgCAQJ/superslicer2-1810ab3e44d.png"
type: "image/png"
timeCreated: "2022-05-28T12:47:08.712Z"
contentType: "image/png"
size: 142899
name: "superslicer2-1810ab3e44d.png"
- _animationKey: "unique1usf9a"
images:
- name: "284170163_326718269616463_2564227729431909493_n-1810ab5b6aa.jpg"
updated: "2022-05-28T12:50:31.292Z"
downloadUrl: "https://firebasestorage.googleapis.com/v0/b/onearmyworld.appspot.com/o/uploads%2Fhowtos%2FmIXA2UBI2weRIer7DMW0%2F284170163_326718269616463_2564227729431909493_n-1810ab5b6aa.jpg?alt=media&token=febdf092-6311-4e6d-88c5-f6d6dfe5676c"
contentType: "image/jpeg"
type: "image/jpeg"
fullPath: "uploads/howtos/mIXA2UBI2weRIer7DMW0/284170163_326718269616463_2564227729431909493_n-1810ab5b6aa.jpg"
size: 255407
timeCreated: "2022-05-28T12:50:31.292Z"
text: "Blades and hub will look like this."
title: "Print!"
- _animationKey: "unique2dr2u"
title: "Assemble blades and hub"
text: "Use 10mm bolts"
images:
- updated: "2022-05-28T12:50:34.280Z"
type: "image/png"
size: 526515
downloadUrl: "https://firebasestorage.googleapis.com/v0/b/onearmyworld.appspot.com/o/uploads%2Fhowtos%2FmIXA2UBI2weRIer7DMW0%2F283666920_541139140955404_515806269962593427_n%20copy-1810ab67279.png?alt=media&token=2dc3a3c7-3775-4da6-9db6-64a820c73102"
contentType: "image/png"
timeCreated: "2022-05-28T12:50:34.280Z"
fullPath: "uploads/howtos/mIXA2UBI2weRIer7DMW0/283666920_541139140955404_515806269962593427_n copy-1810ab67279.png"
name: "283666920_541139140955404_515806269962593427_n copy-1810ab67279.png"
- videoUrl: "https://youtu.be/lA4Sl1riOsA"
_animationKey: "uniquen2y7yf"
images: []
title: "Balance the propeller"
text: "Make sure that each blade has the same weight to prevent vibrations"
_created: "2022-05-28T12:50:33.564Z"
slug: "3d-print-a-500w-windturbine-from-recycled-pet"
user:
_modified: "2024-01-25T12:40:40.422Z"
type: "machine-builder"
moderation: "accepted"
_id: "fromwastetowind"
verified: false
_deleted: false
_created: "2024-01-25T12:40:40.422Z"
location:
lng: "4.4081929"
lat: "51.2340787"
geo:
latitude: 51.2340787
lookupSource: "coordinates"
longitude: 4.4081929
localityLanguageRequested: "en"
continent: "Europe"
continentCode: "EU"
countryName: "Belgium"
countryCode: "BE"
principalSubdivision: "Flanders"
principalSubdivisionCode: "BE-VLG"
city: "Antwerpen"
locality: "Antwerp"
postcode: "2000"
plusCode: "9F366CM5+J7"
localityInfo:
administrative:
- name: "Belgium"
description: "constitutional monarchy in Western Europe"
isoName: "Belgium"
order: 5
adminLevel: 2
isoCode: "BE"
wikidataId: "Q31"
geonameId: 2802361
- name: "Flanders"
description: "federal region of Belgium"
isoName: "Flanders"
order: 7
adminLevel: 4
isoCode: "BE-VLG"
wikidataId: "Q9337"
geonameId: 3337388
- name: "Provincie Antwerpen"
description: "province in Flanders, Belgium"
isoName: "Provincie Antwerpen"
order: 9
adminLevel: 6
isoCode: "BE-VAN"
wikidataId: "Q1116"
geonameId: 2803136
- name: "Arrondissement of Antwerp"
description: "1 of 43 administrative arrondissements of Belgium"
order: 10
adminLevel: 7
wikidataId: "Q90895"
geonameId: 2803137
- name: "Antwerpen"
description: "municipality in the province of Antwerp, Belgium"
order: 11
adminLevel: 8
wikidataId: "Q12892"
geonameId: 2803138
- name: "Antwerp"
order: 12
adminLevel: 9
informative:
- name: "Europe"
description: "continent"
isoName: "Europe"
order: 1
isoCode: "EU"
wikidataId: "Q46"
geonameId: 6255148
- name: "North European Plain"
description: "geomorphological region in Europe iceland"
order: 2
wikidataId: "Q560549"
- name: "Benelux"
description: "politico-economic union between Belgium, the Netherlands and Luxembourg"
order: 3
wikidataId: "Q13116"
- name: "Europe/Brussels"
description: "time zone"
order: 4
- name: "Dutch Language Union"
description: "Dutch language regulator"
order: 6
wikidataId: "Q152299"
- name: "Flemish Community"
description: "one of the three official communities in Belgium"
order: 8
wikidataId: "Q9331"
- name: "2000"
description: "postal code"
order: 13
data:
urls:
- name: "Website"
url: "https://www.fromwastetowind.com"
- name: "Social media"
url: "https://www.linkedin.com/company/fromwastetowind/"
- name: "Instagram"
url: "https://www.instagram.com/fromwastetowind/"
- name: "Facebook"
url: "https://www.facebook.com/fromwastetowind"
- name: "Bazar"
url: "https://bazar.preciousplastic.com/vendor.php?dispatch=companies.update&company_id=879"
- name: "Email"
url: "mailto:bram@fromwastetowind.com"
- name: "sponsor the work"
url: "https://www.patreon.com/one_army"
description: "From Waste To Wind is a start-up that 3D-prints windturbines from plastic waste and makes small windturbines accessible. All windturbines are fully open-source and can be built with easy to find parts. "
services:
- welding: false
assembling: true
machining: false
electronics: true
molds: false
title: "fromwastetowind"
images: []
detail:
services: []
urls: []
images: []

View File

@ -0,0 +1,5 @@
### 3D-print a 500W windturbine from recycled PET
This tutorial will teach you how to print the parts for a basic windturbine.
A how-to for a more advanced windturbine with follow soon.

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

View File

@ -0,0 +1,3 @@
### Acquire all parts
Todo

View File

@ -0,0 +1,9 @@
### Set-up your slicing software
We're using SuperSlicer because it has the best thin-edge control, which is important for the leading edge of the blade. It also allows to use multiple infills in one object.
- 5mm wall thickness
- spar of 1cm: 100%infill
- above the spar: 5% gyroid infill
- under the spar: 18% gyroid infill
- (todo:upload gcode and SuperSlicer 3mf project)

View File

@ -0,0 +1,3 @@
### Print!
Blades and hub will look like this.

View File

@ -0,0 +1,3 @@
### Assemble blades and hub
Use 10mm bolts

View File

@ -0,0 +1,3 @@
### Balance the propeller
Make sure that each blade has the same weight to prevent vibrations

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

View File

@ -0,0 +1,18 @@
---
---
## Migration
- json -> content/resources/howtos/*.mdx
## Editing
- content/resources/howtos/*.mdx + overlay
## Processing
- content/resources/howtos/*.mdx + overlay ->
filters (grammar,spelling,bullshit, rewrite) ->
completions (resources ext/content) ->
outputs (json-ld/pdf/md)