2024-04-03 11:25:54 +00:00
|
|
|
<!doctype html>
|
|
|
|
<html lang="en">
|
|
|
|
<head>
|
2024-04-29 06:32:14 +00:00
|
|
|
<meta charset="UTF-8" />
|
|
|
|
<link rel="icon" type="image/svg+xml" href="/appflowy.svg" />
|
2024-05-29 02:17:50 +00:00
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
2024-04-03 11:25:54 +00:00
|
|
|
<title>AppFlowy</title>
|
2024-06-05 06:08:19 +00:00
|
|
|
<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:description"
|
|
|
|
content="AppFlowy is an AI collaborative workspace where you achieve more without losing control of your data"
|
|
|
|
/>
|
|
|
|
<meta property="og:image"
|
|
|
|
content="https://d3uafhn8yrvdfn.cloudfront.net/website/production/_next/static/media/og-image.e347bfb5.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="https://d3uafhn8yrvdfn.cloudfront.net/website/production/_next/static/media/og-image.e347bfb5.png"
|
|
|
|
/>
|
|
|
|
<meta name="twitter:site" content="@appflowy" />
|
|
|
|
<meta name="twitter:creator" content="@appflowy" />
|
2024-06-26 11:04:17 +00:00
|
|
|
<link href="https://fonts.googleapis.com/css2?family=Noto+Color+Emoji&display=swap" rel="stylesheet">
|
|
|
|
|
2024-04-03 11:25:54 +00:00
|
|
|
</head>
|
|
|
|
<body id="body">
|
|
|
|
<div id="root"></div>
|
|
|
|
<script type="module" src="/src/main.tsx"></script>
|
2024-04-29 06:32:14 +00:00
|
|
|
<script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js"></script>
|
2024-05-29 02:17:50 +00:00
|
|
|
<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');
|
|
|
|
}
|
2024-04-29 06:32:14 +00:00
|
|
|
|
2024-05-29 02:17:50 +00:00
|
|
|
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>
|
2024-04-03 11:25:54 +00:00
|
|
|
</body>
|
|
|
|
</html>
|