[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M719CX37H8XDFPCP3FQXQDXB":3,"skill-same:01M719CX37H8XDFPCP3FQXQDXB":101},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":14,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":50,"install":51,"resources":64},"01M719CX37H8XDFPCP3FQXQDXB","obsidian-clipper-template-creator",null,"Guide for creating templates for the Obsidian Web Clipper. Use when you want to create a new clipping template, understand available variables, or format clipped content.","sapsapshen\u002Fai-memory-router","sapsapshen","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F20347959?v=4","01M6XDQEF1DP50DKF37H81J3J5","shenmian","01M6XDQEJPE41Y3DT2763X8ZJN",0,"MIT","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fobsidian-clipper-template-creator\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"obsidian","template creator","obsidian clipper template creator","template","creator","clipper","new","safe","2026","when","for","you","Variables","understand","community","use","format","templates","create","web","2026-11-10 10:12:30",false,"---\nname: obsidian-clipper-template-creator\ndescription: Guide for creating templates for the Obsidian Web Clipper. Use when you want to create a new clipping template, understand available variables, or format clipped content.\nrisk: safe\nsource: community\ndate_added: \"2026-02-27\"\n---\n\n# Obsidian Web Clipper Template Creator\n\nThis skill helps you create importable JSON templates for the Obsidian Web Clipper.\n\n## When to Use\n\n- You need to create or refine an importable Obsidian Web Clipper template.\n- You want to map a site's real DOM, schema data, and selectors into a valid clipping template.\n- You need selector verification and template logic guidance before handing the JSON to the user.\n\n## Workflow\n\n1. **Identify User Intent:** specific site (YouTube), specific type (Recipe), or general clipping?\n2. **Check Existing Bases:** The user likely has a \"Base\" schema defined in `Bases\u002F`.\n    - **Action:** Read `Bases\u002F*.base` to find a matching category (e.g., `Recipes.base`).\n    - **Action:** Use the properties defined in the Base to structure the Clipper template properties.\n    - See [references\u002Fbases-workflow.md](references\u002Fbases-workflow.md) for details.\n3. **Fetch & Analyze Reference URL:** Validate variables against a real page.\n    - **Action:** Ask the user for a sample URL of the content they want to clip (if not provided).\n    - **Action (REQUIRED):** Use **WebFetch** to retrieve page content; if WebFetch is not available, use a browser DOM snapshot. See [references\u002Fanalysis-workflow.md](references\u002Fanalysis-workflow.md).\n    - **Action:** Analyze the HTML for Schema.org JSON, Meta tags, and CSS selectors.\n    - **Action (REQUIRED):** Verify each selector against the fetched content. Do not guess selectors.\n    - See [references\u002Fanalysis-workflow.md](references\u002Fanalysis-workflow.md) for analysis techniques.\n4. **Draft the JSON:** Create a valid JSON object following the schema.\n    - See [references\u002Fjson-schema.md](references\u002Fjson-schema.md).\n5. **Consider template logic:** Use conditionals for optional blocks (e.g. show nutrition only if present), loops for list data, variable assignment to avoid repeating expressions, and fallbacks for missing variables. Use logic only when it improves the template; keep simple templates simple. See [references\u002Flogic.md](references\u002Flogic.md).\n6. **Verify Variables:** Ensure the chosen variables (Preset, Schema, Selector) exist in your analysis.\n    - **Action (REQUIRED):** If a selector cannot be verified from the fetched content, state that explicitly and ask for another URL.\n    - See [references\u002Fvariables.md](references\u002Fvariables.md).\n\n## Selector Verification Rules\n\n- **Always verify selectors** against live page content before responding.\n- **Never guess selectors.** If the DOM cannot be accessed or the element is missing, ask for another URL or a screenshot.\n- **Prefer stable selectors** (data attributes, semantic roles, unique IDs) over fragile class chains.\n- **Document the target element** in your reasoning (e.g., \"About sidebar paragraph\") to reduce mismatch.\n\n## Output Format\n\n**ALWAYS** output the final result as a JSON code block that the user can copy and import.\n\nThe Clipper template editor validates template syntax.\nIf you use template logic (conditionals, loops, variable assignment), ensure it follows the syntax in [references\u002Flogic.md](references\u002Flogic.md) and the official [Logic](https:\u002F\u002Fhelp.obsidian.md\u002Fweb-clipper\u002Flogic) docs so the template passes validation.\n\n```json\n{\n  \"schemaVersion\": \"0.1.0\",\n  \"name\": \"My Template\",\n  ...\n}\n```\n\n## Resources\n\n- [references\u002Fvariables.md](references\u002Fvariables.md) - Available data variables.\n- [references\u002Ffilters.md](references\u002Ffilters.md) - Formatting filters.\n- [references\u002Fjson-schema.md](references\u002Fjson-schema.md) - JSON structure documentation.\n- [references\u002Flogic.md](references\u002Flogic.md) - Template logic.\n- [references\u002Fbases-workflow.md](references\u002Fbases-workflow.md) - How to map Bases to Templates.\n- [references\u002Fanalysis-workflow.md](references\u002Fanalysis-workflow.md) - How to validate page data.\n\n### Official Documentation\n\n- [Variables](https:\u002F\u002Fhelp.obsidian.md\u002Fweb-clipper\u002Fvariables)\n- [Filters](https:\u002F\u002Fhelp.obsidian.md\u002Fweb-clipper\u002Ffilters)\n- [Logic](https:\u002F\u002Fhelp.obsidian.md\u002Fweb-clipper\u002Flogic)\n- [Templates](https:\u002F\u002Fhelp.obsidian.md\u002Fweb-clipper\u002Ftemplates)\n\n## Examples\n\nSee [assets\u002F](assets\u002F) for JSON examples.\n","# Obsidian Web Clipper Template Creator\n\nThis skill helps you create importable JSON templates for the Obsidian Web Clipper.\n\n## When to Use\n\n- You need to create or refine an importable Obsidian Web Clipper template.\n- You want to map a site's real DOM, schema data, and selectors into a valid clipping template.\n- You need selector verification and template logic guidance before handing the JSON to the user.\n\n## Workflow\n\n1. **Identify User Intent:** specific site (YouTube), specific type (Recipe), or general clipping?\n2. **Check Existing Bases:** The user likely has a \"Base\" schema defined in `Bases\u002F`.\n    - **Action:** Read `Bases\u002F*.base` to find a matching category (e.g., `Recipes.base`).\n    - **Action:** Use the properties defined in the Base to structure the Clipper template properties.\n    - See [references\u002Fbases-workflow.md](references\u002Fbases-workflow.md) for details.\n3. **Fetch & Analyze Reference URL:** Validate variables against a real page.\n    - **Action:** Ask the user for a sample URL of the content they want to clip (if not provided).\n    - **Action (REQUIRED):** Use **WebFetch** to retrieve page content; if WebFetch is not available, use a browser DOM snapshot. See [references\u002Fanalysis-workflow.md](references\u002Fanalysis-workflow.md).\n    - **Action:** Analyze the HTML for Schema.org JSON, Meta tags, and CSS selectors.\n    - **Action (REQUIRED):** Verify each selector against the fetched content. Do not guess selectors.\n    - See [references\u002Fanalysis-workflow.md](references\u002Fanalysis-workflow.md) for analysis techniques.\n4. **Draft the JSON:** Create a valid JSON object following the schema.\n    - See [references\u002Fjson-schema.md](references\u002Fjson-schema.md).\n5. **Consider template logic:** Use conditionals for optional blocks (e.g. show nutrition only if present), loops for list data, variable assignment to avoid repeating expressions, and fallbacks for missing variables. Use logic only when it improves the template; keep simple templates simple. See [references\u002Flogic.md](references\u002Flogic.md).\n6. **Verify Variables:** Ensure the chosen variables (Preset, Schema, Selector) exist in your analysis.\n    - **Action (REQUIRED):** If a selector cannot be verified from the fetched content, state that explicitly and ask for another URL.\n    - See [references\u002Fvariables.md](references\u002Fvariables.md).\n\n## Selector Verification Rules\n\n- **Always verify selectors** against live page content before responding.\n- **Never guess selectors.** If the DOM cannot be accessed or the element is missing, ask for another URL or a screenshot.\n- **Prefer stable selectors** (data attributes, semantic roles, unique IDs) over fragile class chains.\n- **Document the target element** in your reasoning (e.g., \"About sidebar paragraph\") to reduce mismatch.\n\n## Output Format\n\n**ALWAYS** output the final result as a JSON code block that the user can copy and import.\n\nThe Clipper template editor validates template syntax.\nIf you use template logic (conditionals, loops, variable assignment), ensure it follows the syntax in [references\u002Flogic.md](references\u002Flogic.md) and the official [Logic](https:\u002F\u002Fhelp.obsidian.md\u002Fweb-clipper\u002Flogic) docs so the template passes validation.\n\n```json\n{\n  \"schemaVersion\": \"0.1.0\",\n  \"name\": \"My Template\",\n  ...\n}\n```\n\n## Resources\n\n- [references\u002Fvariables.md](references\u002Fvariables.md) - Available data variables.\n- [references\u002Ffilters.md](references\u002Ffilters.md) - Formatting filters.\n- [references\u002Fjson-schema.md](references\u002Fjson-schema.md) - JSON structure documentation.\n- [references\u002Flogic.md](references\u002Flogic.md) - Template logic.\n- [references\u002Fbases-workflow.md](references\u002Fbases-workflow.md) - How to map Bases to Templates.\n- [references\u002Fanalysis-workflow.md](references\u002Fanalysis-workflow.md) - How to validate page data.\n\n### Official Documentation\n\n- [Variables](https:\u002F\u002Fhelp.obsidian.md\u002Fweb-clipper\u002Fvariables)\n- [Filters](https:\u002F\u002Fhelp.obsidian.md\u002Fweb-clipper\u002Ffilters)\n- [Logic](https:\u002F\u002Fhelp.obsidian.md\u002Fweb-clipper\u002Flogic)\n- [Templates](https:\u002F\u002Fhelp.obsidian.md\u002Fweb-clipper\u002Ftemplates)\n\n## Examples\n\nSee [assets\u002F](assets\u002F) for JSON examples.\n",{"name":5,"risk":26,"source":33,"date_added":44,"description":7},"2026-02-27","main","7a38d8e7073e61c16eda85681cb32fb68a8657a5","skills-store\u002Fglobal\u002Fobsidian-clipper-template-creator","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router","https:\u002F\u002Fgithub.com\u002Fsapsapshen","2026-04-14 21:12:12",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add sapsapshen\u002Fai-memory-router --skill obsidian-clipper-template-creator",{"tool":57,"command":58},"bunx","bunx skills add sapsapshen\u002Fai-memory-router --skill obsidian-clipper-template-creator",{"tool":60,"command":61},"pnpm","pnpm dlx skills add sapsapshen\u002Fai-memory-router --skill obsidian-clipper-template-creator","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fobsidian-clipper-template-creator\u002FSKILL.md",true,[65,71,75,81,85,89,93,97],{"path":66,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":69,"sourceHtmlUrl":70},"assets\u002Fclipping-template.json","ASSET","资产文件",826,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fobsidian-clipper-template-creator\u002Fassets\u002Fclipping-template.json",{"path":72,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":73,"sourceHtmlUrl":74},"assets\u002Frecipe-template.json",1102,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fobsidian-clipper-template-creator\u002Fassets\u002Frecipe-template.json",{"path":76,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":80},"references\u002Fanalysis-workflow.md","REFERENCE","参考文档",2268,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fobsidian-clipper-template-creator\u002Freferences\u002Fanalysis-workflow.md",{"path":82,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":83,"sourceHtmlUrl":84},"references\u002Fbases-workflow.md",1844,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fobsidian-clipper-template-creator\u002Freferences\u002Fbases-workflow.md",{"path":86,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":87,"sourceHtmlUrl":88},"references\u002Ffilters.md",1544,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fobsidian-clipper-template-creator\u002Freferences\u002Ffilters.md",{"path":90,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":91,"sourceHtmlUrl":92},"references\u002Fjson-schema.md",2742,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fobsidian-clipper-template-creator\u002Freferences\u002Fjson-schema.md",{"path":94,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":95,"sourceHtmlUrl":96},"references\u002Flogic.md",4467,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fobsidian-clipper-template-creator\u002Freferences\u002Flogic.md",{"path":98,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":99,"sourceHtmlUrl":100},"references\u002Fvariables.md",2031,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fobsidian-clipper-template-creator\u002Freferences\u002Fvariables.md",[102,125,150,160,173,192],{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":113,"publishedAt":39},"01M71ATQRKG48SH06FQ697T5G9","wechat-search","Search WeChat Official Account articles using OpenClaw's web search and fetch capabilities with compliance-focused design.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fwechat-search-release\u002FSKILL.md",[108],{"categoryNo":109,"categoryName":110,"taxonomyType":111,"taxonomyTypeDesc":112},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[114,115,116,117,118,119,120,121,38,122,123,124],"wechat search","wechat","search","capabilities","openclaw","design","web search","compliance","official","fetch","with",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":131,"publishedAt":39},"01M71ATNAVGZB35PFYM2GC5N00","trend-tap","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend tap', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-tap\u002FSKILL.md",[],[132,133,134,135,136,137,116,138,139,140,141,28,142,143,144,145,146,147,148,149],"trend","trend tap","tap","api keys","Bash","time","trending","hacker","aggregator","do","brew","live","data","google","install","read","across","api",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":156,"publishedAt":39},"01M71ATJ9AM5KM15AA8PS302EB","trend-radar","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend pulse', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-radar\u002FSKILL.md",[],[157,158,132,142,143,144,145,136,116,147,159,148,149,28,140,139,138,146,137,135],"trend radar","radar","pulse",{"skillNo":161,"name":162,"nameZh":6,"description":163,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":164,"categories":165,"keywords":166,"publishedAt":39},"01M71ATGF095N3EJM9G8SD0BB5","tech-news-daily","每日科技新闻汇——从全球多个 RSS 源抓取最新科技新闻，翻译（英→中）、去重、排版成每日简报。当用户询问科技新闻、科技新鲜事、每日科技、技术动态、Daily Tech News 或类似表达时触发此技能。","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftech-news-daily\u002FSKILL.md",[],[167,168,169,170,171,172],"news","tech","tech news daily","daily","rss","翻译",{"skillNo":174,"name":175,"nameZh":6,"description":176,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":177,"categories":178,"keywords":184,"publishedAt":39},"01M71ATFAEAMQ17M70NQNY7SR8","summarize","Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsummarize\u002FSKILL.md",[179],{"categoryNo":180,"categoryName":181,"taxonomyType":182,"taxonomyTypeDesc":183},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",[175,38,185,186,187,124,142,188,189,190,134,191,146],"Audio","cli","youtube","images","https","files","pdfs",{"skillNo":193,"name":194,"nameZh":6,"description":195,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":196,"categories":197,"keywords":198,"publishedAt":39},"01M71ATDNS3R0M4H936PACQAWZ","sonoscli","Control Sonos speakers (discover\u002Fstatus\u002Fplay\u002Fvolume\u002Fgroup).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsonoscli\u002FSKILL.md",[],[194,199,200,201,146,202,189,203,204,205,206,207],"status","play","go","latest","github","discover","control","cmd","volume"]