From 36dda8085b6589956e6e6462679853e94a1306c9 Mon Sep 17 00:00:00 2001 From: ParthJohri Date: Tue, 30 Jul 2024 21:45:19 +0530 Subject: [PATCH 1/2] fix#126: Added Rendering of Markdown for Event Descriptions. --- package-lock.json | 43 ++++++++++++++++++++++++++++++++++++++++ package.json | 3 +++ src/js/events/Meetup.tsx | 7 +++++-- 3 files changed, 51 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 940c84ff..08e12918 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,9 @@ "name": "newwwie.com", "version": "1.0.0", "license": "ISC", + "dependencies": { + "showdown": "^2.1.0" + }, "devDependencies": { "@types/lodash": "^4.17.4", "@types/nunjucks": "^3.2.6", @@ -4579,6 +4582,31 @@ "node": ">=8" } }, + "node_modules/showdown": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.1.0.tgz", + "integrity": "sha512-/6NVYu4U819R2pUIk79n67SYgJHWCce0a5xTP979WbNp0FL9MN1I1QK662IDU1b6JzKTvmhgI7T7JYIxBi3kMQ==", + "license": "MIT", + "dependencies": { + "commander": "^9.0.0" + }, + "bin": { + "showdown": "bin/showdown.js" + }, + "funding": { + "type": "individual", + "url": "https://www.paypal.me/tiviesantos" + } + }, + "node_modules/showdown/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || >=14" + } + }, "node_modules/side-channel": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", @@ -8999,6 +9027,21 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, + "showdown": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/showdown/-/showdown-2.1.0.tgz", + "integrity": "sha512-/6NVYu4U819R2pUIk79n67SYgJHWCce0a5xTP979WbNp0FL9MN1I1QK662IDU1b6JzKTvmhgI7T7JYIxBi3kMQ==", + "requires": { + "commander": "^9.0.0" + }, + "dependencies": { + "commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==" + } + } + }, "side-channel": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", diff --git a/package.json b/package.json index ff3e3263..8e438b5a 100644 --- a/package.json +++ b/package.json @@ -49,5 +49,8 @@ "webpack": "^5.76.0", "webpack-cli": "^4.9.2", "webpack-dev-server": "^4.9.0" + }, + "dependencies": { + "showdown": "^2.1.0" } } diff --git a/src/js/events/Meetup.tsx b/src/js/events/Meetup.tsx index 18c5c73a..86501e80 100644 --- a/src/js/events/Meetup.tsx +++ b/src/js/events/Meetup.tsx @@ -1,7 +1,7 @@ import { ComponentChildren, render } from "preact"; import { events } from "./events-data"; import { EventItem, Group, Image, Venue } from "./types"; - +import showdown from "showdown" export class Meetup { /** * @name meetupResponse @@ -46,6 +46,9 @@ export class Meetup { const prettyDay = this.niceDay(startTime.getDay()); const prettyMonth = this.niceMonth(startTime.getMonth()); const prettyTime = this.niceTime(startTime); + const converter = new showdown.Converter(); + let formattedEventDescription = converter.makeHtml(event.description.substring(0, 240)).toString(); + formattedEventDescription = formattedEventDescription.replace(/<\/?p>/g, ''); return (
  • @@ -66,7 +69,7 @@ export class Meetup { Hosted by: {group.name}

    -

    {event.description.substring(0, 240)}...

    +