mirror of
https://github.com/ezyang/htmlpurifier.git
synced 2024-12-22 16:31:53 +00:00
[1.2.0]
- Converted dev-naming and dev-optimization to HTML - Fixed up failed validation in a few of the other HTML files git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@538 48356398-32a2-884e-a903-53898d9a118a
This commit is contained in:
parent
fe9238af3a
commit
83ed9e0fe1
80
docs/dev-naming.html
Normal file
80
docs/dev-naming.html
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||||
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||||
|
<meta name="description" content="Defines class naming conventions in HTML Purifier." />
|
||||||
|
<link rel="stylesheet" type="text/css" href="./style.css" />
|
||||||
|
|
||||||
|
<title>Naming Conventions - HTML Purifier</title>
|
||||||
|
|
||||||
|
</head><body>
|
||||||
|
|
||||||
|
<h1>Naming Conventions</h1>
|
||||||
|
|
||||||
|
<div id="filing">Filed under Development</div>
|
||||||
|
<div id="index">Return to the <a href="index.html">index</a>.</div>
|
||||||
|
|
||||||
|
<p>The classes in this library follow a few naming conventions, which may
|
||||||
|
help you find the correct functionality more quickly. Here they are:</p>
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
|
||||||
|
<dt>All classes occupy the HTMLPurifier pseudo-namespace.</dt>
|
||||||
|
<dd>This means that all classes are prefixed with HTMLPurifier_. As such, all
|
||||||
|
names under HTMLPurifier_ are reserved. I recommend that you use the name
|
||||||
|
HTMLPurifierX_YourName_ClassName, especially if you want to take advantage
|
||||||
|
of HTMLPurifier_ConfigDef.</dd>
|
||||||
|
|
||||||
|
<dt>All classes correspond to their path if library/ was in the include path</dt>
|
||||||
|
<dd>HTMLPurifier_AttrDef is located at HTMLPurifier/AttrDef.php; replace
|
||||||
|
underscores with slashes and append .php and you'll have the location of
|
||||||
|
the class.</dd>
|
||||||
|
|
||||||
|
<dt>Harness and Test are reserved class names for unit tests</dt>
|
||||||
|
<dd>The suffix <code>Test</code> indicates that the class is a subclass of UnitTestCase
|
||||||
|
(of the Simpletest library) and is testable. "Harness" indicates a subclass
|
||||||
|
of UnitTestCase that is not meant to be run but to be extended into
|
||||||
|
concrete test cases and contains custom test methods (i.e. assert*())</dd>
|
||||||
|
|
||||||
|
<dt>Class names do not necessarily represent inheritance hierarchies</dt>
|
||||||
|
<dd>While we try to reflect inheritance in naming to some extent, it is not
|
||||||
|
guaranteed (for instance, none of the classes inherit from HTMLPurifier,
|
||||||
|
the base class). However, all class files have the require_once
|
||||||
|
declarations to whichever classes they are tightly coupled to.</dd>
|
||||||
|
|
||||||
|
<dt>Strategy has a meaning different from the Gang of Four pattern</dt>
|
||||||
|
<dd>In Design Patterns, the Gang of Four describes a Strategy object as
|
||||||
|
encapsulating an algorithm so that they can be switched at run-time. While
|
||||||
|
our strategies are indeed algorithms, they are not meant to be substituted:
|
||||||
|
all must be present in order for proper functioning.</dd>
|
||||||
|
|
||||||
|
<dt>Abbreviations are avoided</dt>
|
||||||
|
<dd>We try to avoid abbreviations as much as possible, but in some cases,
|
||||||
|
abbreviated version is more readable than the full version. Here, we
|
||||||
|
list common abbreviations:
|
||||||
|
<ul>
|
||||||
|
<li>Attr(s) to Attribute(s)</li>
|
||||||
|
<li>Def to Definition</li>
|
||||||
|
</ul>
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>Ambiguity concerning the definition of Def/Definition</dt>
|
||||||
|
<dd>While a definition normally defines the structure/acceptable values of
|
||||||
|
an entity, most of the definitions in this application also attempt
|
||||||
|
to validate and fix the value. I am unsure of a better name, as
|
||||||
|
"Validator" would exclude fixing the value, "Fixer" doesn't invoke
|
||||||
|
the proper image of "fixing" something, and "ValidatorFixer" is too long!
|
||||||
|
Some other suggestions were "Handler", "Reference", "Check", "Fix",
|
||||||
|
"Repair" and "Heal".</dd>
|
||||||
|
|
||||||
|
<dt>Transform not Transformer</dt>
|
||||||
|
<dd>Transform is both a noun and a verb, and thus we define a "Transform" as
|
||||||
|
something that "transforms," leaving "Transformer" (which sounds like an
|
||||||
|
electrical device/robot toy).</dd>
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
<div id="version">$Id$</div>
|
||||||
|
|
||||||
|
</body></html>
|
@ -1,56 +0,0 @@
|
|||||||
|
|
||||||
Naming
|
|
||||||
|
|
||||||
The classes in this library follow a few naming conventions, which may
|
|
||||||
help you find the correct functionality more quickly. Here they are:
|
|
||||||
|
|
||||||
All classes occupy the HTMLPurifier pseudo-namespace.
|
|
||||||
This means that all classes are prefixed with HTMLPurifier_. As such, all
|
|
||||||
names under HTMLPurifier_ are reserved. I recommend that you use the name
|
|
||||||
HTMLPurifierX_YourName_ClassName, especially if you want to take advantage
|
|
||||||
of HTMLPurifier_ConfigDef.
|
|
||||||
|
|
||||||
All classes correspond to their path if library/ was in the include path
|
|
||||||
HTMLPurifier_AttrDef is located at HTMLPurifier/AttrDef.php; replace
|
|
||||||
underscores with slashes and append .php and you'll have the location of
|
|
||||||
the class.
|
|
||||||
|
|
||||||
Harness and Test are reserved class names for unit tests
|
|
||||||
The suffix "Test" indicates that the class is a subclass of UnitTestCase
|
|
||||||
(of the Simpletest library) and is testable. "Harness" indicates a subclass
|
|
||||||
of UnitTestCase that is not meant to be run but to be extended into
|
|
||||||
concrete test cases and contains custom test methods (i.e. assert*())
|
|
||||||
|
|
||||||
Class names do not necessarily represent inheritance hierarchies
|
|
||||||
While we try to reflect inheritance in naming to some extent, it is not
|
|
||||||
guaranteed (for instance, none of the classes inherit from HTMLPurifier,
|
|
||||||
the base class). However, all class files have the require_once
|
|
||||||
declarations to whichever classes they are tightly coupled to.
|
|
||||||
|
|
||||||
Strategy has a meaning different from the Gang of Four pattern
|
|
||||||
In Design Patterns, the Gang of Four describes a Strategy object as
|
|
||||||
encapsulating an algorithm so that they can be switched at run-time. While
|
|
||||||
our strategies are indeed algorithms, they are not meant to be substituted:
|
|
||||||
all must be present in order for proper functioning.
|
|
||||||
|
|
||||||
Abbreviations are avoided
|
|
||||||
We try to avoid abbreviations as much as possible, but in some cases,
|
|
||||||
abbreviated version is more readable than the full version. Here, we
|
|
||||||
list common abbreviations:
|
|
||||||
Attr(s) -> Attribute(s)
|
|
||||||
Def -> Definition
|
|
||||||
|
|
||||||
Ambiguity concerning the definition of Def/Definition
|
|
||||||
While a definition normally defines the structure/acceptable values of
|
|
||||||
an entity, most of the definitions in this application also attempt
|
|
||||||
to validate and fix the value. I am unsure of a better name, as
|
|
||||||
"Validator" would exclude fixing the value, "Fixer" doesn't invoke
|
|
||||||
the proper image of "fixing" something, and "ValidatorFixer" is too long!
|
|
||||||
Some other suggestions were "Handler", "Reference", "Check", "Fix",
|
|
||||||
"Repair" and "Heal".
|
|
||||||
|
|
||||||
Transform not Transformer
|
|
||||||
Transform is both a noun and a verb, and thus we define a "Transform" as
|
|
||||||
something that "transforms," leaving "Transformer" (which sounds like an
|
|
||||||
electrical device/robot toy).
|
|
||||||
|
|
32
docs/dev-optimization.html
Normal file
32
docs/dev-optimization.html
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||||
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||||
|
<meta name="description" content="Discusses possible methods of optimizing HTML Purifier." />
|
||||||
|
<link rel="stylesheet" type="text/css" href="./style.css" />
|
||||||
|
|
||||||
|
<title>Optimization - HTML Purifier</title>
|
||||||
|
|
||||||
|
</head><body>
|
||||||
|
|
||||||
|
<h1>Optimization</h1>
|
||||||
|
|
||||||
|
<div id="filing">Filed under Development</div>
|
||||||
|
<div id="index">Return to the <a href="index.html">index</a>.</div>
|
||||||
|
|
||||||
|
<p>Here are some possible optimization techniques we can apply to code sections if
|
||||||
|
they turn out to be slow. Be sure not to prematurely optimize: if you get
|
||||||
|
that itch, put it here!</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Make Tokens Flyweights (may prove problematic, probably not worth it)</li>
|
||||||
|
<li>Rewrite regexps into PHP code</li>
|
||||||
|
<li>Serialize the Definition object</li>
|
||||||
|
<li>Batch regexp validation (do as many per function call as possible)</li>
|
||||||
|
<li>Parallelize strategies</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div id="version">$Id$</div>
|
||||||
|
|
||||||
|
</body></html>
|
@ -1,12 +0,0 @@
|
|||||||
|
|
||||||
Optimization
|
|
||||||
|
|
||||||
Here are some possible optimization techniques we can apply to code sections if
|
|
||||||
they turn out to be slow. Be sure not to prematurely optimize: if you get
|
|
||||||
that itch, put it here!
|
|
||||||
|
|
||||||
- Make Tokens Flyweights (may prove problematic, probably not worth it)
|
|
||||||
- Rewrite regexps into PHP code
|
|
||||||
- Serialize the Definition object
|
|
||||||
- Batch regexp validation (do as many per function call as possible)
|
|
||||||
- Parallelize strategies
|
|
@ -44,7 +44,7 @@ thead th {text-align:left;padding:0.1em;background-color:#EEE;}
|
|||||||
<tr><td class="feature">Feature, requires extra work</td></tr>
|
<tr><td class="feature">Feature, requires extra work</td></tr>
|
||||||
</tbody></table>
|
</tbody></table>
|
||||||
|
|
||||||
<h2>CSS</h3>
|
<h2>CSS</h2>
|
||||||
|
|
||||||
<table cellspacing="0">
|
<table cellspacing="0">
|
||||||
|
|
||||||
|
@ -25,10 +25,19 @@ information for casual developers using HTML Purifier.</p>
|
|||||||
conventions.</p>
|
conventions.</p>
|
||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
|
|
||||||
<dt><a href="dev-code-quality.html">Code Quality Issues</a></dt>
|
<dt><a href="dev-code-quality.html">Code Quality Issues</a></dt>
|
||||||
<dd>Discusses code quality issues and places that need to be refactored.</dd>
|
<dd>Discusses code quality issues and places that need to be refactored.</dd>
|
||||||
|
|
||||||
<dt><a href="dev-progress.html">Implementation Progress</a></dt>
|
<dt><a href="dev-progress.html">Implementation Progress</a></dt>
|
||||||
<dd>Tables detailing HTML element and CSS property implementation coverage.</dd>
|
<dd>Tables detailing HTML element and CSS property implementation coverage.</dd>
|
||||||
|
|
||||||
|
<dt><a href="dev-naming.html">Naming Conventions</a></dt>
|
||||||
|
<dd>Defines class naming conventions.</dd>
|
||||||
|
|
||||||
|
<dt><a href="dev-optimization.html">Optimization</a></dt>
|
||||||
|
<dd>Discusses possible methods of optimizing HTML Purifier.</dd>
|
||||||
|
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
<h2>Proposals</h2>
|
<h2>Proposals</h2>
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||||
<meta name="description" content="Credits and links to DevNetwork forum topics on HTML Purifier." />
|
<meta name="description" content="Credits and links to DevNetwork forum topics on HTML Purifier." />
|
||||||
<link rel="stylesheet" type="text/css" href="./style.css" />
|
<link rel="stylesheet" type="text/css" href="./style.css" />
|
||||||
<base href="http://forums.devnetwork.net/" />
|
|
||||||
|
|
||||||
<title>DevNetwork Credits - HTML Purifier</title>
|
<title>DevNetwork Credits - HTML Purifier</title>
|
||||||
|
|
||||||
@ -22,20 +21,20 @@ theorizing about design, and offering encouragement during
|
|||||||
the development of this library in these forum threads:</p>
|
the development of this library in these forum threads:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="viewtopic.php?t=52905">HTMLPurifier PHP Library hompeage</a></li>
|
<li><a href="http://forums.devnetwork.net/viewtopic.php?t=52905">HTMLPurifier PHP Library hompeage</a></li>
|
||||||
<li><a href="viewtopic.php?t=53056">How much of CSS to implement?</a></li>
|
<li><a href="http://forums.devnetwork.net/viewtopic.php?t=53056">How much of CSS to implement?</a></li>
|
||||||
<li><a href="viewtopic.php?t=53083">Parsing URL only according to URI : Security Risk?</a></li>
|
<li><a href="http://forums.devnetwork.net/viewtopic.php?t=53083">Parsing URL only according to URI : Security Risk?</a></li>
|
||||||
<li><a href="viewtopic.php?t=53096">Gimme a name : URI and friends</a></li>
|
<li><a href="http://forums.devnetwork.net/viewtopic.php?t=53096">Gimme a name : URI and friends</a></li>
|
||||||
<li><a href="viewtopic.php?t=53415">How to document configuration directives</a></li>
|
<li><a href="http://forums.devnetwork.net/viewtopic.php?t=53415">How to document configuration directives</a></li>
|
||||||
<li><a href="viewtopic.php?t=53479">IPv6</a></li>
|
<li><a href="http://forums.devnetwork.net/viewtopic.php?t=53479">IPv6</a></li>
|
||||||
<li><a href="viewtopic.php?t=53539">http and ftp versus news and mailto</a></li>
|
<li><a href="http://forums.devnetwork.net/viewtopic.php?t=53539">http and ftp versus news and mailto</a></li>
|
||||||
<li><a href="viewtopic.php?t=53579">HTMLPurifier - Take your best shot</a></li>
|
<li><a href="http://forums.devnetwork.net/viewtopic.php?t=53579">HTMLPurifier - Take your best shot</a></li>
|
||||||
<li><a href="viewtopic.php?t=53664">Need help optimizing a block of code</a></li>
|
<li><a href="http://forums.devnetwork.net/viewtopic.php?t=53664">Need help optimizing a block of code</a></li>
|
||||||
<li><a href="viewtopic.php?t=53861">Non-SGML characters</a></li>
|
<li><a href="http://forums.devnetwork.net/viewtopic.php?t=53861">Non-SGML characters</a></li>
|
||||||
<li><a href="viewtopic.php?t=54283">Wordpress makes me cry</a></li>
|
<li><a href="http://forums.devnetwork.net/viewtopic.php?t=54283">Wordpress makes me cry</a></li>
|
||||||
<li><a href="viewtopic.php?t=54478">Parameter Object vs. Parameter Array vs. Parameter Functions</a></li>
|
<li><a href="http://forums.devnetwork.net/viewtopic.php?t=54478">Parameter Object vs. Parameter Array vs. Parameter Functions</a></li>
|
||||||
<li><a href="viewtopic.php?t=54521">Convert encoding where output cannot represent characters</a></li>
|
<li><a href="http://forums.devnetwork.net/viewtopic.php?t=54521">Convert encoding where output cannot represent characters</a></li>
|
||||||
<li><a href="viewtopic.php?t=56411">Reporting errors in a document without line numbers</a></li>
|
<li><a href="http://forums.devnetwork.net/viewtopic.php?t=56411">Reporting errors in a document without line numbers</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>...as well as any I may have forgotten.</p>
|
<p>...as well as any I may have forgotten.</p>
|
||||||
|
Loading…
Reference in New Issue
Block a user