Skip to content

Commit 710ef13

Browse files
committed
Fix: improve media folder parsing on Windows and update path handling in various modules
1 parent d3b7f73 commit 710ef13

File tree

5 files changed

+10
-6
lines changed

5 files changed

+10
-6
lines changed

Diff for: CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
### 🐞 Fixes
1414

15+
- Fix for media folder parsing on Windows
1516
- [#909](https://github.com/estruyf/vscode-front-matter/issues/909): Schema fix for the view modes
1617
- [#913](https://github.com/estruyf/vscode-front-matter/issues/913): Fix for relative media paths in page bundles
1718
- [#914](https://github.com/estruyf/vscode-front-matter/issues/914): Fix sanitizing of default filenames with an `_` in it

Diff for: src/commands/Folders.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,9 @@ export class Folders {
219219
: Folders.getAbsFilePath(assetFolder);
220220
const wsFolder = Folders.getWorkspaceFolder();
221221
if (wsFolder) {
222-
const relativePath = relative(parseWinPath(wsFolder.fsPath), parseWinPath(assetFolder));
222+
const relativePath = parseWinPath(
223+
relative(parseWinPath(wsFolder.fsPath), parseWinPath(assetFolder))
224+
);
223225
return relativePath === '' ? '/' : relativePath;
224226
}
225227
}
@@ -648,7 +650,7 @@ export class Folders {
648650

649651
const uniqueFolders = [...new Set(folders)];
650652
const relativeFolderPaths = uniqueFolders.map((folder) =>
651-
relative(parseWinPath(wsFolder.fsPath), folder)
653+
parseWinPath(relative(parseWinPath(wsFolder.fsPath), folder))
652654
);
653655

654656
Logger.verbose('Folders:getContentFolders:end');

Diff for: src/helpers/FrameworkDetector.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ export class FrameworkDetector {
137137
const assetDir = dirname(absAssetPath);
138138
const fileName = parse(absAssetPath);
139139

140-
relAssetPath = relative(fileDir, assetDir);
140+
relAssetPath = parseWinPath(relative(fileDir, assetDir));
141141
relAssetPath = join(relAssetPath, `${fileName.name}${fileName.ext}`);
142142
}
143143
// Support for HEXO image folder
@@ -197,7 +197,7 @@ export class FrameworkDetector {
197197
const assetDir = dirname(absAssetPath);
198198
const fileName = parse(absAssetPath);
199199

200-
let relAssetPath = relative(fileDir, assetDir);
200+
let relAssetPath = parseWinPath(relative(fileDir, assetDir));
201201
relAssetPath = join(relAssetPath, `${fileName.name}${fileName.ext}`);
202202
return parseWinPath(relAssetPath);
203203
}

Diff for: src/helpers/MediaHelpers.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -422,7 +422,7 @@ export class MediaHelpers {
422422

423423
// If the image exists in a content folder, the relative path needs to be used
424424
if (existsInContent) {
425-
const relImgPath = relative(fileDir, imgDir);
425+
const relImgPath = parseWinPath(relative(fileDir, imgDir));
426426

427427
relPath = join(relImgPath, basename(relPath));
428428

Diff for: src/helpers/processPathPlaceholders.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { dirname, relative } from 'path';
22
import { ContentFolder } from '../models';
3+
import { parseWinPath } from './parseWinPath';
34

45
export const processPathPlaceholders = (
56
value: string,
@@ -11,7 +12,7 @@ export const processPathPlaceholders = (
1112
const relPathToken = '{{pathToken.relPath}}';
1213
if (value.includes(relPathToken) && contentFolder?.path) {
1314
const dirName = dirname(filePath);
14-
const relPath = relative(contentFolder.path, dirName);
15+
const relPath = parseWinPath(relative(contentFolder.path, dirName));
1516
value = value.replace(relPathToken, relPath);
1617
}
1718

0 commit comments

Comments
 (0)