plugin.js 980 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. const plugins = [
  2. // require('crowi-plugin-...')
  3. ]
  4. // import all plugins
  5. var pluginMetaDatas = [];
  6. plugins.forEach((plugin) => {
  7. pluginMetaDatas.push(plugin.meta);
  8. })
  9. export default class CrowiPlugin {
  10. /**
  11. * plug-in PreProcessors
  12. *
  13. * @param {Crowi} crowi
  14. * @param {CrowiRenderer} crowiRenderer
  15. *
  16. * @memberof CrowiPlugin
  17. */
  18. pluginPreProcessors(crowi, crowiRenderer) {
  19. var additionalPreProcessors = [];
  20. pluginMetaDatas.forEach((meta) => {
  21. // v1
  22. if (meta.pluginSchemaVersion === 1) {
  23. meta.preProcessorFactories.forEach((f) => {
  24. // instanciate PreProcessor
  25. var preProcessor = f(crowi);
  26. additionalPreProcessors.push(preProcessor);
  27. })
  28. }
  29. });
  30. crowiRenderer.preProcessors = crowiRenderer.preProcessors.concat(
  31. crowiRenderer.preProcessors, additionalPreProcessors);
  32. }
  33. }
  34. window.crowiPlugin = new CrowiPlugin(); // FIXME