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)}...
+
-