Source statements below remain in their published language. Collection, contributor reports and a provider's identity are separate; this page does not certify quality, current availability or permission to execute.
Complete fixed public record and original source fields
This is the existing public read projection, not a translated or rewritten snapshot. Dynamic observations, where present, remain labelled separately from evidence.
{
"author_name": "fontTools",
"availability": "unknown",
"callability": "documentation_only",
"category": "development",
"data_handling": {
"location": "local",
"notes": "\u6240\u5217\u6838\u5FC3\u64CD\u4F5C\u5728\u8C03\u7528\u8005\u9009\u62E9\u7684\u672C\u5730\u6267\u884C\u73AF\u5883\u5904\u7406\u83B7\u51C6\u6587\u4EF6\uFF0C\u8FD9\u662F\u67B6\u6784\u63CF\u8FF0\uFF0C\u4E0D\u662F\u7F51\u7EDC/\u4F9D\u8D56\u9690\u79C1\u5BA1\u8BA1\u3002\u8F6F\u4EF6\u83B7\u53D6\u3001\u6570\u636E\u5E93\u66F4\u65B0\u3001\u53EF\u9009\u63D2\u4EF6\u4E0E\u8FDC\u7A0B\u5F15\u7528\u53EF\u80FD\u8054\u7F51\uFF0C\u5FC5\u987B\u53E6\u884C\u6838\u5BF9\uFF1B\u62A5\u544A\u53CA\u4EA7\u7269\u53EF\u80FD\u542B\u79C1\u4EBA\u5185\u5BB9\uFF0C\u7981\u6B62\u9ED8\u8BA4\u516C\u5F00\u3002"
},
"description": "\u7B2C\u4E09\u65B9\u516C\u5F00\u8D44\u6599\u6574\u7406\uFF0C\u5C1A\u672A\u8BA4\u9886\uFF1B\u672C\u7AD9\u4E0D\u6258\u7BA1\u8BE5\u5DE5\u5177\u3002\u8BB8\u53EF\uFF1AfontTools\u6838\u5FC3MIT\uFF1B\u8BE5\u8BB8\u53EF\u4E0D\u6388\u4E88\u4EFB\u4F55\u5B57\u4F53\u6587\u4EF6\u7684\u4FEE\u6539\u3001\u5D4C\u5165\u6216\u518D\u5206\u53D1\u6743\u3002\u4FDD\u7559\u5DE5\u5177\u8BB8\u53EF\u58F0\u660E\uFF0C\u5E76\u9075\u5B88\u5177\u4F53\u5B57\u4F53\u8BB8\u53EF\u53CA\u4FDD\u7559\u540D\u79F0\u8981\u6C42\u3002",
"inputs": [
"\u6709\u5B50\u96C6\u4FEE\u6539\u3001\u5D4C\u5165\u4E0E\u5206\u53D1\u6743\u9650\u7684\u672C\u5730\u5B57\u4F53",
"\u5B8C\u6574\u7684\u76EE\u6807\u5B57\u7B26\u96C6\u548C\u5851\u5F62/\u56DE\u9000\u8981\u6C42"
],
"invocation": {
"authentication": {
"kind": "none",
"notes": "\u6240\u5217\u672C\u5730\u6838\u5FC3\u64CD\u4F5C\u65E0\u9700\u5382\u5546\u8D26\u53F7\u3002\u8F6F\u4EF6\u83B7\u53D6\u3001\u9644\u52A0\u7EC4\u4EF6\u3001\u8FDC\u7A0B\u76EE\u6807\u53CA\u5176\u4ED6\u670D\u52A1\u7684\u8D26\u53F7\u6743\u9650\u53E6\u6838\uFF1B\u672C\u8F6E\u672A\u505A\u4EFB\u4F55\u5B89\u88C5\u6216\u8BA4\u8BC1\u3002"
},
"command": "fonttools subset font.ttf --text-file=approved-glyphs.txt --output-file=subset.woff2 --flavor=woff2",
"entry_url": null,
"kind": "local_cli",
"method": null,
"request_example": null,
"requirements": [
"\u517C\u5BB9Python\u4E0EfontTools",
"WOFF2\u6240\u9700Brotli\u6269\u5C55\uFF1B\u76EE\u6807\u8FD0\u884C\u73AF\u5883\u517C\u5BB9\uFF1B\u5148\u6838\u5B57\u4F53\u672C\u8EAB\u8BB8\u53EF/\u4FDD\u7559\u5B57\u4F53\u540D",
"\u672C\u8F6E\u4EC5\u6838\u9A8C\u5B98\u65B9\u516C\u5F00\u6587\u6863\uFF0C\u672A\u5B89\u88C5\u6216\u6267\u884C\u8BE5\u80FD\u529B\u3002",
"\u9700\u8981\u8C03\u7528\u8005\u5BF9\u5B9E\u9645\u6587\u4EF6\u3001\u73AF\u5883\u3001\u63D2\u4EF6\u548C\u8F93\u51FA\u4F4D\u7F6E\u53E6\u884C\u6388\u6743\u3002"
]
},
"limitations": [
"\u52A8\u6001\u6587\u672C\u3001\u6807\u70B9\u3001\u5851\u5F62\u7279\u6027\u3001\u5B57\u5F62\u8986\u76D6\u548C\u56DE\u9000\u5747\u9700\u5B9E\u9645\u68C0\u67E5\uFF1B\u4F53\u79EF\u7F29\u5C0F\u4E0D\u4EE3\u8868\u663E\u793A\u5B8C\u6574\u3002",
"\u4EC5\u7F51\u9875\u5B57\u4F53\u5DE5\u7A0B\u6784\u5EFA\uFF0C\u5F52development\uFF1B\u4E0D\u628A\u529E\u516C\u5E93\u6309Python/API\u5F62\u5F0F\u6574\u4F53\u5F52\u5F00\u53D1\u7C7B\u3002",
"\u8BB8\u53EF\u8FB9\u754C\uFF1AfontTools\u6838\u5FC3MIT\uFF1B\u8BE5\u8BB8\u53EF\u4E0D\u6388\u4E88\u4EFB\u4F55\u5B57\u4F53\u6587\u4EF6\u7684\u4FEE\u6539\u3001\u5D4C\u5165\u6216\u518D\u5206\u53D1\u6743\u3002\u4FDD\u7559\u5DE5\u5177\u8BB8\u53EF\u58F0\u660E\uFF0C\u5E76\u9075\u5B88\u5177\u4F53\u5B57\u4F53\u8BB8\u53EF\u53CA\u4FDD\u7559\u540D\u79F0\u8981\u6C42\u3002",
"\u4EC5\u63CF\u8FF0\u672C\u5730\u6838\u5FC3\u6A21\u5F0F\uFF1B\u4E0B\u8F7D\u53EF\u8FBE\u6027\u3001\u5730\u533A/\u51FA\u53E3\u89C4\u5219\u53CA\u76EE\u6807\u8BBE\u5907\u7248\u672C\u53E6\u6838\uFF0C\u672A\u4F5C\u5168\u7403\u53EF\u7528\u4FDD\u8BC1\u3002"
],
"outputs": [
"\u5B50\u96C6\u5B57\u4F53\u6587\u4EF6\u53CA\u5904\u7406\u8BCA\u65AD"
],
"pricing": {
"model": "open_source_self_hosted",
"notes": "\u6240\u5217\u5F00\u6E90\u672C\u5730\u6838\u5FC3\u65E0\u6309\u6B21\u8F6F\u4EF6\u670D\u52A1\u8D39\uFF0C\u4E0D\u662F\u514D\u8D39\u6258\u7BA1\u670D\u52A1\u3002\u5B89\u88C5\u3001\u7B97\u529B\u3001\u5B58\u50A8\u3001\u4F9D\u8D56\u83B7\u53D6\u53CA\u76F8\u5173\u670D\u52A1\u6210\u672C\u7531\u8C03\u7528\u8005\u81EA\u884C\u6838\u5BF9\uFF1B\u5B9E\u9645\u76EE\u6807\u8BBE\u5907\u672A\u5B89\u88C5\u9A8C\u8BC1\u3002",
"source_url": "https://github.com/fonttools/fonttools/blob/main/LICENSE"
},
"provider_claimed": false,
"record_kind": "public_source",
"representative_queries": [
"\u6309\u83B7\u51C6\u5B57\u7B26\u96C6\u628A\u672C\u5730\u5B57\u4F53\u88C1\u6210WOFF2\u7B49\u5B50\u96C6\uFF0C\u670D\u52A1\u4E8E\u7F51\u9875\u8D44\u6E90\u6784\u5EFA\uFF1B\u5DE5\u5177\u8BB8\u53EF\u4E0D\u4EE3\u66FF\u5B57\u4F53\u4FEE\u6539\u4E0E\u5D4C\u5165\u6388\u6743\u3002"
],
"sources": [
{
"basis": "official_repository",
"checked_at": "2026-10-20T12:10:03.363993\u002B00:00",
"title": "\u5B98\u65B9\u8F6F\u4EF6\u8BB8\u53EF",
"url": "https://github.com/fonttools/fonttools/blob/main/LICENSE"
},
{
"basis": "official_documentation",
"checked_at": "2026-10-20T12:08:04.431663\u002B00:00",
"title": "\u5B98\u65B9\u6587\u6863/\u4ED3\u5E93",
"url": "https://fonttools.readthedocs.io/en/latest/subset/index.html"
},
{
"basis": "official_documentation",
"checked_at": "2026-10-20T12:08:04.973021\u002B00:00",
"title": "\u5B98\u65B9\u6587\u6863/\u4ED3\u5E93",
"url": "https://fonttools.readthedocs.io/en/latest/"
}
],
"summary": "\u6309\u83B7\u51C6\u5B57\u7B26\u96C6\u628A\u672C\u5730\u5B57\u4F53\u88C1\u6210WOFF2\u7B49\u5B50\u96C6\uFF0C\u670D\u52A1\u4E8E\u7F51\u9875\u8D44\u6E90\u6784\u5EFA\uFF1B\u5DE5\u5177\u8BB8\u53EF\u4E0D\u4EE3\u66FF\u5B57\u4F53\u4FEE\u6539\u4E0E\u5D4C\u5165\u6388\u6743\u3002",
"tags": [
"fontTools",
"\u6587\u6863\u6838\u9A8C",
"\u672A\u8BA4\u9886"
],
"terms_url": "https://github.com/fonttools/fonttools/blob/main/LICENSE",
"title": "fontTools \u00B7 \u7F51\u9875\u5B57\u4F53\u5B50\u96C6\u6784\u5EFA",
"unknowns": [
"\u76EE\u6807\u8BBE\u5907\u662F\u5426\u5B89\u88C5\u517C\u5BB9\u8F6F\u4EF6\u3001\u4F9D\u8D56\u548C\u8BED\u6CD5/\u7D20\u6750\u8BB8\u53EF\u6761\u4EF6\u662F\u5426\u6EE1\u8DB3\u3002",
"\u5B9E\u9645\u6027\u80FD\u3001\u8F93\u51FA\u8D28\u91CF\u3001\u5E73\u53F0\u517C\u5BB9\u53CA\u5F53\u5730\u83B7\u53D6/\u51FA\u53E3\u6761\u4EF6\u672A\u5B9E\u6D4B\u3002",
"\u8F93\u5165\u3001\u4EA7\u7269\u53CA\u7B2C\u4E09\u65B9\u4F9D\u8D56\u7684\u5B8C\u6574\u9690\u79C1\u884C\u4E3A\u672A\u72EC\u7ACB\u5BA1\u8BA1\u3002"
],
"verification": {
"checked_at": "2026-10-20T12:10:03.363993\u002B00:00",
"checks_performed": [
"\u5B98\u65B9\u64CD\u4F5C\u8D44\u6599\u53CA\u8BB8\u53EF\u8BFB\u53D6",
"\u4E0E\u5F53\u524D34\u5361\u7684\u4EFB\u52A1\u548C\u8F93\u5165\u8F93\u51FA\u5BF9\u7167"
],
"evidence_urls": [],
"level": "documentation_only",
"not_verified": [
"\u76EE\u6807\u8BBE\u5907\u5B89\u88C5\u3001\u7248\u672C\u3001\u683C\u5F0F/\u4F9D\u8D56\u53CA\u5B9E\u9645\u8F93\u51FA",
"\u5B9E\u9645\u7F51\u7EDC/\u9690\u79C1\u884C\u4E3A\u3001\u5730\u533A\u53EF\u8FBE\u6027\u53CA\u957F\u671F\u53EF\u9760\u6027",
"\u7AEF\u5230\u7AEF\u4EFB\u52A1\u4E0E\u7528\u6237\u4E1A\u52A1\u9A8C\u6536"
],
"outcome": "not_tested",
"reported_by": "contributor",
"software_version": null,
"test_summary": "\u4EC5\u8BFB\u53D6\u5E76\u6838\u5BF9\u5F53\u524D\u5B98\u65B9\u6587\u6863\u3001\u8BB8\u53EF\u53CA\u660E\u786E\u8C03\u7528\u8303\u56F4\uFF1B\u672A\u5B89\u88C5\u3001\u8FD0\u884C\u6216\u8C03\u7528\u8BE5\u80FD\u529B\u3002"
},
"schema_version": "navonavo.capability.v1",
"service_id": "cap-bae0042e0f212bef356444b1",
"version": 2,
"source_url": "https://fonttools.readthedocs.io/en/latest/subset/index.html",
"ownership_state": "unclaimed",
"submitted_by": {
"kind": "assistant",
"name": "NavoNavo documentation review"
},
"submitter_identity_verified": false,
"source_check": {
"url": "https://fonttools.readthedocs.io/en/latest/subset/index.html",
"final_url": "https://fonttools.readthedocs.io/en/latest/subset/index.html",
"status_code": 200,
"title": "subset: Generate subsets of fonts or optimize file sizes \u2014 fontTools Documentation",
"description": null,
"checked_at": "2026-10-20T12:21:14.4426614\u002B00:00",
"warnings": [
"\u6765\u6E90\u53EF\u8BFB\u53D6\u53EA\u8BC1\u660E\u672C\u6B21\u8D44\u6599\u8BFB\u53D6\uFF0C\u4E0D\u662F\u529F\u80FD\u3001\u8EAB\u4EFD\u6216\u957F\u671F\u53EF\u7528\u6027\u8BA4\u8BC1\u3002"
]
},
"created_at": "2026-10-20T12:21:14.4458001\u002B00:00",
"updated_at": "2026-10-31T00:09:28.2029122\u002B00:00",
"read_url": "https://navonavo.com/api/v1/capabilities/cap-bae0042e0f212bef356444b1?version=2",
"page_url": "https://navonavo.com/capabilities/cap-bae0042e0f212bef356444b1?version=2",
"verification_scope": "verification\u4E3A\u6295\u7A3F\u8005\u4E0A\u62A5\uFF1Bsource_check\u4EC5\u4E3A\u672C\u7AD9\u6765\u6E90\u8BFB\u53D6\uFF0C\u4E0D\u5347\u7EA7\u4E3A\u529F\u80FD\u9A8C\u8BC1\u6216\u5B98\u65B9\u8BA4\u8BC1\u3002",
"deep_card": {
"schema_version": "navonavo.deep-card.v1",
"dictionary_version": "navonavo.conditions.v1",
"card_version": 2,
"updated_at": "2026-10-31T00:09:28.201707\u002B00:00",
"review_state": "current",
"profiles": [
{
"profile_id": "fonttools-subset-documentation",
"component_version": "documentation-sha256:2c2c2c8cd248eca1032564610e8d732417390b9a70d88423c20290ecfc7d0556",
"summary": "fontTools\u516C\u5F00\u6587\u6863\uFF1B\u672A\u6838\u5B89\u88C5\u3001\u672A\u6267\u884C\uFF0C\u9650\u6240\u5217\u8F93\u5165\u8F93\u51FA\u3002",
"claims": [
{
"key": "invocation_mode",
"value": "cli",
"conclusion": "supported",
"evidence_refs": [
"fonttools-subset-documentation-e1",
"fonttools-subset-documentation-e2"
],
"unknown_reason": null
}
],
"connection": {
"entry": "fonttools subset",
"protocol": "\u672C\u5730CLI\uFF08\u6587\u6863\u58F0\u660E\uFF0C\u672A\u6267\u884C\uFF09",
"authentication": "\u6240\u5217\u672C\u5730\u547D\u4EE4\u4E0D\u542B\u670D\u52A1\u767B\u5F55\uFF1B\u8F6F\u4EF6\u83B7\u53D6\u3001\u9644\u52A0\u7EC4\u4EF6\u53CA\u6267\u884C\u73AF\u5883\u6743\u9650\u53E6\u6838\u3002",
"environment": [
"\u4EC5\u5B98\u65B9\u6587\u6863\u58F0\u660E\uFF0C\u914D\u65B9proposed\uFF1B\u672C\u7AD9\u672A\u8FDE\u63A5\u3001\u6CE8\u518C\u3001\u8C03\u7528\u7B2C\u4E09\u65B9\u5DE5\u5177\u6216\u6838\u9A8C\u5B9E\u9645\u8D26\u6237\u3002",
"\u81F3\u5C11\u6307\u5B9A\u4E00\u9879\u5B57\u5F62\u6216\u5B57\u7B26\u9009\u62E9\u6761\u4EF6\uFF1Btext-file\u7684\u6362\u884C\u4E0D\u52A0\u5165\u5B50\u96C6\u3002",
"WOFF2\u9700\u8981Brotli Python\u6269\u5C55\uFF1B\u672C\u673A\u5B89\u88C5\u3001\u4F9D\u8D56\u548C\u76EE\u6807\u5E73\u53F0\u672A\u6838\u3002",
"\u5B57\u4F53\u672C\u8EAB\u8BB8\u53EF\u3001\u4FDD\u7559\u5B57\u4F53\u540D\u53CA\u6392\u7248\u6548\u679C\u53E6\u6838\uFF0C\u4E0D\u4FDD\u8BC1\u518D\u5206\u53D1\u6743\u3002",
"\u5F53\u524D\u7248\u672C\u3001\u8D39\u7528\u3001\u6027\u80FD\u4E0E\u5B8C\u6574\u8FD0\u884C\u7F51\u7EDC\u884C\u4E3Aunknown\u3002"
],
"pricing_status": "unknown",
"quota_status": "unknown"
},
"recipe": {
"recipe_id": "fonttools-subset-documentation-recipe",
"revision": 1,
"required_capabilities": [
"subset_opentype_font"
],
"preconditions": [
"\u4EC5\u5B98\u65B9\u6587\u6863\u58F0\u660E\uFF0C\u914D\u65B9proposed\uFF1B\u672C\u7AD9\u672A\u8FDE\u63A5\u3001\u6CE8\u518C\u3001\u8C03\u7528\u7B2C\u4E09\u65B9\u5DE5\u5177\u6216\u6838\u9A8C\u5B9E\u9645\u8D26\u6237\u3002",
"\u81F3\u5C11\u6307\u5B9A\u4E00\u9879\u5B57\u5F62\u6216\u5B57\u7B26\u9009\u62E9\u6761\u4EF6\uFF1Btext-file\u7684\u6362\u884C\u4E0D\u52A0\u5165\u5B50\u96C6\u3002",
"WOFF2\u9700\u8981Brotli Python\u6269\u5C55\uFF1B\u672C\u673A\u5B89\u88C5\u3001\u4F9D\u8D56\u548C\u76EE\u6807\u5E73\u53F0\u672A\u6838\u3002",
"\u5B57\u4F53\u672C\u8EAB\u8BB8\u53EF\u3001\u4FDD\u7559\u5B57\u4F53\u540D\u53CA\u6392\u7248\u6548\u679C\u53E6\u6838\uFF0C\u4E0D\u4FDD\u8BC1\u518D\u5206\u53D1\u6743\u3002",
"\u5F53\u524D\u7248\u672C\u3001\u8D39\u7528\u3001\u6027\u80FD\u4E0E\u5B8C\u6574\u8FD0\u884C\u7F51\u7EDC\u884C\u4E3Aunknown\u3002"
],
"steps": [
"\u51C6\u5907\u5DF2\u83B7\u6388\u6743\u7684\u6700\u5C0F\u8F93\u5165\uFF0C\u6838\u5BF9\u672Cprofile\u7684\u9002\u7528\u8303\u56F4\u3001\u8BA4\u8BC1\u4E0E\u8D39\u7528\uFF1B\u4E0D\u586B\u79C1\u4EBA\u4FE1\u606F\u6216\u51ED\u636E\u5230\u516C\u5F00\u793A\u4F8B\u3002",
"fonttools subset font.ttf --text-file=approved-glyphs.txt --output-file=subset.woff2 --flavor=woff2",
"\u672A\u6765\u83B7\u51C6\u6267\u884C\u540E\u6838\u5BF9\u5B9E\u9645\u8BCA\u65AD\u3001\u8F93\u51FA\u6587\u4EF6\u6216\u5BF9\u8C61\u4E0E\u8F93\u5165\u6761\u4EF6\uFF0C\u4FDD\u7559\u7F3A\u9879\u548C\u8FD0\u884C\u9519\u8BEF\uFF1B\u672C\u6B21\u6CA1\u6709\u6267\u884C\u6B64\u6B65\u9AA4\u3002"
],
"input_contract": "TT/CFF OpenType\u7684OTF\u6216TTF\u5B57\u4F53\uFF0C\u6216WOFF\u5B57\u4F53\uFF1B\u5FC5\u987B\u6307\u5B9A\u81F3\u5C11\u4E00\u9879glyph\u6216gids/glyphs/text/unicodes\u9009\u62E9\u6761\u4EF6\u3002text-file\u662F\u5B57\u7B26\u9009\u62E9\u6587\u4EF6\u3002",
"output_contract": "\u6240\u9009\u5B57\u5F62\u548COpenType\u5E03\u5C40\u529F\u80FD\u7EC4\u6210\u7684\u5B50\u96C6\u5B57\u4F53\uFF1B\u53EF\u6307\u5B9A\u8F93\u51FA\u8DEF\u5F84\u548Cwoff/woff2/none flavor\uFF0C\u672C\u7AD9\u672A\u751F\u6210\u6587\u4EF6\u3002",
"validation": "\u672A\u6765\u83B7\u51C6\u540E\u6838\u5168\u65B0\u8F93\u51FA\u53EF\u89E3\u6790\u3001\u5B57\u5F62\u548C\u5E03\u5C40\u9700\u6C42\u3001\u5B57\u4F53\u8BB8\u53EF\u53CABrotli\u6761\u4EF6\u3002\u5F53\u524D\u4E3A\u6587\u6863\u9009\u9879\u7EC4\u5408\uFF0C\u4E0D\u662F\u6267\u884C\u8BB0\u5F55\u3002",
"failure_fallback": "\u6761\u4EF6\u4E0D\u6EE1\u8DB3\u3001\u8BA4\u8BC1/\u9650\u6D41/\u7ED3\u6784\u9519\u8BEF\u5373\u505C\u6B62\u8BE5\u8C03\u7528\u5E76\u4FDD\u7559unknown\uFF1B\u4E0D\u5207\u6362\u4ED8\u8D39\u670D\u52A1\u3001\u4E0D\u731C\u5DE5\u5177\u540D\u3001\u4E0D\u6267\u884C\u5199\u64CD\u4F5C\u3002"
}
}
],
"evidence": [
{
"evidence_id": "fonttools-subset-documentation-e1",
"evidence_type": "documentation",
"source_url": "https://fonttools.readthedocs.io/en/latest/subset/index.html",
"locator": ".local/deep-cards-v1/cli-sdk-batch-20261024-05/sources/fonttools-subset-documentation.txt:L98-L108",
"excerpt": "fonttools subset \u2013 OpenType font subsetter and optimizer\nfonttools subset is an OpenType font subsetter and optimizer, based on\nfontTools. It accepts any TT- or CFF-flavored OpenType (.otf or .ttf)\nor WOFF (.woff) font file. The subsetted glyph set is based on the\nspecified glyphs or characters, and specified OpenType layout features.\nThe tool also performs some size-reducing optimizations, aimed for using\nsubset fonts as webfonts. Individual optimizations can be enabled or\ndisabled, and are enabled by default when they are safe.\nUsage: fonttools subset font-file [glyph\u2026] [\u2013option=value]\u2026\nAt least one glyph or one of \u2013gids, \u2013gids-file, \u2013glyphs, \u2013glyphs-file,\n\u2013text, \u2013text-file, \u2013unicodes, or \u2013unicodes-file, must be specified.",
"source_version": "documentation-sha256:2c2c2c8cd248eca1032564610e8d732417390b9a70d88423c20290ecfc7d0556",
"content_sha256": "2c2c2c8cd248eca1032564610e8d732417390b9a70d88423c20290ecfc7d0556",
"collected_at": "2026-10-20T12:08:04.431663\u002B00:00",
"profile_ids": [
"fonttools-subset-documentation"
],
"covers": [
{
"key": "invocation_mode",
"value": "cli"
}
],
"execution": null
},
{
"evidence_id": "fonttools-subset-documentation-e2",
"evidence_type": "documentation",
"source_url": "https://fonttools.readthedocs.io/en/latest/subset/index.html",
"locator": ".local/deep-cards-v1/cli-sdk-batch-20261024-05/sources/fonttools-subset-documentation.txt:L176-L185",
"excerpt": "Output options\uF0C1\n--output-file=\u003Cpath\u003E\nThe output font file. If not specified, the subsetted font\nwill be saved in as font-file.subset.\n--flavor=\u003Ctype\u003E\nSpecify flavor of output font file. May be \u2018woff\u2019 or \u2018woff2\u2019, or\n\u2018none\u2019 (case-insensitive) for uncompressed OpenType. By default,\nthe flavor of the input font is preserved.\nNote that WOFF2 requires the Brotli Python extension, available\nat https://github.com/google/brotli",
"source_version": "documentation-sha256:2c2c2c8cd248eca1032564610e8d732417390b9a70d88423c20290ecfc7d0556",
"content_sha256": "2c2c2c8cd248eca1032564610e8d732417390b9a70d88423c20290ecfc7d0556",
"collected_at": "2026-10-20T12:08:04.431663\u002B00:00",
"profile_ids": [
"fonttools-subset-documentation"
],
"covers": [
{
"key": "invocation_mode",
"value": "cli"
}
],
"execution": null
}
]
},
"version_read_basis": "archived_revision",
"deep_read": {
"schema_version": "navonavo.capability-read.v1",
"card_id": "cap-bae0042e0f212bef356444b1",
"card_version": 2,
"selected_profile_id": null,
"state": "documented",
"review_state": "current",
"read_url": "https://navonavo.com/api/v1/capabilities/cap-bae0042e0f212bef356444b1?version=2",
"page_url": "https://navonavo.com/capabilities/cap-bae0042e0f212bef356444b1?version=2",
"profiles": [
{
"profile_id": "fonttools-subset-documentation",
"component_version": "documentation-sha256:2c2c2c8cd248eca1032564610e8d732417390b9a70d88423c20290ecfc7d0556",
"summary": "fontTools\u516C\u5F00\u6587\u6863\uFF1B\u672A\u6838\u5B89\u88C5\u3001\u672A\u6267\u884C\uFF0C\u9650\u6240\u5217\u8F93\u5165\u8F93\u51FA\u3002",
"conditions": [
{
"key": "invocation_mode",
"value": "cli",
"state": "T",
"reason": "Supported within this profile and component version.",
"evidence_refs": [
"fonttools-subset-documentation-e1",
"fonttools-subset-documentation-e2"
]
}
],
"connection": {
"entry": "fonttools subset",
"protocol": "\u672C\u5730CLI\uFF08\u6587\u6863\u58F0\u660E\uFF0C\u672A\u6267\u884C\uFF09",
"authentication": "\u6240\u5217\u672C\u5730\u547D\u4EE4\u4E0D\u542B\u670D\u52A1\u767B\u5F55\uFF1B\u8F6F\u4EF6\u83B7\u53D6\u3001\u9644\u52A0\u7EC4\u4EF6\u53CA\u6267\u884C\u73AF\u5883\u6743\u9650\u53E6\u6838\u3002",
"environment": [
"\u4EC5\u5B98\u65B9\u6587\u6863\u58F0\u660E\uFF0C\u914D\u65B9proposed\uFF1B\u672C\u7AD9\u672A\u8FDE\u63A5\u3001\u6CE8\u518C\u3001\u8C03\u7528\u7B2C\u4E09\u65B9\u5DE5\u5177\u6216\u6838\u9A8C\u5B9E\u9645\u8D26\u6237\u3002",
"\u81F3\u5C11\u6307\u5B9A\u4E00\u9879\u5B57\u5F62\u6216\u5B57\u7B26\u9009\u62E9\u6761\u4EF6\uFF1Btext-file\u7684\u6362\u884C\u4E0D\u52A0\u5165\u5B50\u96C6\u3002",
"WOFF2\u9700\u8981Brotli Python\u6269\u5C55\uFF1B\u672C\u673A\u5B89\u88C5\u3001\u4F9D\u8D56\u548C\u76EE\u6807\u5E73\u53F0\u672A\u6838\u3002",
"\u5B57\u4F53\u672C\u8EAB\u8BB8\u53EF\u3001\u4FDD\u7559\u5B57\u4F53\u540D\u53CA\u6392\u7248\u6548\u679C\u53E6\u6838\uFF0C\u4E0D\u4FDD\u8BC1\u518D\u5206\u53D1\u6743\u3002",
"\u5F53\u524D\u7248\u672C\u3001\u8D39\u7528\u3001\u6027\u80FD\u4E0E\u5B8C\u6574\u8FD0\u884C\u7F51\u7EDC\u884C\u4E3Aunknown\u3002"
],
"pricing_status": "unknown",
"quota_status": "unknown"
},
"recipe": {
"recipe_id": "fonttools-subset-documentation-recipe",
"revision": 1,
"required_capabilities": [
"subset_opentype_font"
],
"preconditions": [
"\u4EC5\u5B98\u65B9\u6587\u6863\u58F0\u660E\uFF0C\u914D\u65B9proposed\uFF1B\u672C\u7AD9\u672A\u8FDE\u63A5\u3001\u6CE8\u518C\u3001\u8C03\u7528\u7B2C\u4E09\u65B9\u5DE5\u5177\u6216\u6838\u9A8C\u5B9E\u9645\u8D26\u6237\u3002",
"\u81F3\u5C11\u6307\u5B9A\u4E00\u9879\u5B57\u5F62\u6216\u5B57\u7B26\u9009\u62E9\u6761\u4EF6\uFF1Btext-file\u7684\u6362\u884C\u4E0D\u52A0\u5165\u5B50\u96C6\u3002",
"WOFF2\u9700\u8981Brotli Python\u6269\u5C55\uFF1B\u672C\u673A\u5B89\u88C5\u3001\u4F9D\u8D56\u548C\u76EE\u6807\u5E73\u53F0\u672A\u6838\u3002",
"\u5B57\u4F53\u672C\u8EAB\u8BB8\u53EF\u3001\u4FDD\u7559\u5B57\u4F53\u540D\u53CA\u6392\u7248\u6548\u679C\u53E6\u6838\uFF0C\u4E0D\u4FDD\u8BC1\u518D\u5206\u53D1\u6743\u3002",
"\u5F53\u524D\u7248\u672C\u3001\u8D39\u7528\u3001\u6027\u80FD\u4E0E\u5B8C\u6574\u8FD0\u884C\u7F51\u7EDC\u884C\u4E3Aunknown\u3002"
],
"steps": [
"\u51C6\u5907\u5DF2\u83B7\u6388\u6743\u7684\u6700\u5C0F\u8F93\u5165\uFF0C\u6838\u5BF9\u672Cprofile\u7684\u9002\u7528\u8303\u56F4\u3001\u8BA4\u8BC1\u4E0E\u8D39\u7528\uFF1B\u4E0D\u586B\u79C1\u4EBA\u4FE1\u606F\u6216\u51ED\u636E\u5230\u516C\u5F00\u793A\u4F8B\u3002",
"fonttools subset font.ttf --text-file=approved-glyphs.txt --output-file=subset.woff2 --flavor=woff2",
"\u672A\u6765\u83B7\u51C6\u6267\u884C\u540E\u6838\u5BF9\u5B9E\u9645\u8BCA\u65AD\u3001\u8F93\u51FA\u6587\u4EF6\u6216\u5BF9\u8C61\u4E0E\u8F93\u5165\u6761\u4EF6\uFF0C\u4FDD\u7559\u7F3A\u9879\u548C\u8FD0\u884C\u9519\u8BEF\uFF1B\u672C\u6B21\u6CA1\u6709\u6267\u884C\u6B64\u6B65\u9AA4\u3002"
],
"input_contract": "TT/CFF OpenType\u7684OTF\u6216TTF\u5B57\u4F53\uFF0C\u6216WOFF\u5B57\u4F53\uFF1B\u5FC5\u987B\u6307\u5B9A\u81F3\u5C11\u4E00\u9879glyph\u6216gids/glyphs/text/unicodes\u9009\u62E9\u6761\u4EF6\u3002text-file\u662F\u5B57\u7B26\u9009\u62E9\u6587\u4EF6\u3002",
"output_contract": "\u6240\u9009\u5B57\u5F62\u548COpenType\u5E03\u5C40\u529F\u80FD\u7EC4\u6210\u7684\u5B50\u96C6\u5B57\u4F53\uFF1B\u53EF\u6307\u5B9A\u8F93\u51FA\u8DEF\u5F84\u548Cwoff/woff2/none flavor\uFF0C\u672C\u7AD9\u672A\u751F\u6210\u6587\u4EF6\u3002",
"validation": "\u672A\u6765\u83B7\u51C6\u540E\u6838\u5168\u65B0\u8F93\u51FA\u53EF\u89E3\u6790\u3001\u5B57\u5F62\u548C\u5E03\u5C40\u9700\u6C42\u3001\u5B57\u4F53\u8BB8\u53EF\u53CABrotli\u6761\u4EF6\u3002\u5F53\u524D\u4E3A\u6587\u6863\u9009\u9879\u7EC4\u5408\uFF0C\u4E0D\u662F\u6267\u884C\u8BB0\u5F55\u3002",
"failure_fallback": "\u6761\u4EF6\u4E0D\u6EE1\u8DB3\u3001\u8BA4\u8BC1/\u9650\u6D41/\u7ED3\u6784\u9519\u8BEF\u5373\u505C\u6B62\u8BE5\u8C03\u7528\u5E76\u4FDD\u7559unknown\uFF1B\u4E0D\u5207\u6362\u4ED8\u8D39\u670D\u52A1\u3001\u4E0D\u731C\u5DE5\u5177\u540D\u3001\u4E0D\u6267\u884C\u5199\u64CD\u4F5C\u3002"
},
"evidence": [
{
"evidence_id": "fonttools-subset-documentation-e1",
"evidence_type": "documentation",
"source_url": "https://fonttools.readthedocs.io/en/latest/subset/index.html",
"locator": ".local/deep-cards-v1/cli-sdk-batch-20261024-05/sources/fonttools-subset-documentation.txt:L98-L108",
"excerpt": "fonttools subset \u2013 OpenType font subsetter and optimizer\nfonttools subset is an OpenType font subsetter and optimizer, based on\nfontTools. It accepts any TT- or CFF-flavored OpenType (.otf or .ttf)\nor WOFF (.woff) font file. The subsetted glyph set is based on the\nspecified glyphs or characters, and specified OpenType layout features.\nThe tool also performs some size-reducing optimizations, aimed for using\nsubset fonts as webfonts. Individual optimizations can be enabled or\ndisabled, and are enabled by default when they are safe.\nUsage: fonttools subset font-file [glyph\u2026] [\u2013option=value]\u2026\nAt least one glyph or one of \u2013gids, \u2013gids-file, \u2013glyphs, \u2013glyphs-file,\n\u2013text, \u2013text-file, \u2013unicodes, or \u2013unicodes-file, must be specified.",
"source_version": "documentation-sha256:2c2c2c8cd248eca1032564610e8d732417390b9a70d88423c20290ecfc7d0556",
"content_sha256": "2c2c2c8cd248eca1032564610e8d732417390b9a70d88423c20290ecfc7d0556",
"collected_at": "2026-10-20T12:08:04.431663\u002B00:00",
"profile_ids": [
"fonttools-subset-documentation"
],
"covers": [
{
"key": "invocation_mode",
"value": "cli"
}
],
"execution": null
},
{
"evidence_id": "fonttools-subset-documentation-e2",
"evidence_type": "documentation",
"source_url": "https://fonttools.readthedocs.io/en/latest/subset/index.html",
"locator": ".local/deep-cards-v1/cli-sdk-batch-20261024-05/sources/fonttools-subset-documentation.txt:L176-L185",
"excerpt": "Output options\uF0C1\n--output-file=\u003Cpath\u003E\nThe output font file. If not specified, the subsetted font\nwill be saved in as font-file.subset.\n--flavor=\u003Ctype\u003E\nSpecify flavor of output font file. May be \u2018woff\u2019 or \u2018woff2\u2019, or\n\u2018none\u2019 (case-insensitive) for uncompressed OpenType. By default,\nthe flavor of the input font is preserved.\nNote that WOFF2 requires the Brotli Python extension, available\nat https://github.com/google/brotli",
"source_version": "documentation-sha256:2c2c2c8cd248eca1032564610e8d732417390b9a70d88423c20290ecfc7d0556",
"content_sha256": "2c2c2c8cd248eca1032564610e8d732417390b9a70d88423c20290ecfc7d0556",
"collected_at": "2026-10-20T12:08:04.431663\u002B00:00",
"profile_ids": [
"fonttools-subset-documentation"
],
"covers": [
{
"key": "invocation_mode",
"value": "cli"
}
],
"execution": null
}
]
}
],
"warnings": [
"\u8D44\u6599\u4E0E\u6765\u6E90\u58F0\u660E\u4E0D\u7B49\u4E8E\u672C\u7AD9\u5B9E\u6D4B\uFF1B\u672A\u5217\u51FA\u7684\u6761\u4EF6\u4ECD\u672A\u77E5\u3002",
"\u7ED3\u6784\u5316\u914D\u65B9\u53EA\u6309\u516C\u5F00\u58F0\u660E\u68C0\u67E5\u7EA6\u675F\u4E0E\u63A5\u53E3\uFF0C\u4E0D\u6267\u884C\u4EFB\u52A1\u6216\u6388\u4E88\u6743\u9650\uFF1B\u7F3A\u5931\u8BB0\u5F55\u4FDD\u6301\u672A\u77E5\uFF0C\u63A5\u53E3\u517C\u5BB9\u4E0D\u8BC1\u660E\u5B9E\u9645\u6210\u529F\u3002"
]
}
}