Ticket #10987 (closed PLIP: wontfix)

Opened 6 years ago

Last modified 5 years ago

Implement Link Checking as Core Feature of Plone

Reported by: ctxlken Owned by:
Priority: major Milestone: Future
Component: Upgrade/Migration Version:
Keywords: kupu tinymce link checker linkchecker Cc: plip-advisories@…

Description (last modified by tom_gross) (diff)

Proposer: Ken Wasetis
Seconder: Tom Gross

Motivation

The link checker that is built into the Kupu editor is very useful for finding 'dead links' on a site (that will cause 404 errors) and such a link checker is a strict requirement for many organizations evaluating CMS tools. If you didn't realize this feature existed, go to Site Setup in your Plone 3 site and then to the Visual Editor (kupu) and then to the Links tab and scan for broken links. Cool, right?!

Kupu is no longer the default editor as of Plone 4.x, and the new default editor, TinyMCE, has no such built-in capability. Thus, by eliminating Kupu as the default editor, Plone can no longer claim to have a link checker 'out of the box'.

Assumptions

Assume that Plone should have a built-in link checker (still) and that it is best to not have it tied to a 3rd-party editor product that could be replaced by a different default visual editor in future Plone releases.

Proposal & Implementation

This functionality really should not be migrated to TinyMCE, IMHO, but rather componentized as its own product/egg that is a core feature of Plone, rather than of a 3rd-party editing tool, but if for some reason, grafting it onto TinyMCE is easier/faster, at least that approach would allow Plone to maintain this functionality with a standard installation of Plone 4.

There exists a standalone Link Monitoring Service (LMS link checker) utility by GoCept that provides even greater capabilities than the kupu bundled link checker, and it may be good to review that code base and learn any lessons and integrate any features that can be, but this tool runs as a separate service that makes XML-RPC calls to interact with the CMS (pros and cons to that.)

I think that this is the 'gold standard' of link checking, if we could bring the code up-to-date, but I don't think this is a great candidate for the 'out of the box' Plone install/experience. I think it's akin to Plone integration with SOLR, which is an even more robust search option for Plone, but Plone still has a pretty nice search engine that it ships with, without integration with another service that runs on another port, and in SOLR's case, another programming language (Java.)

If you agree that Plone should still have a built-in link-checker utility, please vote for this PLIP!

Deliverables

The low-hanging fruit is to carve out the link checker utility of kupu as a standalone egg, if possible. It should already have a lot of tests that can be modified and reused.

  • New product/egg for plone link checker
  • Unit tests
  • Localization
  • Documentation

Risks

Additional bloat to Plone 4 core (but not to its typical 'installer' distributions since this was a module that actually ships as part of the optional kupu add-on product with a typicaly Plone 4 installation, already)

Participants

Who is signed up to do the work? (Real names and usernames, please)

Progress

Is any of the work done already? (When working on this in the repository, use the

"refs #YourTicketNumber" message in the check-in message to tie commits to this ticket)

This related ticket exists:  http://dev.plone.org/plone/ticket/10972

Change History

comment:1 Changed 6 years ago by djay

I will second this. I think an internal link checker has the potential to more efficient than an external one and link checking is a "standard" feature on checklists for those evaluating cms these days. In addition 404 errors can seriously hamper performance of a high volume plone site.

comment:2 Changed 6 years ago by cah190

  • Cc plip-advisories@… added

comment:3 Changed 6 years ago by alecm

This is a great idea, but I would prefer to see this feature mature as an add-on before going into the core.

comment:4 Changed 6 years ago by WouterVH

gocept.lms is an stand-alone grok-application that depends on another package gocept.linkchecker that can be found here:  https://intra.gocept.com/projects/projects/cmflinkchecker.

These tools will also check external links instead of only internal references.

comment:5 Changed 5 years ago by tom_gross

  • Description modified (diff)

Since it is not developed any longer, we forked gocept.linkchecker and use it successfully for a mid sized Plone 3.3 site. I can provide the code to the community and help with further integration.

The LMS is quite resource intensive and checking the links keeps one CPU busy all the time.

comment:6 Changed 5 years ago by esteele

  • Milestone changed from 4.1 to Future

comment:7 Changed 5 years ago by rossp

  • Status changed from new to closed
  • Resolution set to wontfix

PLEASE READ THIS AND RE-OPEN VALID PLIPS!

As we launch the new PLIP process we'd like to see which PLIPs:

  • are still appropriate/needed
  • still have owners/proposers/champions
  • still have available implementers

If this PLIP should still be considered for future releases of Plone please do re-open this ticket and assign an appropriate milestone. If it should be considered for the next release of Plone, use the 4.2 milestone. Also be sure to update the PLIP description, requester, owner, etc. and include a comment detailing recent progress and new plans. We will use all these details in the new continuous PLIP process.

Note: See TracTickets for help on using tickets.