--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Converse</title>
+ <meta charset="utf-8">
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <meta name="description" content="Converse: An XMPP chat client which can be integrated into any website" />
+ <meta name="keywords" content="xmpp chat webchat converse.js Converse" />
+
+ <link type="text/css" rel="stylesheet" media="screen" href="https://cdn.conversejs.org/5.0.4/dist/converse.min.css" />
+ <style type="text/css">
+ #conversejs div.chat-msg__text pre {
+ background-color: #eee;
+ padding: 10px;
+ }
+ </style>
+ <script src="https://cdn.conversejs.org/3rdparty/libsignal-protocol.min.js"></script>
+ <script src="https://cdn.conversejs.org/5.0.4/dist/converse.min.js"></script>
+ <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/markdown-it/10.0.0/markdown-it.min.js"></script>
+ <script>
+ var md = window.markdownit({
+ html: true,
+ });
+ converse.plugins.add('markdown', {
+ //initialize () {
+ // const { _converse } = this;
+ // _converse.api.listen.on('afterMessageBodyTransformed', (view, text) => {
+ // let newtext = text.replace(/<br\/>/g, '\n').replace(/```/g, "\n```\n");
+ // newtext = md.render(newtext).replace(/^<p>/, "").replace(/<\/p>\s*$/, "");
+ // view.model.save({'message': newtext}, {'silent': true });
+ // });
+ //}
+ overrides: {
+ MessageView: {
+ transformBodyText: async function(text) {
+ let newtext = await this.__super__.transformBodyText.apply(this, arguments);
+ newtext = newtext.replace(/<br\/>/g, '\n').replace(/```/g, "\n```\n");
+ return md.render(newtext).replace(/^<p>/, "").replace(/<\/p>\s*$/, "");
+ }
+ }
+ }
+ });
+ converse.initialize({
+ //bosh_service_url: 'https://im.immae.fr/bosh',
+ websocket_url: 'wss://im.immae.fr/ws',
+ view_mode: 'fullscreen',
+ show_controlbox_by_default: true,
+ whitelisted_plugins: ['markdown'],
+ });
+ </script>
+ </head>
+ <body>
+ </body>
+</html>
+