polymech latest | howtos

This commit is contained in:
babayaga 2025-08-19 20:36:47 +02:00
parent dd6de61ad2
commit d9acb49f47
9 changed files with 156 additions and 67 deletions

View File

@ -23,7 +23,7 @@
"format": "unix-time"
}
],
"default": "2025-08-19T17:45:19.648Z"
"default": "2025-08-19T18:25:54.314Z"
},
"description": {
"type": "string",

File diff suppressed because one or more lines are too long

View File

@ -35,16 +35,6 @@
"isValid": false,
"timestamp": 1743247555244
},
"https://www.youtube.com/watch?v=IoSn84Axao8": {
"isValid": true,
"timestamp": 1743247556704,
"meta": {
"title": "AEE, THE ATACAMA: PLASTIC FANTASTIC",
"image": "https://i.ytimg.com/vi/IoSn84Axao8/maxresdefault.jpg",
"favicon": "https://www.youtube.com/s/desktop/247b1e86/img/logos/favicon_32x32.png",
"siteName": "YouTube"
}
},
"https://youtu.be/6Ae6oDKhqiE": {
"isValid": true,
"timestamp": 1743247557935,
@ -309,10 +299,6 @@
"favicon": "https://static.cdninstagram.com/rsrc.php/v4/yI/r/VsNE-OHk_8a.png"
}
},
"tinyurl.com/flipflopi-material-analysis": {
"isValid": false,
"timestamp": 1743247830565
},
"https://www.patreon.com/theflipflopi": {
"isValid": true,
"timestamp": 1743247832386,
@ -5515,10 +5501,6 @@
"favicon": "https://patents.google.com/favicon.ico"
}
},
"www.bunnings.com.au/homelite-2200w-5t-electric-log-splitter_p0044725": {
"isValid": false,
"timestamp": 1743250814952
},
"https://librecad.org/": {
"isValid": true,
"timestamp": 1743251069652,
@ -10522,26 +10504,164 @@
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://www.youtube.com/watch?v=4LrrFz802To": {
"isValid": false,
"timestamp": 1755625520051
"timestamp": 1755627954833
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://your-shop-link.com": {
"isValid": false,
"timestamp": 1755625520170
"timestamp": 1755627954959
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://linktr.ee/plastmakers": {
"isValid": false,
"timestamp": 1755625520196
"timestamp": 1755627954986
},
"%0A%0ALaser-Cut%20Parts%20for%20Pressing%20Plates:%0A%5BPressing%20Plate%20Parts%5D(%0A%0AFor%20updates%20and%20tips%20on%20compression%20molding,%20visit:%0A%0A-%20~~%5BYouTube%20and%20Instagram%20Resources%5D(%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://linktr.ee/plastmakers": {
"isValid": false,
"timestamp": 1755625520208
"timestamp": 1755627954998
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://www.mcmaster.com/91555A101/": {
"isValid": false,
"timestamp": 1755625520279
"timestamp": 1755627955080
},
"%20For%20inquiries,%20please%20contact%20us%20at%20preciousplasticpasadena@gmail.com.%0A%0AI've%20been%20using%20an%20injection%20machine%20with%20a%20carjack%20due%20to%20the%20mold's%20width.%20The%20rail%20mold%20requires%20approximately%2080%20grams%20(2.82%20ounces": {
"isValid": false,
"timestamp": 1755625520266
"timestamp": 1755627955058
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://youtu.be/dkm_gXxX2pk": {
"isValid": false,
"timestamp": 1755627994991
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://youtu.be/TNG2f_hKc_A": {
"isValid": false,
"timestamp": 1755628021749
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://www.dropbox.com/sh/bvus8maneewhxhk/AACpXCwufQSTb2FyYe8HFChFa?dl=0": {
"isValid": false,
"timestamp": 1755628032964
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://www.plastic.org.au/pages/case-study-bedford-park": {
"isValid": false,
"timestamp": 1755628067961
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://www.youtube.com/watch?time_continue=163&v=95aPYlXShTY&feature=emb_logo": {
"isValid": false,
"timestamp": 1755628107194
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://youtu.be/IcmKFDxsUgA": {
"isValid": false,
"timestamp": 1755628185756
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://www.qitech.de/en/industries": {
"isValid": false,
"timestamp": 1755628185764
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://www.qitech.de/en/ind/academy-area/filament-extruder-comparision": {
"isValid": false,
"timestamp": 1755628185771
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://www.instagram.com/sotop_recycling/": {
"isValid": false,
"timestamp": 1755628267850
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://www.autodesk.com/products/fusion-360/education": {
"isValid": false,
"timestamp": 1755628267836
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://www.youtube.com/watch?v=1MmjBLYMNWY": {
"isValid": false,
"timestamp": 1755628267822
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://www.youtube.com/watch?v=_hgmwhde1So": {
"isValid": false,
"timestamp": 1755628267829
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://www.xometry.com": {
"isValid": false,
"timestamp": 1755628267843
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://grabcad.com/library": {
"isValid": false,
"timestamp": 1755628267814
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22http://www.trs.cr": {
"isValid": false,
"timestamp": 1755628321283
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://www.instagram.com/p/CbCgXJClI3f/": {
"isValid": false,
"timestamp": 1755628373452
},
"tinyurl.com/flipflopi-material-analysis": {
"isValid": false,
"timestamp": 1755628395213
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://www.plasticatbay.org/2020/03/29/plasticbay-faceshield-design": {
"isValid": false,
"timestamp": 1755628408832
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22http://tiny.cc/679fiz": {
"isValid": false,
"timestamp": 1755628419549
},
"www.bunnings.com.au/homelite-2200w-5t-electric-log-splitter_p0044725": {
"isValid": false,
"timestamp": 1755628430533
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://robbbb.github.io/VectorRuler/": {
"isValid": false,
"timestamp": 1755628451491
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://www.darigovresearch.com/donate": {
"isValid": false,
"timestamp": 1755628451499
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://www.patreon.com/darigovresearch": {
"isValid": false,
"timestamp": 1755628451507
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://www.darigovresearch.com/": {
"isValid": false,
"timestamp": 1755628451514
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://www.youtube.com/channel/UCb34hWA6u2Lif92aljhV4HA": {
"isValid": false,
"timestamp": 1755628451521
},
"https://www.youtube.com/watch?v=IoSn84Axao8": {
"isValid": true,
"timestamp": 1755628516536,
"meta": {
"title": "AEE, THE ATACAMA: PLASTIC FANTASTIC",
"image": "https://i.ytimg.com/vi/IoSn84Axao8/maxresdefault.jpg",
"favicon": "https://www.youtube.com/s/desktop/00d073cd/img/logos/favicon_32x32.png",
"siteName": "YouTube"
}
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://www.instagram.com/reel/CrwQ3O9paN-/": {
"isValid": false,
"timestamp": 1755628531146
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://community.how-to?tags=JVpo3tdEqbk8G787hAZH": {
"isValid": false,
"timestamp": 1755628551361
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://www.youtube.com/watch?v=jWbkIa0ncIU": {
"isValid": false,
"timestamp": 1755628551370
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://drive.google.com/drive/folders/1Mwp2PZPxX7lRY0rVgQ_F8svFhY6AAQRr?usp=sharing": {
"isValid": false,
"timestamp": 1755628590523
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://bit.ly/3iKR4e6": {
"isValid": false,
"timestamp": 1755628596621
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://bit.ly/33FxUSP": {
"isValid": false,
"timestamp": 1755628596629
},
"%3Ca%20class=%22text-orange-600%20underline%22%20href=%22https://www.dropbox.com/sh/xlts122wcb905q6/AABRgMZTki8gH1NqQ5SvOS-Ia?dl=0": {
"isValid": false,
"timestamp": 1755628607796
}
}

View File

@ -3,7 +3,7 @@
"messages": [
{
"role": "user",
"content": "Return a list of max. 10 keywords that can be used for SEO purposes, separated by commas (dont comment, just the list) : \n\nText to process:\n### Creation of Panels from Recycled Materials\n\nThis guide covers the production of panels using recycled polypropylene and fishing nets retrieved from the Spanish coast.\n\nThis project is developed in collaboration with Vertidos Cero Association and AIMPLAS.\n\n\nUser Location: Gandia, Spain\n\nMares Circulares, initiated in 2018, aims to clean Spain and Portugal's coasts, protected areas, and seabeds. Approximately 5,200 kilograms (11,464 pounds) of debris collected by volunteer fishermen were processed. The non-PET plastic was sent to the Instituto Tecnológico de Plástico (AIMPLAS) for conversion into usable materials.\n\nThe processed marine litter and fishing nets arrive at our workshop clean and crushed, ready for use in the heat press.\n\nWe mix these with the base material, polypropylene, according to the desired texture, color, or thickness.\n\nBefore placing the plastic in the sheet press, we use an industrial dryer to remove moisture.\n\nOnce the material is dry and mixed, it is ready for the sheet press.\n\nWe repurposed a carpentry press, enhancing it with a heating and automation system.\n\nThis sheet press can produce boards measuring 86.6 inches by 35.4 inches (220 cm x 90 cm) with a thickness range of 0.4 inches to 1.2 inches (1 cm to 3 cm).\n\nThe machine operates at an average temperature of 356°F (180°C) to melt the plastic.\n\nAfter processing plastic parts, excess material on the edges must be removed.\n\nWhen removing the board from the sheet press, ensure a large storage space to avoid deformation.\n\nThese boards can be used to manufacture a wide range of products, including decorative items and furniture."
"content": "use a formal tone\nspell & grammar fix the text,\nremove emojis\nremove personal preferences or biases\nshorten text if possible but preserve personality\nremove references to preciousplastic, bazar and Discord\nremove any brain/green washing, eg: sustainable, circular, recycling ... inflated prospects\nRewrite the following text to remove any inflated or empty language, sugar-coated filler, and needless repetition. The result should be concise, direct, and preserve only the essential ideas.\nContext: howto tutorials, for makers\nConvert units, from metric to imperial and vice versa (in braces)\ndont comment just return as Markdown\n\nText to process:\nMaking clock is not difficult and you are able to recycle about 300g per clock in less than 2 hours. With creative design can be clock nice present for your friends or family. These hand made products can be done with electric oven, mini press and a simple compression mould. Clock diameter is 30 cm with thickness of 5mm. Material cost is about 6 EUR/ clock."
},
{
"role": "user",

View File

@ -38,6 +38,7 @@ const LLMConfigSchema = z.object({
defaults: z.record(z.array(z.string())).optional()
});
type LLMConfig = z.infer<typeof LLMConfigSchema>;
export const enum TemplateContext {
COMMONS = 'commons',
HOWTO = 'howto',

View File

@ -78,7 +78,7 @@ const howtosByCategory = group_by_cat(allHowtoItems);
const categories = Object.keys(howtosByCategory).sort();
// Create organized page-level navigation for categories
const organizedCategories = [];
const organizedCategories: any[] = [];
// Separate and organize categories
const uncategorizedItems = howtosByCategory['Uncategorized'] || howtosByCategory['uncategorized'] || [];
@ -149,31 +149,6 @@ organizedCategories.unshift({
const pageNavigation = organizedCategories;
// Debug: Log the sidebar structure
console.log('=== SIDEBAR DEBUG ===');
console.log('Current howto slug:', howto.slug);
console.log('Current howto category:', howto.category?.label);
console.log('Categories found:', categories);
console.log('Categorized items:', categorizedItems);
console.log('Page navigation structure:', JSON.stringify(pageNavigation, null, 2));
// Test: Simple structure to verify sidebar nesting works
const testNavigation = [
{
label: 'Test Categories',
collapsed: false,
items: [
{
label: 'Test Category 1',
collapsed: false,
items: [
{ label: 'Test Item 1', href: '/test1', isCurrent: false },
{ label: 'Test Item 2', href: '/test2', isCurrent: false }
]
}
]
}
];
// Function to extract headings from markdown content
const extractHeadingsFromMarkdown = (markdown: string): MarkdownHeading[] => {

View File

@ -17,6 +17,6 @@ const content = await Astro.slots.render('default')
const translatedText = await translate(content, I18N_SOURCE_LANGUAGE, language, rest)
---
<div data-widget="polymech.i18n" class={clazz}>
<p data-widget="polymech.i18n" class={clazz}>
{translatedText}
</div>
</p>

View File

@ -27,7 +27,7 @@ export const I18N_ASSET_PATH = "${SRC_DIR}/${SRC_NAME}-${DST_LANG}${SRC_EXT}"
export const HOWTO_GLOB = '**/config.json'
export const FILES_WEB = 'https://files.polymech.io/files/machines/howtos/'
export const HOWTO_EDIT_ROOT = 'https://git.polymech.io/osr-plastic/osr-machines/src/branch/master/howtos'
export const HOWTO_FILTER_LLM = true
export const HOWTO_FILTER_LLM = false
export const HOWTO_ANNOTATIONS = false
export const HOWTO_ANNOTATIONS_CACHE = false
export const HOWTO_COMPLETE_RESOURCES = false
@ -37,7 +37,7 @@ export const HOWTO_ADD_REFERENCES = false
export const HOWTO_COMPLETE_SKILLS = false
export const HOWTO_LOCAL_RESOURCES = false
export const HOWTO_SEO_LLM = false
export const HOWTO_MAX_ITEMS = 10
export const HOWTO_MAX_ITEMS = 100
export const HOWTO_MIGRATION = () => path.resolve(resolve("./data/last.json"))
export const HOWTO_ROOT_INTERN = () => path.resolve(resolve("./public/resources/howtos"))

View File

@ -20,7 +20,7 @@ const sidebarConfig = getSidebarConfig();
const categories = Object.keys(groups).sort();
// Create organized page-level navigation for categories
const organizedCategories = [];
const organizedCategories: any[] = [];
// Separate and organize categories
const uncategorizedItems = groups['Uncategorized'] || groups['uncategorized'] || [];
@ -91,11 +91,6 @@ organizedCategories.unshift({
const pageNavigation = organizedCategories;
// Debug: Log the sidebar structure
console.log('=== INDEX SIDEBAR DEBUG ===');
console.log('Categories found:', categories);
console.log('Groups:', Object.keys(groups));
console.log('Page navigation structure:', JSON.stringify(pageNavigation, null, 2));
export async function getStaticPaths() {
return LANGUAGES.map((lang) => ({
@ -131,7 +126,7 @@ export async function getStaticPaths() {
<Translate>How-To Guides</Translate>
</h1>
<p class="text-lg text-gray-600 mb-6">
<Translate>{items.length} guide{items.length !== 1 ? 's' : ''} available across {categories.length} categories</Translate>
<Translate>{all.length} guide{all.length !== 1 ? 's' : ''} available across {categories.length} categories</Translate>
</p>
</div>
@ -174,9 +169,7 @@ export async function getStaticPaths() {
>
<Translate>{category}</Translate>
</h2>
<span class="text-sm text-gray-500">
{groups[category].length} <Translate>guide</Translate>{groups[category].length !== 1 ? 's' : ''}
</span>
</div>
<div class="grid sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6">