[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6XBPR0PPF1RACRYEB38AVY6":3,"skill-same:01M6XBPR0PPF1RACRYEB38AVY6":66},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":35,"linkOnly":36,"markdownContent":37,"markdownBody":38,"frontMatter":39,"refName":40,"commitSha":41,"skillDirectory":42,"forksCount":13,"repositoryHtmlUrl":43,"repositoryHomepageUrl":6,"ownerHtmlUrl":44,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":45,"install":46,"resources":59},"01M6XBPR0PPF1RACRYEB38AVY6","pandoc-pdf-error-resolution",null,"Systematic debugging workflow for pandoc PDF conversion errors","UF-gzj\u002Fopenspace-claude-evolution","UF-gzj","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F272393507?v=4","01M6XBCZB755P01VVYGQWPYZY3","01M6XBCZFJA5AREA17WGETA3FW",0,"MIT","https:\u002F\u002Fgithub.com\u002FUF-gzj\u002Fopenspace-claude-evolution\u002Fblob\u002Fmain\u002Fgdpval_bench\u002Fskills\u002Fpandoc-pdf-error-resolution\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34],"PDF","resolution","pandoc","error","pandoc pdf error resolution","workflow","systematic debugging","debugging","conversion","systematic","errors","for","2026-11-10 10:12:30",false,"---\nname: pandoc-pdf-error-resolution\ndescription: Systematic debugging workflow for pandoc PDF conversion errors\n---\n\n# Pandoc PDF Error Resolution\n\nThis skill provides a step-by-step workflow for diagnosing and resolving \"unknown error\" messages when using pandoc to generate PDFs.\n\n## When to Use\n\nUse this skill when:\n- Pandoc returns an \"unknown error\" during PDF conversion\n- The conversion succeeds for other formats (e.g., markdown, HTML) but fails for PDF\n- You need to identify which PDF engine is available and working\n\n## Step-by-Step Procedure\n\n### Step 1: Verify Pandoc Installation\n\nFirst, confirm pandoc is installed and check its version:\n\n```bash\npandoc --version\n```\n\nThis confirms pandoc is available and shows the version number. Note that pandoc itself doesn't generate PDFs directly—it delegates to external PDF engines.\n\n### Step 2: Check Available PDF Engines\n\nIdentify which PDF engines are installed on the system:\n\n```bash\nwhich pdflatex xelatex lualatex wkhtmltopdf pdfroff 2>\u002Fdev\u002Fnull || echo \"Checking individual engines...\"\nwhich pdflatex\nwhich xelatex\nwhich lualatex\nwhich wkhtmltopdf\n```\n\nCommon engines and their characteristics:\n- **pdflatex**: Fast, widely available, good for basic documents\n- **xelatex**: Better Unicode\u002Ffont support, recommended for complex documents\n- **lualatex**: Advanced typography, Lua scripting support\n- **wkhtmltopdf**: HTML-to-PDF conversion, good for web-style documents\n\n### Step 3: Attempt Conversion with Explicit Engine\n\nRetry the conversion with an explicit `--pdf-engine` flag:\n\n```bash\npandoc input.md -o output.pdf --pdf-engine=xelatex\n```\n\nTry engines in this order:\n1. `xelatex` (best Unicode support)\n2. `pdflatex` (most widely available)\n3. `lualatex` (if xelatex fails)\n4. `wkhtmltopdf` (for HTML-heavy content)\n\n### Step 4: Capture Full stderr Output\n\nAlways capture the complete error output before falling back:\n\n```bash\npandoc input.md -o output.pdf --pdf-engine=xelatex 2>&1 | tee pandoc_error.log\n```\n\nThis preserves the full error message for analysis. Common error patterns:\n- **Font errors**: Missing LaTeX packages or fonts\n- **Package errors**: Missing LaTeX packages (use `tlmgr install \u003Cpackage>`)\n- **Syntax errors**: Issues in the source document\n\n### Step 5: Install Missing Dependencies (if needed)\n\nIf errors indicate missing LaTeX packages:\n\n```bash\n# For TeX Live\ntlmgr install \u003Cpackage-name>\n\n# For Debian\u002FUbuntu\napt-get install texlive-latex-extra texlive-fonts-recommended\n\n# For macOS with Homebrew\nbrew install --cask mactex\n```\n\n### Step 6: Fallback Strategies\n\nIf all engines fail, consider:\n1. Convert to HTML first, then use wkhtmltopdf\n2. Simplify the document (remove complex formatting)\n3. Use an online conversion service\n4. Generate PDF from a different format (e.g., DOCX via LibreOffice)\n\n## Example Complete Workflow\n\n```bash\n#!\u002Fbin\u002Fbash\n# pandoc-pdf-debug.sh\n\nINPUT_FILE=\"$1\"\nOUTPUT_FILE=\"${INPUT_FILE%.md}.pdf\"\n\necho \"=== Pandoc PDF Conversion Debug ===\"\necho \"Input: $INPUT_FILE\"\necho \"Output: $OUTPUT_FILE\"\n\n# Step 1: Verify pandoc\necho -e \"\\n[1] Checking pandoc version...\"\npandoc --version | head -1\n\n# Step 2: Check engines\necho -e \"\\n[2] Checking available PDF engines...\"\nfor engine in pdflatex xelatex lualatex wkhtmltopdf; do\n    if which \"$engine\" &>\u002Fdev\u002Fnull; then\n        echo \"  ✓ $engine: $(which $engine)\"\n    else\n        echo \"  ✗ $engine: not found\"\n    fi\ndone\n\n# Step 3: Try conversion with xelatex\necho -e \"\\n[3] Attempting conversion with xelatex...\"\npandoc \"$INPUT_FILE\" -o \"$OUTPUT_FILE\" --pdf-engine=xelatex 2>&1 | tee \u002Ftmp\u002Fpandoc_error.log\n\nif [ $? -eq 0 ]; then\n    echo \"✓ Conversion successful!\"\nelse\n    echo \"✗ Conversion failed. Check \u002Ftmp\u002Fpandoc_error.log for details\"\n    echo \"Attempting fallback with pdflatex...\"\n    pandoc \"$INPUT_FILE\" -o \"$OUTPUT_FILE\" --pdf-engine=pdflatex 2>&1\nfi\n```\n\n## Quick Reference\n\n| Command | Purpose |\n|---------|---------|\n| `pandoc --version` | Verify pandoc installation |\n| `which xelatex` | Check if xelatex engine exists |\n| `pandoc file.md -o file.pdf --pdf-engine=xelatex` | Convert with explicit engine |\n| `... 2>&1 \\| tee error.log` | Capture full stderr output |\n| `tlmgr install \u003Cpkg>` | Install missing LaTeX package |","# Pandoc PDF Error Resolution\n\nThis skill provides a step-by-step workflow for diagnosing and resolving \"unknown error\" messages when using pandoc to generate PDFs.\n\n## When to Use\n\nUse this skill when:\n- Pandoc returns an \"unknown error\" during PDF conversion\n- The conversion succeeds for other formats (e.g., markdown, HTML) but fails for PDF\n- You need to identify which PDF engine is available and working\n\n## Step-by-Step Procedure\n\n### Step 1: Verify Pandoc Installation\n\nFirst, confirm pandoc is installed and check its version:\n\n```bash\npandoc --version\n```\n\nThis confirms pandoc is available and shows the version number. Note that pandoc itself doesn't generate PDFs directly—it delegates to external PDF engines.\n\n### Step 2: Check Available PDF Engines\n\nIdentify which PDF engines are installed on the system:\n\n```bash\nwhich pdflatex xelatex lualatex wkhtmltopdf pdfroff 2>\u002Fdev\u002Fnull || echo \"Checking individual engines...\"\nwhich pdflatex\nwhich xelatex\nwhich lualatex\nwhich wkhtmltopdf\n```\n\nCommon engines and their characteristics:\n- **pdflatex**: Fast, widely available, good for basic documents\n- **xelatex**: Better Unicode\u002Ffont support, recommended for complex documents\n- **lualatex**: Advanced typography, Lua scripting support\n- **wkhtmltopdf**: HTML-to-PDF conversion, good for web-style documents\n\n### Step 3: Attempt Conversion with Explicit Engine\n\nRetry the conversion with an explicit `--pdf-engine` flag:\n\n```bash\npandoc input.md -o output.pdf --pdf-engine=xelatex\n```\n\nTry engines in this order:\n1. `xelatex` (best Unicode support)\n2. `pdflatex` (most widely available)\n3. `lualatex` (if xelatex fails)\n4. `wkhtmltopdf` (for HTML-heavy content)\n\n### Step 4: Capture Full stderr Output\n\nAlways capture the complete error output before falling back:\n\n```bash\npandoc input.md -o output.pdf --pdf-engine=xelatex 2>&1 | tee pandoc_error.log\n```\n\nThis preserves the full error message for analysis. Common error patterns:\n- **Font errors**: Missing LaTeX packages or fonts\n- **Package errors**: Missing LaTeX packages (use `tlmgr install \u003Cpackage>`)\n- **Syntax errors**: Issues in the source document\n\n### Step 5: Install Missing Dependencies (if needed)\n\nIf errors indicate missing LaTeX packages:\n\n```bash\n# For TeX Live\ntlmgr install \u003Cpackage-name>\n\n# For Debian\u002FUbuntu\napt-get install texlive-latex-extra texlive-fonts-recommended\n\n# For macOS with Homebrew\nbrew install --cask mactex\n```\n\n### Step 6: Fallback Strategies\n\nIf all engines fail, consider:\n1. Convert to HTML first, then use wkhtmltopdf\n2. Simplify the document (remove complex formatting)\n3. Use an online conversion service\n4. Generate PDF from a different format (e.g., DOCX via LibreOffice)\n\n## Example Complete Workflow\n\n```bash\n#!\u002Fbin\u002Fbash\n# pandoc-pdf-debug.sh\n\nINPUT_FILE=\"$1\"\nOUTPUT_FILE=\"${INPUT_FILE%.md}.pdf\"\n\necho \"=== Pandoc PDF Conversion Debug ===\"\necho \"Input: $INPUT_FILE\"\necho \"Output: $OUTPUT_FILE\"\n\n# Step 1: Verify pandoc\necho -e \"\\n[1] Checking pandoc version...\"\npandoc --version | head -1\n\n# Step 2: Check engines\necho -e \"\\n[2] Checking available PDF engines...\"\nfor engine in pdflatex xelatex lualatex wkhtmltopdf; do\n    if which \"$engine\" &>\u002Fdev\u002Fnull; then\n        echo \"  ✓ $engine: $(which $engine)\"\n    else\n        echo \"  ✗ $engine: not found\"\n    fi\ndone\n\n# Step 3: Try conversion with xelatex\necho -e \"\\n[3] Attempting conversion with xelatex...\"\npandoc \"$INPUT_FILE\" -o \"$OUTPUT_FILE\" --pdf-engine=xelatex 2>&1 | tee \u002Ftmp\u002Fpandoc_error.log\n\nif [ $? -eq 0 ]; then\n    echo \"✓ Conversion successful!\"\nelse\n    echo \"✗ Conversion failed. Check \u002Ftmp\u002Fpandoc_error.log for details\"\n    echo \"Attempting fallback with pdflatex...\"\n    pandoc \"$INPUT_FILE\" -o \"$OUTPUT_FILE\" --pdf-engine=pdflatex 2>&1\nfi\n```\n\n## Quick Reference\n\n| Command | Purpose |\n|---------|---------|\n| `pandoc --version` | Verify pandoc installation |\n| `which xelatex` | Check if xelatex engine exists |\n| `pandoc file.md -o file.pdf --pdf-engine=xelatex` | Convert with explicit engine |\n| `... 2>&1 \\| tee error.log` | Capture full stderr output |\n| `tlmgr install \u003Cpkg>` | Install missing LaTeX package |",{"name":5,"description":7},"main","0650921d63895de3997bc81f1ff1d0ac67032072","gdpval_bench\u002Fskills\u002Fpandoc-pdf-error-resolution","https:\u002F\u002Fgithub.com\u002FUF-gzj\u002Fopenspace-claude-evolution","https:\u002F\u002Fgithub.com\u002FUF-gzj","2026-04-16 09:31:03",{"source":8,"skillName":5,"commands":47,"prompt":57,"zipAvailable":58},[48,51,54],{"tool":49,"command":50},"npx","npx skills add UF-gzj\u002Fopenspace-claude-evolution --skill pandoc-pdf-error-resolution",{"tool":52,"command":53},"bunx","bunx skills add UF-gzj\u002Fopenspace-claude-evolution --skill pandoc-pdf-error-resolution",{"tool":55,"command":56},"pnpm","pnpm dlx skills add UF-gzj\u002Fopenspace-claude-evolution --skill pandoc-pdf-error-resolution","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FUF-gzj\u002Fopenspace-claude-evolution\u002Fblob\u002Fmain\u002Fgdpval_bench\u002Fskills\u002Fpandoc-pdf-error-resolution\u002FSKILL.md",true,[60],{"path":61,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":64,"sourceHtmlUrl":65},".skill_id","OTHER","其他",41,"https:\u002F\u002Fgithub.com\u002FUF-gzj\u002Fopenspace-claude-evolution\u002Fblob\u002Fmain\u002Fgdpval_bench\u002Fskills\u002Fpandoc-pdf-error-resolution\u002F.skill_id",[67,90,107,116,146,162],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":73,"publishedAt":35},"01M6XCCXD3NCM2YKR3WNGBASPC","write-special-chars-ts-check","Workaround for write_file failures caused by special characters (apostrophes, backticks, template literals) using a Python heredoc script, plus a reliable TypeScript type-checking step that filters output to only the newly-written files to avoid being misled by pre-existing errors.","https:\u002F\u002Fgithub.com\u002FUF-gzj\u002Fopenspace-claude-evolution\u002Fblob\u002Fmain\u002Fshowcase\u002Fskills\u002Fwrite-special-chars-ts-check\u002FSKILL.md",[],[74,75,76,77,78,79,80,81,34,33,82,83,84,85,86,87,88,89],"check","write","write special chars ts check","typescript","filters","characters","Existing","type-checking","script","output","type","files","only","template","file","python",{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":96,"publishedAt":35},"01M6XCCT7E3J922Q345PBGSHPN","write-special-chars-readback","Workaround for write_file failures caused by special characters (apostrophes, backticks, template literals) using a Python heredoc script, with mandatory post-write verification via read_file and cleanup of \u002Ftmp helper scripts.","https:\u002F\u002Fgithub.com\u002FUF-gzj\u002Fopenspace-claude-evolution\u002Fblob\u002Fmain\u002Fshowcase\u002Fskills\u002Fwrite-special-chars-readback\u002FSKILL.md",[],[97,98,75,88,99,89,100,101,102,103,104,87,105,106,79,34,82],"readback","write special chars readback","helper","post","via","scripts","cleanup","read","verification","with",{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":113,"publishedAt":35},"01M6XCCMQX1R8B6FECWB3P63T7","write-special-chars-heredoc","Workaround for write_file failures caused by special characters (apostrophes, backticks, template literals) by using a Python heredoc script executed via shell.","https:\u002F\u002Fgithub.com\u002FUF-gzj\u002Fopenspace-claude-evolution\u002Fblob\u002Fmain\u002Fshowcase\u002Fskills\u002Fwrite-special-chars-heredoc\u002FSKILL.md",[],[114,75,79,115,82,101,87,88,89,34],"write special chars heredoc","shell",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":127,"publishedAt":35},"01M6XCCG41M994JJEX6VN52PEP","worldmonitor-reference","Curated architecture index of the WorldMonitor open-source dashboard. Reference for extracting patterns — vanilla TypeScript, Panel class hierarchy, service layer, CSS grid, API edge functions, refresh scheduler, and 60+ data source integrations.","https:\u002F\u002Fgithub.com\u002FUF-gzj\u002Fopenspace-claude-evolution\u002Fblob\u002Fmain\u002Fshowcase\u002Fskills\u002Fworldmonitor-reference\u002FSKILL.md",[122],{"categoryNo":123,"categoryName":124,"taxonomyType":125,"taxonomyTypeDesc":126},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[128,129,130,131,132,77,133,134,135,136,137,34,138,139,140,141,142,143,144,145],"reference","worldmonitor","worldmonitor reference","architecture","dashboard","css","scheduler","layer","hierarchy","source","extracting","panel","patterns","edge functions","integrations","open","api","data",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":150,"categories":151,"keywords":152,"publishedAt":35},"01M6XCCCHWNKG2W4VH9E6A10HF","virtual-list","Implement efficient virtual scrolling for rendering large lists with DOM recycling, chunk-based rendering, and performance optimizations","https:\u002F\u002Fgithub.com\u002FUF-gzj\u002Fopenspace-claude-evolution\u002Fblob\u002Fmain\u002Fshowcase\u002Fskills\u002Fvirtual-list\u002FSKILL.md",[],[153,154,155,156,34,157,106,158,159,160,161],"virtual list","list","virtual","chunk","dom","rendering","recycling","implement","performance",{"skillNo":163,"name":164,"nameZh":6,"description":165,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":166,"categories":167,"keywords":168,"publishedAt":35},"01M6XCC7X8PKMR2DEW91XGHYSV","verify-directory-structure","Diagnose and resolve file access issues by first verifying the directory structure.","https:\u002F\u002Fgithub.com\u002FUF-gzj\u002Fopenspace-claude-evolution\u002Fblob\u002Fmain\u002Fshowcase\u002Fskills\u002Fverify-directory-structure\u002FSKILL.md",[],[169,170,171,172,173,174,88,175,176,177],"directory","verify directory structure","structure","verify","access","first","issues","diagnose","file access"]