#!/usr/bin/env python3 """ Create product markdown files from crawled data """ import json import os # Product data structure PRODUCTS_DATA = [ { "id": "ppr-thai", "name": "ท่อ PPR – Thai PPR", "nameEn": "Thai PPR Pipe", "slug": "ท่อppr-thai", "description": "ท่อ PPR คุณภาพสูง มาตรฐานสากล สำหรับระบบน้ำร้อนและน้ำเย็น", "shortDescription": "ท่อพีพีอาร์คุณภาพสูง มาตรฐานสากล", "image": "/images/2021/03/ppr-pipe_000C.jpg", "keywords": ["ท่อ PPR", "ท่อพีพีอาร์", "PPR pipe", "Thai PPR"], "specifications": [ {"label": "วัสดุ", "value": "PP-R (Polypropylene Random Copolymer)"}, {"label": "ขนาด", "value": "20mm - 315mm"}, {"label": "แรงดัน", "value": "PN20, PN25"}, {"label": "อุณหภูมิ", "value": "สูงสุด 95°C"}, {"label": "มาตรฐาน", "value": "DIN 8077/8078, ISO 15874"}, ], "features": [ "ทนความร้อนสูงถึง 95°C", "ไม่ผุกร่อน ไม่เป็นสนิม", "ติดตั้งง่ายด้วยการเชื่อมความร้อน", "อายุการใช้งาน 50 ปี", "ปลอดภัยสำหรับน้ำดื่ม", ], "applications": [ "ระบบน้ำร้อน", "ระบบน้ำเย็น", "ระบบประปา", "โรงงานอุตสาหกรรม", ], }, { "id": "ppr-elephant", "name": "ท่อ PPR – ตราช้าง (SCG)", "nameEn": "PPR Elephant Pipe (SCG)", "slug": "ท่อพีพีอาร์ตราช้าง", "description": "ท่อพีพีอาร์ตราช้าง ผลิตโดย SCG คุณภาพมาตรฐานเยอรมัน", "shortDescription": "ท่อพีพีอาร์ตราช้าง SCG คุณภาพเยอรมัน", "image": "/images/2021/03/ppr-pipe_000C.jpg", "keywords": ["ท่อ PPR", "ตราช้าง", "SCG", "PPR Elephant"], "specifications": [ {"label": "วัสดุ", "value": "PP-R Type 3"}, {"label": "ขนาด", "value": "20mm - 110mm"}, {"label": "แรงดัน", "value": "PN20"}, {"label": "มาตรฐาน", "value": "มอก. 2481-2551"}, ], "features": [ "ผลิตโดย SCG บริษัทชั้นนำของไทย", "มาตรฐาน DIN 8077/8078", "ทนความร้อนสูง", "เชื่อมต่อง่าย", "รับประกัน 10 ปี", ], "applications": [ "ระบบน้ำร้อนในอาคาร", "ระบบน้ำเย็น", "ระบบประปา", ], }, { "id": "poloplast", "name": "PP-R / PP-RCT POLOPLAST", "nameEn": "PP-R / PP-RCT POLOPLAST", "slug": "poloplast", "description": "ท่อ PP-R และ PP-RCT จาก POLOPLAST ออสเตรีย คุณภาพสูงสุด", "shortDescription": "ท่อ PP-R/PP-RCT จากออสเตรีย", "image": "/images/2021/03/poloplast_000C.jpg", "keywords": ["POLOPLAST", "PP-R", "PP-RCT", "ท่อออสเตรีย"], "specifications": [ {"label": "วัสดุ", "value": "PP-R / PP-RCT"}, {"label": "ขนาด", "value": "16mm - 315mm"}, {"label": "แรงดัน", "value": "PN10, PN16, PN20, PN25"}, {"label": "มาตรฐาน", "value": "DIN 8077/8078, ÖNORM B 5112"}, ], "features": [ "เทคโนโลยี PP-RCT จากออสเตรีย", "ทนแรงดันสูงกว่า PP-R ธรรมดา", "ผนังบางแต่แข็งแรงกว่า", "_flow rate สูงกว่า", "อายุการใช้งาน 50+ ปี", ], "applications": [ "ระบบ HVAC", "ระบบน้ำร้อน-เย็น", "ระบบทำความร้อน", "โรงงานอุตสาหกรรม", ], }, { "id": "hdpe", "name": "ท่อ HDPE", "nameEn": "HDPE Pipe", "slug": "ท่อhdpe", "description": "ท่อ HDPE PE80/PE100 ทนแรงดัน PN25 อายุการใช้งาน 50 ปี มอก.", "shortDescription": "ท่อเอชดีพีอี PE80/PE100 มาตรฐาน มอก.", "image": "/images/2021/03/hdpe-page-full.png", "keywords": ["ท่อ HDPE", "ท่อเอชดีพีอี", "PE80", "PE100", "ท่อประปา"], "specifications": [ {"label": "วัสดุ", "value": "HDPE (High Density Polyethylene)"}, {"label": "เกรด", "value": "PE80, PE100"}, {"label": "ขนาด", "value": "20mm - 1,200mm"}, {"label": "แรงดัน", "value": "PN6 - PN25"}, {"label": "มาตรฐาน", "value": "มอก. 982-2548, ISO 4427"}, ], "features": [ "ทนแรงดันสูงถึง PN25", "อายุการใช้งาน 50 ปี", "น้ำหนักเบา ติดตั้งง่าย", "ทนสารเคมี", "ไม่เป็นสนิม", ], "applications": [ "ระบบประปา", "ระบบชลประทาน", "ระบบน้ำทิ้ง", "โรงงานอุตสาหกรรม", ], }, { "id": "syler", "name": "ท่อไซเลอร์ | Syler", "nameEn": "Syler Pipe", "slug": "ท่อไซเลอร์", "description": "ท่อไซเลอร์ ท่อเหล็กกล้าไร้สนิม คุณภาพสูง", "shortDescription": "ท่อเหล็กกล้าไร้สนิม คุณภาพสูง", "image": "/images/2021/03/syler_000C.jpg", "keywords": ["ท่อไซเลอร์", "Syler", "ท่อสแตนเลส", "Stainless Pipe"], "specifications": [ {"label": "วัสดุ", "value": "Stainless Steel 304/316"}, {"label": "ขนาด", "value": "1/2\" - 12\""}, {"label": "มาตรฐาน", "value": "ASTM A312, JIS G3459"}, ], "features": [ "ทนการกัดกร่อนสูง", "อายุการใช้งานยาวนาน", "บำรุงรักษาต่ำ", "สวยงาม", ], "applications": [ "ระบบอาหารและเครื่องดื่ม", "ระบบเคมี", "ระบบน้ำทะเล", "อาคารสูง", ], }, { "id": "xylent", "name": "ท่อระบายน้ำ 3 ชั้น ไซเลนท์ | XYLENT", "nameEn": "XYLENT 3-Layer Drainage Pipe", "slug": "ท่อระบายน้ำ-3-ชั้น-ไซเลนท์", "description": "ท่อระบายน้ำ 3 ชั้น ลดเสียงรบกวน ไซเลนท์", "shortDescription": "ท่อระบายน้ำ 3 ชั้น ลดเสียง", "image": "/images/2021/03/xylent_000C.jpg", "keywords": ["XYLENT", "ท่อระบายน้ำ", "ท่อ 3 ชั้น", "Silent Pipe"], "specifications": [ {"label": "วัสดุ", "value": "PP + Mineral"}, {"label": "ขนาด", "value": "DN50 - DN200"}, {"label": "โครงสร้าง", "value": "3 ชั้น"}, {"label": "มาตรฐาน", "value": "DIN 19518, EN 14366"}, ], "features": [ "ลดเสียงรบกวนได้ถึง 10 dB", "ทนความร้อนสูง", "ทนสารเคมี", "ติดตั้งง่าย", "อายุการใช้งานยาวนาน", ], "applications": [ "ระบบระบายน้ำในอาคาร", "โรงแรม", "โรงพยาบาล", "คอนโดมิเนียม", ], }, ] def create_markdown(product): """Create markdown content for a product""" md = f"""--- id: {product['id']} name: {product['name']} nameEn: {product['nameEn']} slug: {product['slug']} description: '{product['description']}' shortDescription: '{product['shortDescription']}' image: {product['image']} keywords: """ for keyword in product['keywords']: md += f" - {keyword}\n" md += "specifications:\n" for spec in product['specifications']: md += f" - label: {spec['label']}\n" md += f" value: {spec['value']}\n" md += "features:\n" for feature in product['features']: md += f" - {feature}\n" md += "applications:\n" for app in product['applications']: md += f" - {app}\n" md += f"""--- # {product['name']} {product['description']} ## คุณสมบัติเด่น """ for i, feature in enumerate(product['features'], 1): md += f"{i}. {feature}\n" md += "\n## ข้อมูลจำเพาะ\n\n" md += "| รายการ | รายละเอียด |\n" md += "|--------|------------|\n" for spec in product['specifications']: md += f"| {spec['label']} | {spec['value']} |\n" md += "\n## การใช้งาน\n\n" for app in product['applications']: md += f"- {app}\n" return md def main(): output_dir = '/Users/kunthawatgreethong/Gitea/dealplustech/src/content/products' os.makedirs(output_dir, exist_ok=True) for product in PRODUCTS_DATA: filename = f"{product['id']}.md" filepath = os.path.join(output_dir, filename) # Skip if already exists if os.path.exists(filepath): print(f"✓ Skip (exists): {filename}") continue # Create markdown md_content = create_markdown(product) with open(filepath, 'w', encoding='utf-8') as f: f.write(md_content) print(f"✓ Created: {filename}") if __name__ == '__main__': print("=== Creating Product Markdown Files ===\n") main() print("\n✅ Done!")