modified: src/middleware/baseContext.js modified: src/routes/logs.js modified: src/routes/newsletter.js modified: src/utils/baseContext.js new file: src/utils/validateEmail.js modified: src/views/layouts/main.handlebars modified: src/views/pages/logs.handlebars new file: src/views/partials/site_header.handlebars
modified: src/middleware/errorHandler.js modified: src/middleware/index.js modified: src/routes/blog_index.js modified: src/routes/contact.js modified: src/routes/errorPage.js modified: src/routes/logs.js modified: src/routes/newsletter.js modified: src/routes/post.js modified: src/routes/sitemap.js modified: src/utils/baseContext.js new file: src/utils/filterSecureLinks.js
modified: src/routes/newsletter.js modified: src/views/pages/contact.handlebars modified: src/views/pages/newsletter.handlebars
modified: package.json modified: src/middleware/index.js modified: src/routes/contact.js modified: src/routes/index.js modified: src/routes/newsletter.js modified: src/routes/pages.js modified: src/services/newsletterService.js modified: src/utils/baseContext.js new file: src/utils/csrfToken.js new file: src/utils/formLimiter.js modified: src/utils/sendContactMail.js new file: src/utils/verifyHCaptcha.js modified: src/views/pages/contact.handlebars modified: src/views/pages/newsletter.handlebars modified: yarn.lock
modified: package-lock.json modified: package.json modified: src/routes/index.js modified: src/routes/newsletter.js modified: src/routes/pages.js new file: src/routes/rssFeed.js new file: src/services/rssFeedService.js modified: src/utils/sendContactMail.js modified: src/utils/sendNewsletterSubscriptionMail.js new file: src/utils/transporter.js modified: src/views/pages/home.handlebars new file: src/views/pages/newsletter-success.handlebars modified: src/views/pages/thankyou.handlebars modified: yarn.lock
new file: data/newsletter-emails.json new file: nodemon.json modified: package-lock.json modified: package.json modified: public/css/footer.css modified: public/css/header.css modified: public/css/main.css modified: public/css/nav.css new file: public/css/newsletter.css modified: public/css/page.css modified: public/css/placeholder.css modified: public/css/post.css modified: public/css/sidebar.css modified: public/css/styles.css new file: public/css/toc.css modified: public/css/tools.css modified: public/js/post.js new file: public/js/sticky-toc.js new file: public/js/toggle-dark-mode.js modified: src/app.js modified: src/middleware/index.js modified: src/routes/construction.js modified: src/routes/contact.js modified: src/routes/index.js new file: src/routes/newsletter.js new file: src/services/newsletterService.js modified: src/services/postsService.js renamed: src/utils/mailer.js -> src/utils/sendContactMail.js new file: src/utils/sendNewsletterSubscriptionMail.js modified: src/views/pages/about.handlebars modified: src/views/pages/construction.handlebars modified: src/views/pages/contact.handlebars modified: src/views/pages/home.handlebars new file: src/views/pages/newsletter.handlebars modified: src/views/pages/page.handlebars modified: src/views/pages/post.handlebars modified: src/views/pages/site-map.handlebars modified: src/views/pages/thankyou.handlebars modified: src/views/partials/headers.handlebars modified: src/views/partials/postsMenu.handlebars new file: wireframe.ascii new file: wireframe.html modified: yarn.lock modified: content (modified content, untracked content)