processor.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /* eslint-disable no-undef, no-var, vars-on-top, no-restricted-globals, regex/invalid */
  2. // ignore lint error because this file is js as mongoshell
  3. // ===========================================
  4. // processors for old format
  5. // ===========================================
  6. function drawioProcessor(body) {
  7. var oldDrawioRegExp = /:::\s?drawio\n(.+?)\n:::/g; // drawio old format
  8. return body.replace(oldDrawioRegExp, '``` drawio\n$1\n```');
  9. }
  10. function plantumlProcessor(body) {
  11. var oldPlantUmlRegExp = /@startuml\n([\s\S]*?)\n@enduml/g; // plantUML old format
  12. return body.replace(oldPlantUmlRegExp, '``` plantuml\n$1\n```');
  13. }
  14. function tsvProcessor(body) {
  15. var oldTsvTableRegExp = /::: tsv(-h)?\n([\s\S]*?)\n:::/g; // TSV old format
  16. return body.replace(oldTsvTableRegExp, '``` tsv$1\n$2\n```');
  17. }
  18. function csvProcessor(body) {
  19. var oldCsvTableRegExp = /::: csv(-h)?\n([\s\S]*?)\n:::/g; // CSV old format
  20. return body.replace(oldCsvTableRegExp, '``` csv$1\n$2\n```');
  21. }
  22. function bracketlinkProcessor(body) {
  23. // https://regex101.com/r/btZ4hc/1
  24. var oldBracketLinkRegExp = /(?<!\[)\[{1}(\/.*?)\]{1}(?!\])/g; // Page Link old format
  25. return body.replace(oldBracketLinkRegExp, '[[$1]]');
  26. }
  27. function mdcontPrefixProcessor(body) {
  28. var oldMdcontPrefixRegExp = /#mdcont-/g;
  29. return body.replace(oldMdcontPrefixRegExp, '#');
  30. }
  31. // processor for MIGRATION_TYPE=custom
  32. function customProcessor(body) {
  33. // ADD YOUR PROCESS HERE!
  34. // https://github.com/weseek/growi/discussions/7180
  35. return body;
  36. }
  37. // ===========================================
  38. // define processors
  39. // ===========================================
  40. function getProcessorArray(migrationType) {
  41. var oldFormatProcessors;
  42. switch (migrationType) {
  43. case 'v6-drawio':
  44. oldFormatProcessors = [drawioProcessor];
  45. break;
  46. case 'v6-plantuml':
  47. oldFormatProcessors = [plantumlProcessor];
  48. break;
  49. case 'v6-tsv':
  50. oldFormatProcessors = [tsvProcessor];
  51. break;
  52. case 'v6-csv':
  53. oldFormatProcessors = [csvProcessor];
  54. break;
  55. case 'v6-bracketlink':
  56. oldFormatProcessors = [bracketlinkProcessor];
  57. break;
  58. case 'mdcont':
  59. oldFormatProcessors = [mdcontPrefixProcessor];
  60. break;
  61. case 'v6':
  62. oldFormatProcessors = [drawioProcessor, plantumlProcessor, tsvProcessor, csvProcessor, bracketlinkProcessor];
  63. break;
  64. case 'custom':
  65. oldFormatProcessors = [customProcessor];
  66. break;
  67. default:
  68. oldFormatProcessors = [];
  69. }
  70. return oldFormatProcessors;
  71. }
  72. module.exports = getProcessorArray;