generated from polymech/site-template
polymech latest | howtos
This commit is contained in:
parent
dd6de61ad2
commit
d9acb49f47
@ -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
@ -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
|
||||
}
|
||||
}
|
||||
@ -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",
|
||||
|
||||
@ -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',
|
||||
|
||||
@ -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[] => {
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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"))
|
||||
|
||||
@ -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">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user