/* * さわるなきけん! * DO NOT USE! * */ (function(){ let pluginDirPath = liberator.globalVariables.pmwriter_plugin_dir; let outputDir = liberator.globalVariables.pmwriter_output_dir; if (!(pluginDirPath && outputDir)) return; let AUTHORS = { Trapezoid: 'http://unsigned.g.hatena.ne.jp/Trapezoid/', anekos: 'http://d.hatena.ne.jp/nokturnalmortum/', "halt feits": 'http://project-p.jp/halt/', hogelog: 'http://d.hatena.ne.jp/hogelog/', janus_wel: 'http://d.hatena.ne.jp/janus_wel/', mattn: 'http://mattn.kaoriya.net', pekepeke: 'http://d.hatena.ne.jp/pekepekesamurai/', pekepekesamurai: 'http://d.hatena.ne.jp/pekepekesamurai/', suVene: 'http://d.zeromemory.info/', teramako: 'http://d.hatena.ne.jp/teramako/', }; function action () { liberator.plugins.pmwriter = {}; let U = liberator.plugins.libly.$U; let myname = __context__.NAME; let otags = liberator.eval('tags', liberator.plugins.pluginManager.list); let template = liberator.eval('template', liberator.plugins.pluginManager.list); // makeLink を無理矢理修正 let makeLink = liberator.eval('makeLink', liberator.plugins.pluginManager.list); liberator.plugins.pmwriter.makeLink = function (str) makeLink(str, true); liberator.log(makeLink) liberator.eval('makeLink = liberator.plugins.pmwriter.makeLink ', liberator.plugins.pluginManager.list); let linkTo; let tags = { __proto__: otags, name: function () {otags.name.apply(otags, arguments)} }; let ioService = services.get("io"); let files = io.readDirectory(pluginDirPath); let i = 0; let xml_index = <>; files.forEach(function (file) { if (!/\.js$/.test(file.path)) return; let src = io.readFile(file.path); if (!/PLUGIN_INFO/.test(src)) return; //if (i++ > 0) return; let uri = ioService.newFileURI(file); function Context (file) { this.NAME = file.leafName.replace(/\..*/, "").replace(/-([a-z])/g, function (m, n1) n1.toUpperCase()); }; let context = new Context(file); let PLUGIN_INFO; let detailFilename = context.NAME + '.html'; if (context.NAME == myname) return; context.watch('PLUGIN_INFO', function (n,N,O) { PLUGIN_INFO = O; throw 'STOP';}); try { services.get("subscriptLoader").loadSubScript(uri.spec, context); } catch (e) {} let info = PLUGIN_INFO; tags.name = function () {otags.name.apply(otags, arguments)}; let plugin = [ ]; plugin['name'] = context.NAME; plugin['info'] = {}; plugin['orgInfo'] = {}; for (let tag in tags){ plugin.orgInfo[tag] = info[tag]; let value = tags[tag](info); if (value && value.toString().length > 0){ plugin.push([tag, value]); plugin.info[tag] = value; } } let xml = {detailFilename} {template.table(plugin.name, plugin)} ; liberator.log(xml) io.writeFile(io.getFile(outputDir + detailFilename), xml.toString()); let link = 'http://vimperator.kurinton.net/' + detailFilename; let alink = AUTHORS[info.author]; let data = plugin.filter(function($_) /name|description|author/.test($_[0])); xml_index += {plugin.name} {plugin.info.description} {info.author} //xml_index += template.table(plugin.name, data); }); let title = "Vimperator Plugins in CodeRepos"; xml_index = {title}

{title}

{xml_index}
Name Description Author
; io.writeFile(io.getFile(outputDir + 'index.html'), xml_index.toString()); } commands.addUserCommand( ['pmwrite'], 'PMWriter', action, {}, true ); })(); // vim: sw=2 ts=2 et fdm=marker: