// ColumnSiyuanPageTitle // (c) 2023 qiancang // This is a script for Directory Opus. // See https://www.gpsoft.com.au/DScripts/redirect.asp?page=scripts for development information. // Called by Directory Opus to initialize the script function OnInit(initData) { initData.name = "ColumnSiyuanPageTitle"; initData.version = "1.0"; initData.copyright = "(c) 2023 qiancang"; // initData.url = "https://resource.dopus.com/c/buttons-scripts/16"; initData.desc = "Show the title of sy file"; initData.default_enable = true; initData.min_version = "12.0"; } // Called to add columns to Opus function OnAddColumns(addColData) { var col = addColData.AddColumn(); col.name = 'SiyuanPageTitle'; col.header = 'SyTitle'; // col.label = 'EverythingFolderSize'; col.method = 'OnColumn'; } function OnColumn(scriptColData) { var item = scriptColData.item; var filePath = ""; if(item.is_dir){ var patt = /^\d{14}-[a-zA-Z0-9]{7}$/; if(!patt.test(item.name)) return; filePath = item.realpath + ".sy"; } else{ if (item.ext != ".sy") return; else filePath = item.realpath; } var file = DOpus.FSUtil.OpenFile(filePath, "r"); var blob; var isNotebook = false; if(file.error!=0){ filePath = item.realpath+"\\.siyuan\\conf.json"; file = DOpus.FSUtil.OpenFile(filePath, "r"); if(file.error!=0) return; isNotebook = true; } blob = file.Read(); var text = DOpus.Create.StringTools.Decode(blob,"utf-8"); if(isNotebook) scriptColData.value = JSON.parse(text).name; else scriptColData.value = JSON.parse(text).Properties.title; }