Stackedit/static/landing/share.html

178 lines
6.5 KiB
HTML
Raw Normal View History

2023-03-30 07:56:24 +00:00
<!DOCTYPE html>
<html>
<head>
2023-03-30 10:21:22 +00:00
<title>文章分享 - StackEdit中文版</title>
2023-03-30 07:56:24 +00:00
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://stackedit.cn/">
<link rel="icon" href="static/landing/favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="static/landing/favicon.ico" type="image/x-icon">
<meta charset="UTF-8">
<meta name="keywords" content="Markdown编辑器,StackEdit中文版,StackEdit汉化版,StackEdit,在线Markdown,笔记利器,Markdown笔记">
<meta name="description"
content="支持直接将码云Gitee、GitHub、Gitea等仓库作为笔记存储仓库且支持拖拽/粘贴上传图片并且可以直接在页面编辑同步和管理的Markdown编辑器。">
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1">
<meta name="baidu-site-verification" content="code-tGpn2BT069" />
<meta name="msvalidate.01" content="90A9558158543277BD284CFA054E7F5B" />
<link rel="stylesheet" href="style.css">
<style>
.share-header {
position: fixed;
top: 0;
left: 0;
width: 100%;
background-color: #383c4a;
color: #fff;
padding: 10px;
box-sizing: border-box;
z-index: 99999;
}
.share-header .logo {
margin: 0 0 -8px 0;
}
.share-header nav {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
.share-header nav ul {
list-style-type: none;
margin: 0;
padding: 0;
display: flex;
flex-direction: row;
}
.share-header nav li {
margin: 0 10px;
}
.share-header nav a {
color: #fff;
text-decoration: none;
}
.share-header nav a:hover {
text-decoration: underline;
}
.share-content {
2023-04-10 11:57:11 +00:00
transform: translateY(50px);
height: 100vh;
2023-03-30 07:56:24 +00:00
}
</style>
<script type="text/javascript">
function getQueryString(name) {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return unescape(r[2]);
}
return null;
}
function appendTagHtml(newdoc, tagName, targetParentEle) {
const tags = newdoc.getElementsByTagName(tagName);
if (!tags) {
return;
}
for (let i = 0; i < tags.length; i++) {
targetParentEle.append(tags[i]);
}
}
window.onload = function() {
const xhr = new XMLHttpRequest();
const gistId = getQueryString('id');
let accessToken = null;
2023-04-09 13:35:55 +00:00
const tokens = window.localStorage.getItem('data/tokens');
if (tokens) {
const tokensObj = JSON.parse(tokens);
if (tokensObj.data && tokensObj.data.gitee) {
const tokenArr = Object.keys(tokensObj.data.gitee).map(it => tokensObj.data.gitee[it]).filter(it => it && it.isLogin);
if (tokenArr.length > 0) {
accessToken = tokenArr[0].accessToken;
2023-03-30 07:56:24 +00:00
}
}
}
2023-09-19 01:29:28 +00:00
const url = `https://gitee.com/api/v5/gists/${gistId}`;
let urlWithToken = url;
let withToken = false;
2023-03-30 07:56:24 +00:00
if (accessToken) {
2023-09-19 01:29:28 +00:00
urlWithToken = `${url}?access_token=${accessToken}`;
withToken = true;
2023-03-30 07:56:24 +00:00
}
2023-09-19 01:29:28 +00:00
xhr.open('GET', urlWithToken);
2023-03-30 07:56:24 +00:00
xhr.onload = function() {
if (xhr.status === 200) {
const newdoc = document.implementation.createHTMLDocument("");
const body = JSON.parse(xhr.responseText);
for (let key in body.files) {
newdoc.documentElement.innerHTML = body.files[key].content;
}
const currHead = document.head;
// 头部
appendTagHtml(newdoc, 'style', currHead);
// title
document.title = newdoc.title + ' - StackEdit中文版';
// 内容
const shareContent = document.getElementsByClassName('share-content')[0];
shareContent.innerHTML = newdoc.body.innerHTML;
2023-04-06 06:00:15 +00:00
document.body.className = newdoc.body.className;
2023-03-30 07:56:24 +00:00
} else if (xhr.status === 403) {
const rateLimit = xhr.responseText && xhr.responseText.indexOf('Rate Limit') >= 0;
const appUri = `${window.location.protocol}//${window.location.host}/app`;
2023-03-30 10:21:22 +00:00
document.getElementById('div_info').innerHTML = `${rateLimit ? "请求太过频繁" : "无权限访问"},请登录 <a href="${appUri}" target="_brank">主文档空间</a> 后再刷新此页面!`;
2023-09-19 01:29:28 +00:00
} else if (xhr.status === 401) {
if (withToken) {
withToken = false;
xhr.open('GET', url);
2023-10-18 01:09:27 +00:00
xhr.send();
2023-09-19 01:29:28 +00:00
} else {
console.error('An error occurred: ' + xhr.status);
document.getElementById('div_info').innerHTML = `分享内容获取失败或已失效!请登录 <a href="${appUri}" target="_brank">主文档空间</a> 后再刷新此页面!`;
}
2023-03-30 07:56:24 +00:00
} else {
console.error('An error occurred: ' + xhr.status);
2023-09-19 01:29:28 +00:00
document.getElementById('div_info').innerHTML = `分享内容获取失败或已失效!请登录 <a href="${appUri}" target="_brank">主文档空间</a> 后再刷新此页面!`;
2023-03-30 07:56:24 +00:00
}
};
xhr.send();
}
</script>
</head>
<body>
<div class="share-header">
<nav>
2023-03-30 10:21:22 +00:00
<a class="logo" href="https://stackedit.cn" target="_blank">
2023-03-30 07:56:24 +00:00
<img src="static/landing/logo.svg" height="30px"/>
</a>
<ul>
2023-03-30 10:21:22 +00:00
<li><a href="https://stackedit.cn" target="_blank">首页</a></li>
<li><a href="https://stackedit.cn/app" target="_blank">写笔记</a></li>
2023-03-30 07:56:24 +00:00
</ul>
</nav>
</div>
<div class="share-content stackedit">
2023-03-30 10:21:22 +00:00
<div id="div_info" style="text-align: center; height: 600px;">文章加载中......</div>
2023-03-30 07:56:24 +00:00
</div>
<script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>
<!-- built files will be auto injected -->
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?20a1e7a201b42702c49074c87a1f1035";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
</body>
</html>