mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2025-07-23 17:11:23 +00:00

* feat: open editing * fix: use cdn to replace build react and react-dom * fix: replace mention page icon * fix: replace optimize web bundle
116 lines
3.0 KiB
HTML
116 lines
3.0 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<link
|
|
rel="icon"
|
|
type="image/svg+xml"
|
|
href="/appflowy.ico"
|
|
/>
|
|
<link
|
|
rel="canonical"
|
|
href="https://appflowy.com"
|
|
/>
|
|
<meta
|
|
name="viewport"
|
|
content="width=device-width, initial-scale=1.0"
|
|
>
|
|
<title>AppFlowy</title>
|
|
<meta
|
|
name="description"
|
|
content="AppFlowy is an AI collaborative workspace where you achieve more without losing control of your data"
|
|
/>
|
|
<meta
|
|
property="og:title"
|
|
content="AppFlowy"
|
|
/>
|
|
<meta
|
|
property="og:site_name"
|
|
content="AppFlowy"
|
|
>
|
|
<meta
|
|
property="og:description"
|
|
content="AppFlowy is an AI collaborative workspace where you achieve more without losing control of your data"
|
|
/>
|
|
<meta
|
|
property="og:image"
|
|
content="/og-image.png"
|
|
/>
|
|
<meta
|
|
property="og:url"
|
|
content="https://appflowy.com"
|
|
/>
|
|
<meta
|
|
name="twitter:card"
|
|
content="summary_large_image"
|
|
/>
|
|
<meta
|
|
name="twitter:title"
|
|
content="AppFlowy"
|
|
/>
|
|
<meta
|
|
name="twitter:description"
|
|
content="AppFlowy is an AI collaborative workspace where you achieve more without losing control of your data"
|
|
/>
|
|
<meta
|
|
name="twitter:image"
|
|
content="/og-image.png"
|
|
/>
|
|
<meta
|
|
name="twitter:site"
|
|
content="@appflowy"
|
|
/>
|
|
<meta
|
|
name="twitter:creator"
|
|
content="@appflowy"
|
|
/>
|
|
<link
|
|
href="https://fonts.googleapis.com/css2?family=Noto+Color+Emoji&display=swap"
|
|
rel="stylesheet"
|
|
>
|
|
<%- cdnLinks %>
|
|
|
|
</head>
|
|
<body id="body">
|
|
<div id="root"></div>
|
|
<script
|
|
type="module"
|
|
src="/src/main.tsx"
|
|
></script>
|
|
|
|
<script>
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
const userAgent = window.navigator.userAgent.toLowerCase();
|
|
const body = document.body;
|
|
const isWin = userAgent.indexOf('win') > -1;
|
|
const isMac = userAgent.indexOf('mac') > -1;
|
|
const isLinux = userAgent.indexOf('linux') > -1;
|
|
const isFirefox = userAgent.indexOf('firefox') > -1;
|
|
const isChrome = userAgent.indexOf('chrome') > -1;
|
|
const isSafari = userAgent.indexOf('safari') > -1;
|
|
if (isWin) {
|
|
body.setAttribute('data-os', 'windows');
|
|
} else if (isMac) {
|
|
body.setAttribute('data-os', 'mac');
|
|
} else if (isLinux) {
|
|
body.setAttribute('data-os', 'linux');
|
|
} else {
|
|
body.setAttribute('data-os', 'unknown');
|
|
}
|
|
|
|
if (isFirefox) {
|
|
body.setAttribute('data-browser', 'firefox');
|
|
} else if (isChrome) {
|
|
body.setAttribute('data-browser', 'chrome');
|
|
} else if (isSafari) {
|
|
body.setAttribute('data-browser', 'safari');
|
|
} else {
|
|
body.setAttribute('data-browser', 'unknown');
|
|
}
|
|
});
|
|
</script>
|
|
|
|
|
|
</body>
|
|
</html>
|