# Documentation

HTML Purifier has documentation for all types of people. Here is an index of all of them.

## End-user

End-user documentation that contains articles, tutorials and useful information for casual developers using HTML Purifier.

IDs
  Explains various methods for allowing IDs in documents safely.
Embedding YouTube videos
  Explains how to safely allow the embedding of flash from trusted sites.
Speeding up HTML Purifier
  Explains how to speed up HTML Purifier through caching or inbound filtering.
UTF-8: The Secret of Character Encoding
  Describes the rationale for using UTF-8, the ramifications otherwise, and how to make the switch.
Tidy
  Tutorial for tweaking HTML Purifier's Tidy-like behavior.
Customize
  Tutorial for customizing HTML Purifier's tag and attribute sets.
URI Filters
  Tutorial for creating custom URI filters.

## Development

Developer documentation detailing code issues, roadmaps and project conventions.

Implementation Progress
  Tables detailing HTML element and CSS property implementation coverage.
Naming Conventions
  Defines class naming conventions.
Optimization
  Discusses possible methods of optimizing HTML Purifier.
Flushing the Purifier
  Discusses when to flush HTML Purifier's various caches.
Advanced API
  Specification for HTML Purifier's advanced API for defining custom filtering behavior.
Config Schema
  Describes config schema framework in HTML Purifier.

## Proposals

Proposed features, as well as the associated rambling to get a clear objective in place before attempted implementation.

Colors
  Proposal to allow for color constraints.

## Reference

Miscellaneous essays, research pieces and other reference type material that may not directly discuss HTML Purifier.

DevNetwork Credits
  Credits and links to DevNetwork forum topics.

## Internal memos

Plaintext documents that are more for use by active developers of the code. They may be upgraded to HTML files or stay as TXT scratchpads.

Type | Name | Description
--- | --- | ---
End-user | Overview | High level overview of the general control flow (mostly obsolete).
End-user | Security | Common security issues that may still arise (half-baked).
Development | Config BC Breaks | Backwards-incompatible changes in HTML Purifier 4.0.0
Development | Code Quality Issues | Enumerates code quality issues and places that need to be refactored.
Proposal | Filter levels | Outlines details of projected configurable level of filtering.
Proposal | Language | Specification of I18N for error messages derived from MediaWiki (half-baked).
Proposal | New directives | Assorted configuration options that could be implemented.
Proposal | CSS extraction | Taking the inline CSS out of documents and into `style`.
Reference | Handling Content Model Changes | Discusses how to tidy up content model changes using custom ChildDef classes.
Reference | Proprietary tags | List of vendor-specific tags we may want to transform to W3C compliant markup.
Reference | Modularization of HTMLDefinition | Provides a high-level overview of the concepts behind HTMLModules.
Reference | WHATWG | How WHATWG plays into what we need to do.