_includes/userComments.11ty.tsx (22 lines of code) (raw):
import { Fragment } from "jsx-async-runtime/jsx-dev-runtime";
export type UserCommentsProps = {
pageUrl: string;
theme: "light" | "dark";
};
export const UserComments = ({
pageUrl,
theme = "light",
}: UserCommentsProps): JSX.Element => {
// Do not render comments when in local/development mode.
// See https://www.11ty.dev/docs/environment-vars/#eleventy-supplied for environment variables documentation.
if (
process.env.ELEVENTY_RUN_MODE == "serve" ||
process.env.ELEVENTY_RUN_MODE == "watch"
) {
return <></>;
}
const remark_config = `var remark_config = {
host: "https://comments.blog.jetbrains.com",
site_id: 'remark',
components: ['embed'],
url: 'https://www.jetbrains.com/guide/${pageUrl.replace(/^\/+/, "")}',
theme: '${theme}',
locale: 'en'
};`;
const remark_script = `!function(e,n){for(var o=0;o<e.length;o++){var r=n.createElement("script"),c=".js",d=n.head||n.body;"noModule"in r?(r.type="module",c=".mjs"):r.async=!0,r.defer=!0,r.src=remark_config.host+"/web/"+e[o]+c,d.appendChild(r)}}(remark_config.components||["embed"],document);`;
return (
<Fragment>
<hr />
<div id="remark42"></div>
<script>{remark_config}</script>
<script>{remark_script}</script>
</Fragment>
);
};