{"library":"parse-bmfont-xml","title":"BMFont XML Parser","description":"parse-bmfont-xml is a focused JavaScript library designed to parse XML-formatted BMFont (Bitmap Font) files generated by AngelCode BMFont. It takes a string or Buffer containing the XML data and converts it into a structured JavaScript object, adhering to the bmfont2json specification. The current stable version is 1.1.6, with the last update approximately seven years ago, indicating a mature but largely inactive maintenance status. Its primary differentiator is its singular focus on the BMFont XML format, providing a straightforward API for font data extraction, including character definitions, kerning pairs, and texture page references. It is suitable for both Node.js environments using `fs` and browser environments via XHR, though browser usage depends on internal DOM parsing APIs.","language":"javascript","status":"maintenance","last_verified":"Sun Apr 19","install":{"commands":["npm install parse-bmfont-xml"],"cli":null},"imports":["const parse = require('parse-bmfont-xml')","const parse = require('parse-bmfont-xml')"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"const fs = require('fs');\nconst parse = require('parse-bmfont-xml');\nconst path = require('path');\n\n// Create a dummy BMFont XML file for demonstration\nconst dummyXmlContent = `\n<font>\n    <info face=\"Arial\" size=\"32\" bold=\"0\" italic=\"0\" charset=\"\" unicode=\"0\" stretchH=\"100\" smooth=\"1\" aa=\"1\" padding=\"0,0,0,0\" spacing=\"1,1\" outline=\"0\"/>\n    <common lineHeight=\"32\" base=\"26\" scaleW=\"256\" scaleH=\"256\" pages=\"1\" packed=\"0\" alphaChnl=\"0\" redChnl=\"0\" greenChnl=\"0\" blueChnl=\"0\"/>\n    <pages>\n        <page id=\"0\" file=\"sheet0.png\"/>\n    </pages>\n    <chars count=\"1\">\n        <char id=\"65\" x=\"0\" y=\"0\" width=\"20\" height=\"28\" xoffset=\"0\" yoffset=\"4\" xadvance=\"20\" page=\"0\" chnl=\"15\"/>\n    </chars>\n    <kernings count=\"0\"/>\n</font>\n`;\n\nconst filePath = path.join(__dirname, 'dummy.fnt');\nfs.writeFileSync(filePath, dummyXmlContent);\n\n// Read and parse the BMFont file\nfs.readFile(filePath, (err, data) => {\n  if (err) {\n    console.error('Error reading file:', err);\n    return;\n  }\n  try {\n    const result = parse(data);\n    console.log('Font Face:', result.info.face);         // Expected: \"Arial\"\n    console.log('Pages:', result.pages);                 // Expected: [ 'sheet0.png' ]\n    console.log('Number of Chars:', result.chars.length); // Expected: 1\n    console.log('First Char ID:', result.chars[0].id);   // Expected: 65 (for 'A')\n  } catch (parseError) {\n    console.error('Error parsing BMFont XML:', parseError);\n  }\n});\n","lang":"javascript","description":"This quickstart demonstrates how to read an XML BMFont file using Node.js's `fs` module and parse its content into a JavaScript object, then access key properties like font face, pages, and character data.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}