CSDN Markdown编写博客 内容丢失恢复

  • Post author:
  • Post category:其他


CSDN Markdown编写博客 内容丢失怎么办?

被CSDN 的Markdown吃掉两篇文章,一怒之下,花了半天时间,终于让我找到方法挽救丢失的文章了。

适用场景:

把博客编辑当成了编写新博客,覆盖掉了老博客,无法返回。

浏览器不崩溃,返回Markdown,编写内容全没了。

编写新博客A中,关闭页面,然后打开新的编写新博客B页面,覆盖掉了已编写的A内容。

还没遇见其他情况。。。。

已测试,此方法在chrome和safari浏览器中有效,理论上其他浏览器应该也可行。

此方法支持跨浏览器,也就是在A浏览器编写文章丢失,可以再B浏览器中使用此方法找回

这里以Chrome 为例。

Step 1

打开一个新的发布文章页面,编辑页面也行。

在这里插入图片描述

Step 2

打开开发者工具,然后切换到Application中(safari中是切换到存储空间),主要用到Strorage中的IndexedDB。在IndexedDB中可以找到你丢失的博客内容,找到你需要找回的那条数据,记住key值。

在这里插入图片描述

注意看text里的内容,有些是浏览版,有些是Markdown编辑版,最好找Markdown版本,可以直接复制重新发布博客。

Step 3

复制下列JS代码,依据你IndexedDB,修改idb配置

var idb={
	name:'stackedit-db',//数据库名
	version:1,//版本号
	store:'objects',//仓库名
	db:null
}
function open(){
	var r=indexedDB.open(idb.name,idb.version)
	r.onsuccess = function (event) {
  		idb.db = r.result;
  		console.log('数据库打开成功');
	};
}
function read(key) {
	var store=idb.store;
   var transaction = idb.db.transaction([store],'readonly');
   var objectStore = transaction.objectStore(store);
   var request = objectStore.get(key);
   request.onerror = function(event) {
     console.log('事务失败');
   };
   request.onsuccess = function( event) {
      if (request.result) {
      var str=request.result.text;
      console.log(str.replace(/^\s+|\s+$/g,"").substr(-18));      			download('indexedDb_'+str.replace(/^\s+|\s+$/g,"").substr(-18)+'.txt',request.result.text);
      } else {
        console.log('未获得数据记录');
      }
   };
}
function download(filename, text) {
    var pom = document.createElement('a');
    pom.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
    pom.setAttribute('download', filename);
    if (document.createEvent) {
        var event = document.createEvent('MouseEvents');
        event.initEvent('click', true, true);
        pom.dispatchEvent(event);
    } else {
        pom.click();
    }
}

再把代码放到控制台。最后依次执行


open();


read(key);

//key 为step2中你找到的key值

在这里插入图片描述

大功告成,现在你可以到你浏览器的下载目录找到你丢失的博客了。

注意:如果浏览器拦截下载,将失败。