Suche nach leeren oder leeren Links in allen HTML-Dateien im Root-Verzeichnis mit gulp

8

Ich habe viele HTML-Dokumente im Stamm meiner Projekte. Nehmen wir ein einfaches skelettiertes HTML-Dokument wie folgt:

%Vor%

Jetzt, bevor ich diese Dateien an das Entwicklungsteam sende, werde ich mit der Aufgabe beauftragt, zu überprüfen, dass es keine Links gibt, die keine href haben und leere href oder ein leeres Fragment als href haben. I.e.,

Grundsätzlich kann es keine Likes wie diese geben:

%Vor%

oder

%Vor%

oder

%Vor%

Ich fand dieses Schluck-Plugin und ich habe ein paar Probleme damit. Schauen wir uns zuerst die Schluckdatei an:

%Vor%

Beachten Sie, dass wenn Sie die Option checkLinks: true übergeben, dies nicht nur für die a -Tags gilt, sondern für alle genannten Tags. auf dieser Seite . Das Plugin hat kein Problem, wenn das <a> -Tag leer ist oder nur ein # hat oder überhaupt nicht vorhanden ist.

Sehen Sie, was passiert, wenn ich die Schluckaufgaben ausführe:

Was ich stattdessen möchte ist, wenn nur die a -Links überprüft werden könnten und wenn das <a> -Tag keine href oder einen leeren Wert oder nur ein # hat, dann sollte es einen Fehler oder werfen Zeigen Sie es im zusammenfassenden Bericht.

Schließlich sehe ich im Beispiel der Schluckdatei, wie ich das PageUrl (d. h. die grundsätzlich zu überprüfenden Seiten) wie folgt übergebe:

%Vor%

Wie kann ich stattdessen dieses Plugin anweisen, nach allen .html -Dateien im Gulp-Test -Verzeichnis zu suchen?

Also, um meine Frage zusammenzufassen: Wie bekomme ich dieses Plugin einen Fehler zu werfen (dh im zusammenfassenden Bericht zeigen), wenn es eine <a> ohne href oder eine href, die leer ist oder einen Wert von hat # und wie kann ich dieses Plugin anweisen, nach allen .html Dateien in einem Verzeichnis zu suchen.

    
Alexander Solonik 10.03.2016, 09:15
quelle

2 Antworten

4
  

Mir wurde die Aufgabe zugewiesen zu überprüfen, dass es keine Links gibt, die keine href haben und leere href oder ein leeres Fragment als href haben.

Wenn das alles ist, was Sie brauchen, brauchen Sie wirklich keine Schluck-Plugins. Und es ist zweifelhaft, dass Sie auf jeden Fall etwas finden, das Ihren spezifischen Anforderungen entspricht.

Sie können das aber ganz einfach selbst erledigen. Alles, was Sie wirklich tun müssen, ist:

  1. Lesen Sie alle HTML-Dateien ein, die Sie validieren möchten, indem Sie gulp.src() .
  2. Verteilen Sie jede Datei mithilfe through2 .
  3. an eine eigene Funktion
  4. Analysieren Sie jede Datei mit einem beliebigen HTML-Parser (z. B. cheerio ).
  5. Finden Sie die fehlerhaften Links im analysierten HTML-DOM.
  6. Melden Sie die fehlerhaften Links mit gutil.log() , damit Sie wissen, was Sie beheben müssen.
  7. Vielleicht werfen Sie ein gutil.PluginError , damit Ihr Build fehlschlägt (dies ist optional) .

Hier ist eine Gulpfile, die genau das tut (unter Bezugnahme auf die obigen Punkte in Kommentaren):

%Vor%

Running gulp checkLinks mit einem Gulp-Test/index.html like so ...

%Vor%

... ergibt folgende Ausgabe:

%Vor%     
Sven Schoenung 13.03.2016, 19:07
quelle
1
%Vor%

Ausgabe:

    
UDB 13.03.2016 21:34
quelle

Tags und Links