golchha21/htmlforge
Composer 安装命令:
composer require golchha21/htmlforge
包简介
A standards-first HTML compiler for PHP that generates W3C-compliant, accessibility-validated HTML by construction.
README 文档
README
HTMLForge is a standards-first HTML compiler for PHP.
It generates W3C-compliant, accessibility-validated HTML by compiling an explicit Abstract Syntax Tree (AST) through a deterministic validation pipeline.
HTMLForge does not guess, auto-fix, or silently tolerate invalid markup.
If HTML renders, it is structurally correct and policy-compliant.
Why HTMLForge
Most HTML generation tools:
- concatenate strings
- rely on browsers to fix mistakes
- mix validation, rendering, and presentation
- fail late and unclearly
HTMLForge takes a different approach:
- HTML is treated as a language with rules
- Validation happens before rendering
- Errors are data, not crashes
- Accessibility is enforced by default
Core Concepts
AST-first design
HTMLForge builds an immutable Abstract Syntax Tree (AST).
- No raw HTML strings are rendered directly
- Every element, attribute, and text node is explicit
- Invalid structures cannot be constructed accidentally
Deterministic validation (v1.2)
All validation happens explicitly through a multi-phase validator pipeline:
- Document structure
- Content model rules
- Attribute validity
- Attribute value constraints
- Accessibility (WCAG-aware)
- ARIA semantics
- Document metadata
- Policy & security rules
Validation always runs before rendering.
In v1.2, validators emit violations instead of throwing, which guarantees:
- All violations are collected
- Multiple failures on multiple nodes are all reported
- No early exits or hidden errors
Each violation maps to:
- a stable rule ID
- a single semantic failure
- an exact element path
Policy-driven profiles
Validation rules are grouped into profiles, not flags:
WCAG_AWCAG_AAWCAG_AAASTRICT_HTMLCMS_SAFE
Profiles define what is enforced, not how HTML is written.
No conditionals.
No runtime switches.
Profiles are declarative and explicit.
No runtime surprises
HTMLForge never:
- auto-injects missing elements
- fixes invalid markup
- rewrites your structure
- relies on browser error recovery
If something is wrong, you get a complete validation report — not broken HTML.
Accessibility by default
HTMLForge enforces real accessibility rules, not heuristics:
- Accessible names for interactive elements
- Proper form labeling (implicit and explicit)
- Landmark and heading structure
- ARIA role correctness
- Native HTML semantics preferred over ARIA
Accessibility failures are validation errors, not warnings.
Rendering model
- Exactly one
<html>,<head>, and<body>per document <body>is the root content container- No implicit wrapper elements
- Raw-text and inert elements are isolated correctly
- Rendering only happens if validation passes
Validation reports (v1.2)
HTMLForge produces structured diagnostics, not strings:
- Stable rule IDs (e.g.
accessibility:img-alt-required) - Exact element paths (
html > body > form > input) - Multiple violations are never deduplicated
- Machine-readable JSON output
- Browser-friendly grouped HTML reports
One violation always corresponds to one semantic rule failure.
Security and policy enforcement
HTMLForge enforces strict security-related HTML policies:
- Inline JavaScript event handlers (
onclick,onload, etc.) - Profile-aware severity:
- error in
STRICT_HTML - warning in CMS-oriented profiles
- error in
These rules are enforced at validation time, not runtime.
Documentation
The documentation is intentionally small, focused, and correctness-oriented.
If something is not documented, it is either unstable or out of scope.
Getting started
-
Overview
What HTMLForge is, what it is not, and when to use it. -
Core Concepts
ASTs, validation vs rendering, determinism, and design decisions.
Validation
-
Validation Profiles
Available profiles and how to choose the right one. -
ValidationReport
Canonical schema, rule IDs, element paths, and report rendering.
Examples
-
Basic Document
Rendering and validating a complete HTML document. -
Fragment Rendering
Rendering partial HTML without document-level assumptions. -
Accessibility Validation
WCAG-aware validation with rule IDs and element paths. -
CMS-Safe Pipeline
Validating and rendering untrusted, user-generated content.
Document encoding enforcement
HTMLForge requires an explicit character encoding declaration:
<meta charset="utf-8">is mandatory- Missing charset is a validation error
- HTMLForge does not auto-insert encoding metadata
This ensures deterministic parsing behavior and avoids browser-dependent encoding assumptions.
Appendix: Element Coverage Matrix
This usage example exercises the following HTML element categories:
| Category | Elements Demonstrated |
|---|---|
| Document root | html, head, body |
| Metadata | title, meta, style, link |
| Sectioning | header, nav, main, section, article, aside, footer |
| Headings | h1, h2 |
| Grouping | p, ul, li, figure, figcaption |
| Phrasing | a, span (implicit), text nodes |
| Embedded | img |
| Forms | form, label, input, button |
| Interactive | a, button, input |
| Global attributes | class, id, lang, data-* |
| Accessibility | implicit labels, alt text, landmarks |
This matrix reflects real validation coverage, not theoretical support.
Elements not shown here are still supported if present in the registry.
Error handling
HTMLForge never throws during rendering.
Instead:
- All validation errors are collected
- Rendering returns a
RenderResult - You decide how to display, log, or block output
This makes HTMLForge safe for:
- browsers
- CMS pipelines
- static builds
- CI environments
Installation
composer require golchha21/htmlforge
Requires PHP 8.3+.
Changelog
Please see CHANGELOG for more information what has changed recently.
Security
If you discover any security related issues, please email vardhans@ulhas.net instead of using the issue tracker.
Author
- Ulhas Vardhan Golchha - Initial work
See also the list of contributors who participated in this project.
License
golchha21/htmlforge 适用场景与选型建议
golchha21/htmlforge 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 0 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 01 月 30 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「HTML5」 「validation」 「html」 「W3C」 「standards」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 golchha21/htmlforge 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 golchha21/htmlforge 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 golchha21/htmlforge 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
HTML5 support for SilverStripe
HTML5 Boilerplate is a professional front-end template for building fast, robust, and adaptable web apps or sites.
The yii2-videojs-widget is a Yii 2 wrapper for the [video.js](http://www.videojs.com/). A JavaScript and CSS library that makes it easier to work with and build on HTML5 video. This is also known as an HTML5 Video Player.
Adds request-parameter validation to the SLIM 3.x PHP framework
A jQuery augmented PHP library for creating and validating HTML forms
A Laravel validator for delimiter-separated list of emails.
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 39
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-01-30