diff --git a/src/components/BufferSelector.vue b/src/components/BufferSelector.vue index 8b81094..2a4693b 100644 --- a/src/components/BufferSelector.vue +++ b/src/components/BufferSelector.vue @@ -7,6 +7,15 @@ const pathSep = window.heynote.buffer.pathSeparator + function escapeHTML(str) { + return str + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, ''') + } + export default { props: { headline: String, @@ -106,8 +115,8 @@ this.items = Object.entries(this.buffers).map(([path, metadata]) => { return { "path": path, - "name": metadata?.name || path, - "folder": path.split(pathSep).slice(0, -1).join(pathSep), + "name": escapeHTML(metadata?.name || path), + "folder": escapeHTML(path.split(pathSep).slice(0, -1).join(pathSep)), "scratch": path === SCRATCH_FILE_NAME, } }) @@ -263,8 +272,8 @@ @click="selectItem(item)" ref="item" > - {{ item.name }} - {{ item.folder }} + +