`))
intoctop = true;
if(match(line, `
`))
if(innavblock)
{
innavblock2 = true;
linkBlocks ~= LinkBlock("", "", "");
}
else
innavblock = true;
if(match(line, `
`))
intoctop = innavblock2 = false;
if(std.string.find(line, `
`)>=0)
dl++;
if(dl==1)
{
if(re_def.test(line))
{
anchor = re_def.match(2);
while("#"~anchor in anchors) anchor ~= '_';
anchors["#"~anchor] = true;
line = re_def.pre ~ re_def.replace(`- $1$2<`) ~ re_def.post;
//writefln("new line: ", line);
addKeyword(re_def.match(2), fileName ~ "#" ~ anchor);
}
}
if(std.string.find(line, `
`)>=0)
dl--;
if(re_heading_link.test(line))
{
if(innavblock2)
linkBlocks ~= LinkBlock(re_heading_link.match(1), re_heading_link.match(3), re_heading_link.match(4));
}
else
if(re_heading.test(line))
{
if(innavblock2)
linkBlocks ~= LinkBlock("", "", re_heading.match(1));
}
if(re_nav_link.test(line))
if(intoctop)
toctop ~= Link(re_nav_link.match(1), re_nav_link.match(3), re_nav_link.match(4));
else
if(innavblock2)
if(re_nav_link.match(1)[0..7]!="http://" && exists(absoluteUrl(fileName, re_nav_link.match(1))))
linkBlocks[$-1].links ~= Link(re_nav_link.match(1), re_nav_link.match(3), re_nav_link.match(4));
//else
// writefln("Displaced link: ", line);
if(re_anchor.test(line))
addKeyword(re_anchor.match(3), fileName ~ "#" ~ re_anchor.match(1));
else
if(re_anchor_2.test(line))
addKeyword(re_anchor_2.match(3), fileName ~ "#" ~ re_anchor_2.match(1));
if(re_link.test(line))
if(re_link.match(1)[0..min($,7)]!="http://")
addKeyword(re_link.match(3), absoluteUrl(fileName, re_link.match(1)));
// skip Google ads
if(match(line, `^