diff --git a/src/components/parser-components/codepen/codepen.js b/src/components/parser-components/codepen/codepen.js
new file mode 100644
index 0000000..0cd9dcb
--- /dev/null
+++ b/src/components/parser-components/codepen/codepen.js
@@ -0,0 +1,23 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+
+// adapted from CodePen official embed
+const CodePen = ({ title = '', source = '' }) => (
+
+);
+
+CodePen.propTypes = {
+ title: PropTypes.string,
+ source: PropTypes.string,
+};
+
+export default CodePen;
diff --git a/src/components/parser-components/iframe/iframe.js b/src/components/parser-components/iframe/iframe.js
new file mode 100644
index 0000000..17a8077
--- /dev/null
+++ b/src/components/parser-components/iframe/iframe.js
@@ -0,0 +1,13 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+
+const Iframe = ({ title = '', source = '' }) => (
+
+);
+
+Iframe.propTypes = {
+ title: PropTypes.string,
+ source: PropTypes.string,
+};
+
+export default Iframe;
diff --git a/src/components/parser-components/youtube/youtube.js b/src/components/parser-components/youtube/youtube.js
new file mode 100644
index 0000000..e6a3db8
--- /dev/null
+++ b/src/components/parser-components/youtube/youtube.js
@@ -0,0 +1,22 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+
+// adapted from YouTube official embed
+const YouTube = ({ title = '', source = '' }) => (
+
+);
+
+YouTube.propTypes = {
+ title: PropTypes.string,
+ source: PropTypes.string,
+};
+
+export default YouTube;
diff --git a/src/pages/home/useSeeMarkParse.js b/src/pages/home/useSeeMarkParse.js
index 1779565..25472ab 100644
--- a/src/pages/home/useSeeMarkParse.js
+++ b/src/pages/home/useSeeMarkParse.js
@@ -14,6 +14,9 @@ import Image, {
ImageLink,
} from '@/components/parser-components/image/image';
import InternalLink from '@/components/parser-components/internal-link/internal-link';
+import Iframe from '@/components/parser-components/iframe/iframe';
+import YouTube from '@/components/parser-components/youtube/youtube';
+import CodePen from '@/components/parser-components/codepen/codepen';
const useSeeMarkParse = ({ latexDelimiter, documentFormat, imageFiles }) => {
const seeMarkReactParse = useCallback(
@@ -35,6 +38,9 @@ const useSeeMarkParse = ({ latexDelimiter, documentFormat, imageFiles }) => {
imageLink: ImageLink,
imageDisplay: ImageDisplay,
imageDisplayLink: ImageDisplayLink,
+ iframe: Iframe,
+ youtube: YouTube,
+ codepen: CodePen,
},
})(markdown);
},