Просмотр исходного кода

inject origin to agent-for-hackmd.js

Yuki Takei 7 лет назад
Родитель
Сommit
29aec8b393
2 измененных файлов с 16 добавлено и 3 удалено
  1. 13 3
      lib/routes/hackmd.js
  2. 3 0
      resource/js/agent-for-hackmd.js

+ 13 - 3
lib/routes/hackmd.js

@@ -1,11 +1,13 @@
 module.exports = function(crowi, app) {
   const path = require('path');
-  const fs = require('graceful-fs');
+  const swig = require('swig-templates');
 
   // load GROWI agent script for HackMD
   const manifest = require(path.join(crowi.publicDir, 'manifest.json'));
   const agentScriptPath = path.join(crowi.publicDir, manifest['js/agent-for-hackmd.js']);
-  const agentScriptContent = fs.readFileSync(agentScriptPath, 'utf8').toString();
+  // generate swig template
+  const agentScriptContentTpl = swig.compileFile(agentScriptPath);
+
 
   /**
    * loadAgent action
@@ -15,8 +17,16 @@ module.exports = function(crowi, app) {
    * @param {object} res
    */
   const loadAgent = function(req, res) {
+
+    // generate definitions to replace
+    const definitions = {
+      origin: `${req.protocol}://${req.get('host')}`
+    };
+    // inject
+    const script = agentScriptContentTpl(definitions);
+
     res.set('Content-Type', 'application/javascript');
-    res.send(agentScriptContent);
+    res.send(script);
   };
 
   return {

+ 3 - 0
resource/js/agent-for-hackmd.js

@@ -1 +1,4 @@
 console.log('GROWI agent for HackMD loaded.');
+
+const origin = '{{origin}}';
+console.log('origin:', origin);