In der Voreinstellung verarbeitet Qgoda weder versteckte Dateien oder Verzeichnisse (deren Namen beginnen mit einem .
), noch Dateien und Verzeichhnisse auf der höchsten Ebene, deren Namen mit einem Unterstrich _
beginnen.
You can change this default behavior by configuring additional file name patterns in the variable exclude
in the configuration file _qgoda.yml
.
Beispiel:
exclude:
- /node_modules
- /package.json
- /webpack.config.js
- assets/images/**/*.xcf
Damit werden auf der höchsten Ebene auch die Verzeichnisse das Verzeichnis node_modules
, sowie die Dateien package.json
und webpack.config.js
ignoriert. Weiterhin werden auch alle XCF-Dateien (das Bildformat des Bildverarbeitungsprogramms Gimp im Verzeichnis assets/images
und all seinen Unterverzeichnissen von der Verarbeitung ausgeschlossen.
Die Seite Suchmusterlisten liefert weitergehene Informationen über Dateinamensmuster und Listen solcher Muster in Qgoda.
Intern wird die konfigurierte Ausschluss-Liste nicht direkt verwendet. Die tatsächliche Liste ist etwas erweitert. Für das obige Beispiel würde die vollständige Liste so aussehen:
exclude:
- .*
- /_*
- /node_modules
- /package.json
- /webpack.config.js
- assets/images/**/*.xcf
- /_site
Die ersten beiden Zeilen schließen Dateien und Verzeichnisse aus, deren Namen mit einem Punkt .
oder Dateien und Verzeichnisse auf der höchsten Ebene, deren Namen mit einem Untertrich beginnen, aus.
Die letzte Zeile wird grundsätzlich angehangen und stellt einen Schutzmechanismus gegen Konfigurationsfehler dar. Wird das Ausgabeverzeichnis _site
eingeschlossen, würde das zu einer Endlosschleife führen. Das Ausgabeverzeichnis wird deshalb am Ende immer explizit ausgeschlossen.
Es gibt keine Konfigurationsvariable include
. Statt dessen lassen sich ausgeschlossene Datei wieder einschließen, indem dem entsprechenden Suchmuster ein Ausrufezeichen !
vorangestellt wird. Das Muster wird dadurch negiert:
exclude:
- /node_modules
- /package.json
- /webpack.config.js
- assets/images/**/*.xcf
- "!/_posts"
Mit dieser Einstellung würden alle Dateien, die im auf der höchsten Ebene liegenden Verzeichnis _posts
liegen, wieder eingeschlossen.
Es ist jedoch zu beachten, dass Dateien und Verzeichnisse nicht wieder eingeschlossen werden können, wenn eines ihrer Elternverzeichnisse durch eine vorhergehende Regel bereits ausgeschlossen wurde.
Beispiel:
exclude:
- /archive
- "!/archive/2017"
Das zweite Muster ist ungültig und wird ignoriertm weil /archive
ein Elternverzeichnis von /archive/2017
ist.
Dieses Verhalten dient der Effizienssteigerung. Wenn Qgoda Dateien zur Verarbeitung sucht, steigt es nicht in ausgeschlossene Verzeichnisse herab. Im obigen Beispiel würde der Inhalt von archive
nicht gelesen, und daher auch das Unterverzeichnis archive/2017
nie geöffnet.
Daraus ergibt sich ein kleines Problem, wenn man ein Unterverzeichnis eines automatisch ausgeschlossenen Verzeichnisses, zum Beispiel _experiments/stable
wieder einschließen will. Dazu muss man einen kleinen Umweg gehen:
exclude:
- "!/_experiments"
- /_experiments/*
- "!/_experiments/stable"
Dazu muss man sich erinnern, dass Qgoda der Liste automatisch das Muster /_
vorangestellt hat. Zeile 1 re-inkludiert jetzt _experiments
, Zeile 2 schließt alle Unterverzeichnisse aber direkt wieder aus. Dafür schließt Zeile 3 das Verzeichnis _experiments/stable
wieder ein.
Eine weitere Konfigurationsvariable exclude-watch
gibt Dateien und Verzeichnisse an, die im Watch-Modus keine Neu-Generierung der Site auslösen sollen, an. Wird diese Variable weggelassen, wird stattdessen der Inhalt von exclude
genommen.
Note that Qgoda by default re-includes the directory _views
.
Beispiel:
exclude-watch:
- assets/movies
Die Liste, die tatsächlich von Qgoda verwendet wird, sieht so aus:
exclude-watch:
- .*
- /_*
- "!/_views"
- assets/movies
- /_site
You can see that the directory _views
has been re-included because it contains layout and design files.