Styles mainly consist of expressions. Expressions can either be plain text that must be somewhere in your document, or a regular expression which must match your document.
To see how this works, lets take the following example - The sections are now marked:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> | <head> | <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 1 <link rel="stylesheet" type="text/css" href="../style.css"> | | <title>Test Document</title> | </head> <body> | 2 <h1>Test Document</h1> | <div class="hr"><hr></div> | 3 <p>Test Documents Text.</p> | </body> </html>
The head should be divided into two expressions. The first one checks for the existence of the head
and the second one checks for the meta information which must be in the head section.
<head>(n|r|.)*?</head>
Options:
normal
” - can be any value because this is a top-level expression which does not inherit from a different expression.1
”1
” - may only occur once in an HTML document
Hint: Instead of the first check you can create a trigger with the class com.inet.doqua.TidyValidateHTML
, since this check is covered by this trigger.
Now create a sub-expression by marking the expression above and clicking the expression button () and name it “title
”. The expression is almost the same as the one above.
<title>(n|r|.)*?</title>
Options:
normal
” - meaning only to search on matches of the parent expression: the expression is to be contained within the head area.1
”1
” - may only occur once in an HTML document
Create another sub-expression to the head
and name it “content type
”.
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
Options:
normal
” - meaning only to search on matches of the parent expression: the expression is to be contained within the head area.1
”1
” - may only occur once in an HTML document
This expression is plain text only and checks for the content type inside the head
tags. Add another style as before.
<link rel="stylesheet" type="text/css" href="(\.\./)+style.css">
Options:
normal
” - meaning only to search on matches of the parent expression: the expression is to be contained within the head area.1
”1
” - may only occur once in an HTML document
The expression for CSS-Styles allows the style.css
to be located in any directory above the current one.
Create a new expression parallel to the head
expression. You can use the same regular expression and settings - just replace head
with body
- and call it e.g. “Body”. Now add another expression below:
<body>(\n|\r|\s)*?<h1>(\n|\r|.)*?</h1>(\n|\r|\s)*?<div class="hr"><hr></div>
Options:
normal
” - can be any value because this is a top-level expression which does not inherit from a different expression.1
”1
” - may only occur once in an HTML document
Though the code is a one-liner, it will check for the two lines you have in your HTML
. And it also makes sure that the block is the first entry in your HTML
body.
Add another expression nested in the body
expression from above:
<h1>(\n|\r|.)*?</h1>
Options:
normal
” - meaning only to search on matches of the parent expression: the expression is to be contained within the body area.1
”2000
” - since there is no maximum in this case, you need to arbitrarily define one.