Skip to content

Commit 5d54a1c

Browse files
authored
Merge branch 'assets-folder-fix' into marqdevx/assets-folder-recognition-update
2 parents 8a163d4 + 39f5095 commit 5d54a1c

File tree

2 files changed

+19
-19
lines changed

2 files changed

+19
-19
lines changed

domain/article.js

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ export class Article {
2323
this._codeBlockData = null;
2424
this._referencedAssetsPaths = null;
2525
this._emphasizedTextData = null;
26+
this._assetFolder = null;
2627
}
2728

2829
/**
@@ -259,28 +260,20 @@ export class Article {
259260
*/
260261
get assetsFolder(){
261262
if(this._assetFolder) return this._assetFolder;
262-
const validDirectories = ["assets", "images"];
263263

264-
if (existsSync(`${this.path}/${validDirectories[0]}/`)){
265-
this._assetFolder = validDirectories[0];
266-
return this._assetFolder;
267-
}
268-
if (existsSync(`${this.path}/${validDirectories[1]}/`)){
269-
console.log("😬 WARNING: Using deprecated 'images' directory to store assets. Location:", this.path);
270-
this._assetFolder = validDirectories[1];
271-
return this._assetFolder;
272-
}
273-
274-
// Try to figure out assets path from the referenced images
264+
// Figure out assets path(s) from the referenced images
275265
const usedAssetPaths = this.referencedImages.map((assetPath) => {
276266
const directory = path.dirname(assetPath)
277267
if(!directory) return null;
278268
return directory.split("/")[0];
279-
})
269+
});
280270

281271
const uniqueAssetPaths = usedAssetPaths.filter((element, index) => { return usedAssetPaths.indexOf(element) == index; });
282-
if(uniqueAssetPaths.length == 1) return uniqueAssetPaths[0];
283-
return null;
272+
if(uniqueAssetPaths.length == 1) {
273+
this._assetFolder = uniqueAssetPaths[0];
274+
}
275+
276+
return this._assetFolder;
284277
}
285278

286279
/**

validations/assets.js

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,14 +86,21 @@ function validateSVGFiles(article){
8686
/**
8787
* Checks if the article uses one of the allowed assets folder name.
8888
* @param {Article} article
89+
* @param {String} expectedFolderName the expected assets folder name
8990
* @returns an array of ValidationIssue objects for the found issues.
9091
*/
91-
function validateAssetsFolderName(article){
92+
function validateAssetsFolderName(article, expectedFolderName){
9293

93-
if(article.assets.length > 0 && article.assetsFolder != "assets"){
94-
const errorMessage = "No standard assets directory found";
95-
return new ValidationIssue(errorMessage, article.contentFilePath, ValidationIssue.Type.WARNING);
94+
if(article.assets.length > 0 && article.assetsFolder === null){
95+
const errorMessage = "Multiple asset directories used";
96+
return new ValidationIssue(errorMessage, article.contentFilePath);
9697
}
98+
99+
if(article.assetsFolder !== expectedFolderName){
100+
const errorMessage = "Unexpected or deprecated assets directory used";
101+
return new ValidationIssue(errorMessage, article.contentFilePath, ValidationIssue.Type.WARNING);
102+
}
103+
97104
return [];
98105
}
99106

0 commit comments

Comments
 (0)