[ 
https://issues.apache.org/jira/browse/DOXIATOOLS-59?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16865430#comment-16865430
 ] 

Alix Lourme commented on DOXIATOOLS-59:
---------------------------------------

Hello [~chrisneve],

{quote}
Run mvn linkcheck:linkcheck, which succeeds instead of failing as I understood 
it would.
{quote}

_linkcheck_ does not fail by itself if some bad links are found. Another _task_ 
like this snipet should be used:
{code}
<plugin>
  <artifactId>maven-antrun-plugin</artifactId>
  <version>1.8</version>
  <executions>
    <execution>
      <phase>post-site</phase>
      <goals>
        <goal>run</goal>
      </goals>
      <configuration>
        <target>
          <echo message="Check if website contains some local broken 
link(s)..." />
          <fail message="Broken link(s) found in website (see 
'target/site/linkcheck.html' for details)">
            <condition>
              <resourcecontains 
resource="${project.build.directory}/linkcheck/linkcheck.xml" 
substring=">error" />
            </condition>
          </fail>
        </target>
      </configuration>
    </execution>
  </executions>
</plugin>
{code}

----

{quote}
Did I reproduce the error wrong? Or does this issue no longer seem to exist?
{quote}

Issue always exists. In generated file {{bugfix/target/site/index.html}} the 
*Overview* title is with a single anchor on _href_: 
{code}
      <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Overview <b 
class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="http://www.apache.org"; title="Apache">Apache</a></li>
            <li><a href="https://maven.apache.org"; title="Maven">Maven</a></li>
        </ul>
      </li>
{code}

In Linkcheck XML file ({{target/linkcheck/linkcheck.xml}}) this link is in 
error:

{code}
    <file>
      
<absolutePath>[somewhere]\bugfix\target\linkcheck\tmpsite\index.html</absolutePath>
      <relativePath>index.html</relativePath>
      <successful>5</successful>
      <unsuccessful>4</unsuccessful>
      <results>
        <result>
          <target>#</target>
          <status>error</status>
          <errorMessage>doesn't exist.</errorMessage>
        </result>
{code}



Best regards

> Link checker not handling anchors of fluido skin topbar very well
> -----------------------------------------------------------------
>
>                 Key: DOXIATOOLS-59
>                 URL: https://issues.apache.org/jira/browse/DOXIATOOLS-59
>             Project: Maven Doxia Tools
>          Issue Type: Improvement
>          Components: Doxia Linkcheck
>    Affects Versions: doxia-linkcheck-1.2
>            Reporter: Alix Lourme
>            Priority: Minor
>              Labels: up-for-grabs
>         Attachments: bugfix.zip
>
>
> When you are using 
> [maven-fluido-skin|https://maven.apache.org/skins/maven-fluido-skin/] with 
> [topbar|https://maven.apache.org/skins/maven-fluido-skin/topbar/index.html], 
> category menus are produced with a *single anchor* (*#*) like that:
> {code}
> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Overview <b 
> class="caret"></b></a>
> {code}
> In this case, _maven-linkcheck-plugin_ fails. You can simply reproduce the 
> problem with this _site.xml_:
> {code}
> <project>
>   <skin>
>     <groupId>org.apache.maven.skins</groupId>
>     <artifactId>maven-fluido-skin</artifactId>
>     <version>1.7</version>
>   </skin>
>   <custom>
>     <fluidoSkin>
>       <topBarEnabled>true</topBarEnabled>
>       <sideBarEnabled>false</sideBarEnabled>
>     </fluidoSkin>
>   </custom>
>   <body>
>     <menu name="Overview">
>       <item name="Apache" href="http://www.apache.org"; />
>       <item name="Maven" href="https://maven.apache.org"; />
>     </menu>
>   </body>
> </project>
> {code}
> ----
> You can use *excludedLink* property, but the pattern to use in 
> [LinkValidatorManager.matchPattern|https://github.com/apache/maven-doxia-linkcheck/blob/1afc9f52cecea900b0c21926973afc5460c7a12e/src/main/java/org/apache/maven/doxia/linkcheck/validation/LinkValidatorManager.java#L337]
>  is a little tricky to found :
> * # : All links page are excluded
> * ^#$ : Not found ... Java pattern seems not really used
> * *# : Do the trick finally
> Snippet for proof:
> {code}
>         String pattern = "#";
>         System.out.println(matchPattern("#", pattern)); // --> true
>         System.out.println(matchPattern("#localLink", pattern)); // --> true
>         System.out.println(matchPattern("http://fake.url.org/index.html#";, 
> pattern)); // --> true
>         
> System.out.println(matchPattern("http://fake.url.org/index.html#link";, 
> pattern)); // --> true
>         pattern = "^#$";
>         System.out.println(matchPattern("#", pattern)); // --> false
>         System.out.println(matchPattern("#localLink", pattern)); // --> false
>         System.out.println(matchPattern("http://fake.url.org/index.html#";, 
> pattern)); // --> false
>         
> System.out.println(matchPattern("http://fake.url.org/index.html#link";, 
> pattern)); // --> false
>         pattern = "*#";
>         System.out.println(matchPattern("#", pattern)); // --> true
>         System.out.println(matchPattern("#localLink", pattern)); // --> false
>         System.out.println(matchPattern("http://fake.url.org/index.html#";, 
> pattern)); // --> false ... corner case ?
>         
> System.out.println(matchPattern("http://fake.url.org/index.html#link";, 
> pattern)); // --> false
> {code}
> ----
> Perhaps consider a single anchor (#) as valid link by default could be useful 
> and avoiding some headlock.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to