Linkvalidator Initiative

The main goal of this post is to find people who would like to join a linkvalidator initiative and work on it long term. Also to get some tips on how to proceed (I have zero experience with starting or working in an initiative).

What is the initiative about

My initiative idea is to improve the “linkvalidator” system extension.

Wanted - you!

Linkvalidator is an exciting application because it covers a wide range of functionality.

Anyone is welcome - there are several tasks open which require various levels of experience and knowledge from different fields - some with no coding knowledge required!

Specifically, it would be great to get people with experience in:

  • usability / UX expert - Your focus is the editing experience and you can help to improve the GUI
  • designer - You can make everything look better, e.g. by creating some nice icons and prettifying the GUI
  • core development - You like to write patches, review and improve core patches
  • Write tests - You have experience with writing tests
  • testing - You can test existing patches
  • core merger - You already have merge access - it would be great to have a dedicated component merger for linkvalidator in the future
  • teach - You like helping people improve their code, write better tests
  • documentation writers - You like writing documentation, can improve existing documentation.
  • conceptual thinker - You like to create concepts (and implement them)
  • “in the field” expert - You test linkvalidator on real sites and try to find bugs
  • Marketing / communications / PR - You find ways to get more people on board to help

Main goals

  • Most of all - linkvalidator should be useful for finding and fixing broken links, this includes user experience (including ease of use), stability and no (or only a few) bugs.

Possible tasks

  • fix bugs (e.g. scheduler task runs without dying, no more falsely reported broken links, check more fields etc.)
  • conceptual improvement of how external links are checked (cache results, optimize crawling)
  • immediate link checking / broken link removal - e.g. when a record is saved or deleted
  • code cleanup (strict types and beyond …)
  • more tests - currently only some functionality is covered by tests
  • better core integration, e.g. show information about broken links in page module
  • great user experience
  • optional: “fix wizards” - currently, each link must be fixed manually, might be possible to convert links by regular expressions or by some simple pattern replacements
  • optional: motivational graphs - e.g. see number of broken links going down, visual feedback of work accomplished (already partly incorporated into email report which shows current number of broken links and number found by last check)

More, see

Hi Sybille,

I am late on this, but is this still “alive”?
I was wondering if I can support / contribute?

Kind Regards

Thorsten

Glad you asked :grinning:

This is from my end:

  1. There was some activitiy and some talks but no one actually committed to a linkvalidator initiative. I made a decision for myself over the holidays: I will no longer work on this in the core unless an initiative is started and we work on general concepts first and at least one person with merge permissions participates.
  2. I have started my own fork. I am already using this in production and have implemented some of the things such as URL cache, ignore list (exclude working URLs that were falsely checked as invalid) and do not check content in “stale” fields (e.g. bodytext of plugins, CE of hidden gridelements).

I will probably release my extension publicly, but not yet and I do not think this is actually a bad idea - to have 2 variants where each can inspire and “steal ideas” from each other.

For the core, I would recommend to make a decision: Either remove linkvalidator from the core or really commit to it and work on it.

Since, you asked (which is always great), how can you contribute?

I would recommend: Ask in the #typo3-cms-coredev Slack channel where you can best contribute.
If you would like to help me with my extension that would also be welcome. In that case, contact me directly.

Apart from that, you can also look at the existing issues and some of the other notes I linked above. There are some general problems which must be solved and where “fresh ideas” would be great:

  1. How to keep list of broken links fresh, but not induce excessive unnecessary checking?
  2. Problem of false positives: URLs are checked as invalid but can be loaded fine. Happens e.g. with twitter and linkedin URLs but also lots of other URL, see https://notes.typo3.org/linkvalidator_problem_external_urls (that’s why I use the “ignore list”, it would be better to solve this directly, but I don’t think that is possible 100%)
  3. How to throttle HTTP requests on external servers? (too many requests may actually lead to blocking of requests and be one of the causes for 2)
  4. Problem of URLs checked in “stale” content, e.g tt_content bodytext of plugins
  5. Usability of GUI