Skip to content

Commit 222f909

Browse files
author
JelteMX
committed
Add fenced blocks
1 parent 8528f92 commit 222f909

File tree

5 files changed

+26
-6
lines changed

5 files changed

+26
-6
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "texttemplateelement",
33
"widgetName": "TextTemplateElement",
4-
"version": "1.1.0",
4+
"version": "1.2.0",
55
"description": "My widget description",
66
"copyright": "2020 Mendix Technology BV",
77
"author": "Jelte Lagendijk <[email protected]>",
@@ -37,6 +37,7 @@
3737
"dependencies": {
3838
"classnames": "^2.2.6",
3939
"react-markdown": "^4.3.1",
40+
"remark-fenced-divs": "^1.1.1",
4041
"remark-shortcodes": "^0.3.1"
4142
}
4243
}

src/TextTemplateElement.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@ import classNames from "classnames";
44
import ReactMarkdown from "react-markdown/with-html";
55

66
const shortcodes = require("remark-shortcodes");
7+
const fenced = require("remark-fenced-divs");
78

89
import { TextTemplateElementContainerProps } from "../typings/TextTemplateElementProps";
910

1011
import "./ui/TextTemplateElement.scss";
1112

1213
import { filteredList } from "./util/react-markdown";
13-
import { getRenderers } from "./util/shortcodes";
14+
import { getRenderers } from "./util/renderers";
1415
import { replaceImages, replaceFile } from "./util/replacer";
1516
import ErrorBoundary from "./components/ErrorBoundary";
1617

@@ -60,7 +61,7 @@ const TextTemplateElement: FunctionComponent<TextTemplateElementContainerProps>
6061
includeNodeIndex={optIncludeNodeIndex}
6162
unwrapDisallowed={optUnwrapDisallowed}
6263
disallowedTypes={disallowed}
63-
plugins={[shortcodes]}
64+
plugins={[shortcodes, fenced]}
6465
renderers={getRenderers({ contentRender: dataContent })}
6566
/>
6667
</ErrorBoundary>

src/package.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8" ?>
22
<package xmlns="http://www.mendix.com/package/1.0/">
3-
<clientModule name="TextTemplateElement" version="1.1.0" xmlns="http://www.mendix.com/clientModule/1.0/">
3+
<clientModule name="TextTemplateElement" version="1.2.0" xmlns="http://www.mendix.com/clientModule/1.0/">
44
<widgetFiles>
55
<widgetFile path="TextTemplateElement.xml"/>
66
</widgetFiles>

src/util/shortcodes.tsx renamed to src/util/renderers.tsx

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import { SFC, createElement, ComponentType, ReactElement, ReactNode } from "react";
2+
import classNames from "classnames";
23

34
export interface RendererProps<TProps = any> {
45
readonly identifier: string;
56
readonly attributes: TProps;
67
}
78

8-
export type Renderer = SFC<RendererProps>;
9+
export type Renderer = SFC<RendererProps> | SFC<any>;
910
export type Renderers = { [key: string]: Renderer };
1011

1112
const nodesToComponents: Record<string, ComponentType<any>> = {};
@@ -23,12 +24,24 @@ const shortcodeRenderer = (getRenderProps: GetRendersProps) => {
2324
};
2425
};
2526

27+
const fencedDiv = (props: { data: any; children: ReactElement }): ReactElement | null => {
28+
const divProps = props.data.hProperties;
29+
const className = classNames(divProps.className);
30+
const children = props.children;
31+
return (
32+
<div {...divProps} className={className}>
33+
{children}
34+
</div>
35+
);
36+
};
37+
2638
export interface GetRendersProps {
2739
contentRender?: ReactNode;
2840
}
2941

3042
export const getRenderers = (props: GetRendersProps): Renderers => {
3143
return {
32-
shortcode: shortcodeRenderer(props)
44+
shortcode: shortcodeRenderer(props),
45+
fencedDiv
3346
};
3447
};

yarn.lock

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9825,6 +9825,11 @@ regjsparser@^0.6.4:
98259825
dependencies:
98269826
jsesc "~0.5.0"
98279827

9828+
remark-fenced-divs@^1.1.1:
9829+
version "1.1.1"
9830+
resolved "https://registry.yarnpkg.com/remark-fenced-divs/-/remark-fenced-divs-1.1.1.tgz#99970e9dcf47903011de002e7033104a9a107cb5"
9831+
integrity sha512-VydiaIES34Ywlzofwnv9nQy0OmfXrMwl4zKtHV0GAhFDadoxD9Ufhg1XiC3xfZJXj/0F9cPt5TcSPOLx9YZoJw==
9832+
98289833
remark-parse@^5.0.0:
98299834
version "5.0.0"
98309835
resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95"

0 commit comments

Comments
 (0)