✨ feat(vscode): 注释里的仓库图片按比例显示
This commit is contained in:
1 parent
57b2f2a115
commit
9faf9cde9e
13 files changed
+312
-8
No files matched your search
@@ -30,6 +30,19 @@ export function isSafeRepoPath(rel: string): boolean {
|
||||
return segments.length > 0 && segments.every(segment => segment !== '' && segment !== '.' && segment !== '..')
|
||||
}
|
||||
|
||||
/** 注释里当图片显示的文件后缀。webview 的 repoImage.ts 用同一份。 */
|
||||
const IMAGE_FILE = /\.(?:avif|bmp|gif|ico|jpe?g|png|svg|webp)$/i
|
||||
|
||||
/** 文件名是图片。绝对路径也能用来判断,不检查有没有跑出仓库。 */
|
||||
export function isImageFile(filePath: string): boolean {
|
||||
return IMAGE_FILE.test(filePath)
|
||||
}
|
||||
|
||||
/** 从仓库根起、能在注释里当图片显示的路径。别的仓库文件不给预览地址。 */
|
||||
export function isRepoImagePath(rel: string): boolean {
|
||||
return isSafeRepoPath(rel) && isImageFile(rel)
|
||||
}
|
||||
|
||||
/** target 解析之后还在 root 里面(root 自己不算)。 */
|
||||
export function staysInside(root: string, target: string): boolean {
|
||||
const back = path.relative(path.resolve(root), path.resolve(target))
|
||||
|
||||
Reference in new issue
Block a user