]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - modules/private/websites/tools/im/www/converse.html
Add ejabberd service and website
[perso/Immae/Config/Nix.git] / modules / private / websites / tools / im / www / converse.html
diff --git a/modules/private/websites/tools/im/www/converse.html b/modules/private/websites/tools/im/www/converse.html
new file mode 100644 (file)
index 0000000..5835b6e
--- /dev/null
@@ -0,0 +1,57 @@
+<!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>
+