defaults.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import {
  2. compileSass,
  3. copy,
  4. generateFavicons,
  5. imageToWebP,
  6. optimiseSvg,
  7. renderMarkdownWithTemplate,
  8. } from "./processors.js"
  9. export const tasks = [
  10. {
  11. name: "styles",
  12. inputFiles: [{ pattern: "styles/**/*.scss", ignore: "**/_*.scss" }],
  13. stripPaths: ["styles/"],
  14. outputDir: "static/styles/",
  15. outputFileExtension: ".css",
  16. processor: compileSass,
  17. },
  18. {
  19. name: "icons",
  20. inputFiles: [{ pattern: "images/icons/*.svg" }],
  21. stripPaths: ["images/"],
  22. outputDir: "static/",
  23. outputFileExtension: ".svg",
  24. processor: optimiseSvg,
  25. },
  26. {
  27. name: "images",
  28. inputFiles: [{ pattern: "images/content/*.jpg" }],
  29. stripPaths: ["images/content/"],
  30. outputDir: "images/",
  31. outputFileExtension: ".webp",
  32. imageSizes: [
  33. "640w", "768w", "1024w", "1366w", "1600w", "1920w", "2560w",
  34. ],
  35. quality: 80,
  36. processor: imageToWebP,
  37. },
  38. {
  39. name: "favicons",
  40. inputFiles: [{ pattern: "images/favicon/*" }],
  41. stripPaths: ["images/favicon/"],
  42. outputDir: "static/meta/",
  43. processor: generateFavicons,
  44. },
  45. {
  46. name: "pages",
  47. inputFiles: [{ pattern: "markdown/*.md" }],
  48. stripPaths: ["markdown/"],
  49. outputFileExtension: ".html",
  50. processor: renderMarkdownWithTemplate,
  51. },
  52. {
  53. name: "static files",
  54. inputFiles: [{ pattern: "static/*" }],
  55. stripPaths: ["static/"],
  56. processor: copy,
  57. },
  58. ]
  59. export const opts = {
  60. outDir: "dist/",
  61. runDir: process.cwd(),
  62. cacheDir: ".cache",
  63. logLevel: "info",
  64. defaultTemplate: "default",
  65. include: {
  66. styles: [{ pattern: "~/.rhedyn/styles/*.scss" }],
  67. },
  68. templateDirs: ["templates/", "~/.rhedyn/templates/"],
  69. clean: true,
  70. site: {
  71. name: "Website generated by Rhedyn",
  72. shortName: "Rhedyn test site",
  73. description: "A website generated from files using Rhedyn",
  74. author: "Craig Fletcher",
  75. url: "https://www.leakypixel.net",
  76. language: "en-GB",
  77. backgroundColor: "#22242c",
  78. themeColor: "#f00",
  79. },
  80. }
  81. const defaults = {
  82. opts,
  83. tasks,
  84. }
  85. export default defaults