[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6F4ZMH265BQTY43KYG66PWW":3,"skill-same:01M6F4ZMH265BQTY43KYG66PWW":75},{"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":26,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":57,"ownerHtmlUrl":58,"ownerBlogUrl":6,"ownerDescription":59,"updatedAt":60,"install":61,"resources":74},"01M6F4ZMH265BQTY43KYG66PWW","publish-to-pages",null,"Publish presentations and web content to GitHub Pages. Converts PPTX, PDF, HTML, or Google Slides to a live GitHub Pages URL. Handles repo creation, file conversion, Pages enablement, and returns the live URL. Use when the user wants to publish, deploy, or share a presentation or HTML file via GitHub Pages.","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fgithub\u002Fawesome-copilot\u002Fpublish-to-pages\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000003","演示文稿",[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"pages","publish","publish to pages","slides","URL","web content","via","creation","conversion","use","repo","github pages","PDF","file","google slides","share","presentations","web","github","pptx","2026-11-10 10:12:30",false,"---\nname: publish-to-pages\ndescription: 'Publish presentations and web content to GitHub Pages. Converts PPTX, PDF, HTML, or Google Slides to a live GitHub Pages URL. Handles repo creation, file conversion, Pages enablement, and returns the live URL. Use when the user wants to publish, deploy, or share a presentation or HTML file via GitHub Pages.'\n---\n\n# publish-to-pages\n\nPublish any presentation or web content to GitHub Pages in one shot.\n\n## 1. Prerequisites Check\n\nRun these silently. Only surface errors:\n\n```bash\ncommand -v gh >\u002Fdev\u002Fnull || echo \"MISSING: gh CLI — install from https:\u002F\u002Fcli.github.com\"\ngh auth status &>\u002Fdev\u002Fnull || echo \"MISSING: gh not authenticated — run 'gh auth login'\"\ncommand -v python3 >\u002Fdev\u002Fnull || echo \"MISSING: python3 (needed for PPTX conversion)\"\n```\n\n`poppler-utils` is optional (PDF conversion via `pdftoppm`). Don't block on it.\n\n## 2. Input Detection\n\nDetermine input type from what the user provides:\n\n| Input | Detection |\n|-------|-----------|\n| HTML file | Extension `.html` or `.htm` |\n| PPTX file | Extension `.pptx` |\n| PDF file | Extension `.pdf` |\n| Google Slides URL | URL contains `docs.google.com\u002Fpresentation` |\n\nAsk the user for a **repo name** if not provided. Default: filename without extension.\n\n## 3. Conversion\n\n### Large File Handling\n\nBoth conversion scripts automatically detect large files and switch to **external assets mode**:\n- **PPTX:** Files >20MB or with >50 images → images saved as separate files in `assets\u002F`\n- **PDF:** Files >20MB or with >50 pages → page PNGs saved in `assets\u002F`\n- Files >150MB print a warning (PPTX suggests PDF path instead)\n\nThis keeps individual files well under GitHub's 100MB limit. Small files still produce a single self-contained HTML.\n\nYou can force the behavior with `--external-assets` or `--no-external-assets`.\n\n### HTML\nNo conversion needed. Use the file directly as `index.html`.\n\n### PPTX\nRun the conversion script:\n```bash\npython3 SKILL_DIR\u002Fscripts\u002Fconvert-pptx.py INPUT_FILE \u002Ftmp\u002Foutput.html\n# For large files, force external assets:\npython3 SKILL_DIR\u002Fscripts\u002Fconvert-pptx.py INPUT_FILE \u002Ftmp\u002Foutput.html --external-assets\n```\nIf `python-pptx` is missing, tell the user: `pip install python-pptx`\n\n### PDF\nConvert with the included script (requires `poppler-utils` for `pdftoppm`):\n```bash\npython3 SKILL_DIR\u002Fscripts\u002Fconvert-pdf.py INPUT_FILE \u002Ftmp\u002Foutput.html\n# For large files, force external assets:\npython3 SKILL_DIR\u002Fscripts\u002Fconvert-pdf.py INPUT_FILE \u002Ftmp\u002Foutput.html --external-assets\n```\nEach page is rendered as a PNG and embedded into HTML with slide navigation.\nIf `pdftoppm` is missing, tell the user: `apt install poppler-utils` (or `brew install poppler` on macOS).\n\n### Google Slides\n1. Extract the presentation ID from the URL (the long string between `\u002Fd\u002F` and `\u002F`)\n2. Download as PPTX:\n```bash\ncurl -L \"https:\u002F\u002Fdocs.google.com\u002Fpresentation\u002Fd\u002FPRESENTATION_ID\u002Fexport\u002Fpptx\" -o \u002Ftmp\u002Fslides.pptx\n```\n3. Then convert the PPTX using the convert script above.\n\n## 4. Publishing\n\n### Visibility\nRepos are created **public** by default. If the user specifies `private` (or wants a private repo), use `--private` — but note that GitHub Pages on private repos requires a Pro, Team, or Enterprise plan.\n\n### Publish\n```bash\nbash SKILL_DIR\u002Fscripts\u002Fpublish.sh \u002Fpath\u002Fto\u002Findex.html REPO_NAME public \"Description\"\n```\n\nPass `private` instead of `public` if the user requests it.\n\nThe script creates the repo, pushes `index.html` (plus `assets\u002F` if present), and enables GitHub Pages.\n\n**Note:** When external assets mode is used, the output HTML references files in `assets\u002F`. The publish script automatically detects and copies the `assets\u002F` directory alongside the HTML file. Make sure the HTML file and its `assets\u002F` directory are in the same parent directory.\n\n## 5. Output\n\nTell the user:\n- **Repository:** `https:\u002F\u002Fgithub.com\u002FUSERNAME\u002FREPO_NAME`\n- **Live URL:** `https:\u002F\u002FUSERNAME.github.io\u002FREPO_NAME\u002F`\n- **Note:** Pages takes 1-2 minutes to go live.\n\n## Error Handling\n\n- **Repo already exists:** Suggest appending a number (`my-slides-2`) or a date (`my-slides-2026`).\n- **Pages enablement fails:** Still return the repo URL. User can enable Pages manually in repo Settings.\n- **PPTX conversion fails:** Tell user to run `pip install python-pptx`.\n- **PDF conversion fails:** Suggest installing `poppler-utils` (`apt install poppler-utils` or `brew install poppler`).\n- **Google Slides download fails:** The presentation may not be publicly accessible. Ask user to make it viewable or download the PPTX manually.\n\n","# publish-to-pages\n\nPublish any presentation or web content to GitHub Pages in one shot.\n\n## 1. Prerequisites Check\n\nRun these silently. Only surface errors:\n\n```bash\ncommand -v gh >\u002Fdev\u002Fnull || echo \"MISSING: gh CLI — install from https:\u002F\u002Fcli.github.com\"\ngh auth status &>\u002Fdev\u002Fnull || echo \"MISSING: gh not authenticated — run 'gh auth login'\"\ncommand -v python3 >\u002Fdev\u002Fnull || echo \"MISSING: python3 (needed for PPTX conversion)\"\n```\n\n`poppler-utils` is optional (PDF conversion via `pdftoppm`). Don't block on it.\n\n## 2. Input Detection\n\nDetermine input type from what the user provides:\n\n| Input | Detection |\n|-------|-----------|\n| HTML file | Extension `.html` or `.htm` |\n| PPTX file | Extension `.pptx` |\n| PDF file | Extension `.pdf` |\n| Google Slides URL | URL contains `docs.google.com\u002Fpresentation` |\n\nAsk the user for a **repo name** if not provided. Default: filename without extension.\n\n## 3. Conversion\n\n### Large File Handling\n\nBoth conversion scripts automatically detect large files and switch to **external assets mode**:\n- **PPTX:** Files >20MB or with >50 images → images saved as separate files in `assets\u002F`\n- **PDF:** Files >20MB or with >50 pages → page PNGs saved in `assets\u002F`\n- Files >150MB print a warning (PPTX suggests PDF path instead)\n\nThis keeps individual files well under GitHub's 100MB limit. Small files still produce a single self-contained HTML.\n\nYou can force the behavior with `--external-assets` or `--no-external-assets`.\n\n### HTML\nNo conversion needed. Use the file directly as `index.html`.\n\n### PPTX\nRun the conversion script:\n```bash\npython3 SKILL_DIR\u002Fscripts\u002Fconvert-pptx.py INPUT_FILE \u002Ftmp\u002Foutput.html\n# For large files, force external assets:\npython3 SKILL_DIR\u002Fscripts\u002Fconvert-pptx.py INPUT_FILE \u002Ftmp\u002Foutput.html --external-assets\n```\nIf `python-pptx` is missing, tell the user: `pip install python-pptx`\n\n### PDF\nConvert with the included script (requires `poppler-utils` for `pdftoppm`):\n```bash\npython3 SKILL_DIR\u002Fscripts\u002Fconvert-pdf.py INPUT_FILE \u002Ftmp\u002Foutput.html\n# For large files, force external assets:\npython3 SKILL_DIR\u002Fscripts\u002Fconvert-pdf.py INPUT_FILE \u002Ftmp\u002Foutput.html --external-assets\n```\nEach page is rendered as a PNG and embedded into HTML with slide navigation.\nIf `pdftoppm` is missing, tell the user: `apt install poppler-utils` (or `brew install poppler` on macOS).\n\n### Google Slides\n1. Extract the presentation ID from the URL (the long string between `\u002Fd\u002F` and `\u002F`)\n2. Download as PPTX:\n```bash\ncurl -L \"https:\u002F\u002Fdocs.google.com\u002Fpresentation\u002Fd\u002FPRESENTATION_ID\u002Fexport\u002Fpptx\" -o \u002Ftmp\u002Fslides.pptx\n```\n3. Then convert the PPTX using the convert script above.\n\n## 4. Publishing\n\n### Visibility\nRepos are created **public** by default. If the user specifies `private` (or wants a private repo), use `--private` — but note that GitHub Pages on private repos requires a Pro, Team, or Enterprise plan.\n\n### Publish\n```bash\nbash SKILL_DIR\u002Fscripts\u002Fpublish.sh \u002Fpath\u002Fto\u002Findex.html REPO_NAME public \"Description\"\n```\n\nPass `private` instead of `public` if the user requests it.\n\nThe script creates the repo, pushes `index.html` (plus `assets\u002F` if present), and enables GitHub Pages.\n\n**Note:** When external assets mode is used, the output HTML references files in `assets\u002F`. The publish script automatically detects and copies the `assets\u002F` directory alongside the HTML file. Make sure the HTML file and its `assets\u002F` directory are in the same parent directory.\n\n## 5. Output\n\nTell the user:\n- **Repository:** `https:\u002F\u002Fgithub.com\u002FUSERNAME\u002FREPO_NAME`\n- **Live URL:** `https:\u002F\u002FUSERNAME.github.io\u002FREPO_NAME\u002F`\n- **Note:** Pages takes 1-2 minutes to go live.\n\n## Error Handling\n\n- **Repo already exists:** Suggest appending a number (`my-slides-2`) or a date (`my-slides-2026`).\n- **Pages enablement fails:** Still return the repo URL. User can enable Pages manually in repo Settings.\n- **PPTX conversion fails:** Tell user to run `pip install python-pptx`.\n- **PDF conversion fails:** Suggest installing `poppler-utils` (`apt install poppler-utils` or `brew install poppler`).\n- **Google Slides download fails:** The presentation may not be publicly accessible. Ask user to make it viewable or download the PPTX manually.\n\n",{"name":5,"description":7},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fgithub\u002Fawesome-copilot\u002Fpublish-to-pages",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill publish-to-pages",{"tool":67,"command":68},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill publish-to-pages",{"tool":70,"command":71},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill publish-to-pages","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fgithub\u002Fawesome-copilot\u002Fpublish-to-pages\u002FSKILL.md",true,[],[76,88,98,107,113,120],{"skillNo":77,"name":78,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":84,"publishedAt":47},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[81],{"categoryNo":82,"categoryName":83,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[85,86,87],"model","model hierarchy","model hierarchy skill",{"skillNo":89,"name":90,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":94,"publishedAt":47},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[93],{"categoryNo":82,"categoryName":83,"taxonomyType":21,"taxonomyTypeDesc":22},[95,96,97],"MCP","zoom","zoom mcp",{"skillNo":99,"name":100,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":47},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[104,105,106,96],"sdk","zoom apps sdk","apps",{"skillNo":108,"name":109,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":47},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[109],{"skillNo":114,"name":115,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":119,"publishedAt":47},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[118],{"categoryNo":82,"categoryName":83,"taxonomyType":21,"taxonomyTypeDesc":22},[115],{"skillNo":121,"name":122,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":47},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[122]]