%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /proc/thread-self/root/www/specpages-backup/themes/book/scripts/
Upload File :
Create Path :
Current File : //proc/thread-self/root/www/specpages-backup/themes/book/scripts/render.js

/* global hexo */

'use strict';

var ejs = require('ejs');

var menu_file, home_file;

// before_post_render

hexo.extend.filter.register('before_post_render', function (data) {
  // preprocess markdown file
})

// after_post_render

hexo.extend.filter.register('after_post_render', function (data) {
  // checkbox in list
  let checkbox_pattern = /<li>([\s]*)<input type="checkbox" id="(\w*)"(>| checked="true">| checked>)/g;
  let checkbox_replacement = "<li class=\"checkbox-item\">$1<input type=\"checkbox\" id=\"$2\"$3";
  data.content = data.content.replace(checkbox_pattern, checkbox_replacement);
  return data;
})

// before_generate

// generator

hexo.extend.generator.register('home', function(locals) {
  var menu_path = hexo.theme.config.menu_page;
  var home_path = hexo.theme.config.home_page;

  locals.pages.forEach(function (page) {
    if (page.source === menu_path) {
      menu_file = page;
    }
    else if (page.source === home_path) {
      home_file = page;
    }
  })

  return {
    path: 'index.html',
    data: home_file,
    layout: ['index']
  };
});

// after_generate

hexo.extend.filter.register('after_generate', function () {
  hexo.route.remove(home_file.path);
  hexo.route.remove(menu_file.path);
});

// renderer

hexo.extend.renderer.register('ejs', 'html', function(data, options){
  options.filename = data.path;
  options.menu = menu_file ? menu_file.content : '';
  return ejs.render(data.text, options);
}, true);

Zerion Mini Shell 1.0