将你的博客存到Dropbox和Github(Nodejs实现方法)

将你的博客存到Dropbox和Github(Nodejs实现方法)

前几天心血来潮挖了个坑,花了一天的时间弄了个Purelog的alpah版,后来我想干脆把这个坑挖大点,于时又折腾了整整四天,于是Purelog的beta发布了,同时还发布Purelog的官方网站。http://Purelog.org

欢迎到github上star和fore,欢迎pull request、 无限欢迎开发插件与开发主题,欢迎使用评测,欢迎练手,各种欢迎 具体的配置与插件开发,我在官方网站上有写指南。

#以下是摘自readme的介绍

如果你憎恨Wordpress的臃肿与性能,如果你想专注于写作,如果你正在或者准备使用Markdown写作,如果希望将你的文章保存到Dropbox或者Gibhub,如果你想获取极高的响应速度,如果你是一个Node.js的开发者,那么你一定要尝试一下Purelog。

##Purelog的特点

  • 极速,Purelog在启动的时候,会将博客的文章读取内存,完全不需要再读取硬盘,所以响应非常快速
  • 基于Markdown,Purelog基于文件式的Markdown,这就意味你只需要将Markdown文件保存到某个文件夹就可以了
  • 支持Dropbox共享链接的读取,你可以将文章保存至Dropbox,不需要Dropbox的授权
  • 支持Git仓库,你可以将文章提交至Git,然后Purelog会自动索引Git仓库中的文章。
  • 支持多主题
  • 支持插件扩展

##Purelog适合于哪些人群

  • 有自己的VPS或者云主机,如Appflog,总之,你需要Node.js的环境
  • 有一定的动手能力,比如说能部署Node.js,会使用npm install -g purelog
  • 正在或者准备用Markdown写作
  • 希望专注写作
  • Node.js的开发者,或者其它程序员

如果你有两项匹配,我建议你可以尝试一下Purelog。

##如何安装Purelog

Purelog的安装非常简单,首先要确保你安装了Node.js,然后在命令行按如下步骤:

  1. npm install -g purelog,注意这里一定要用-g的参数
  2. cd至你要安装博客的目录,例如/var/www/purelog,这里最好是一个空目录。执行purelog --init
  3. 如果执行成功,你会看到成功的提示,根据提示,再执行npm install && node app.js

只需要简单的三步,你的Purelog就能正常运行了,访问http://localhost:13111 就可以访问你的博客了。但这时候Purelog还是默认配置,你需要修改一些简单的配置。如何修改Purelog的配置

##Github

作为一个开源系统,Github当然是必需要提供的了:Purelog on Github


12 回复

将你的博客存到Dropbox和Github(Nodejs实现方法)

前几天心血来潮挖了个坑,花了一天的时间弄了个Purelog的alpha版,后来我想干脆把这个坑挖大点,于是又折腾了整整四天,于是Purelog的beta发布了,同时还发布Purelog的官方网站。http://purelog.org

欢迎到GitHub上star和fork,欢迎pull request、无限欢迎开发插件与开发主题,欢迎使用评测,欢迎练手,各种欢迎。 具体的配置与插件开发,我在官方网站上有写指南。

#以下是摘自README的介绍

如果你憎恨WordPress的臃肿与性能,如果你想专注于写作,如果你正在或者准备使用Markdown写作,如果希望将你的文章保存到Dropbox或者GitHub,如果你想获取极高的响应速度,如果你是一个Node.js的开发者,那么你一定要尝试一下Purelog。

Purelog的特点

  • 极速:Purelog在启动的时候,会将博客的文章读取到内存,完全不需要再读取硬盘,所以响应非常快速。
  • 基于Markdown:Purelog基于文件式的Markdown,这就意味着你只需要将Markdown文件保存到某个文件夹即可。
  • 支持Dropbox共享链接的读取:你可以将文章保存至Dropbox,不需要Dropbox的授权。
  • 支持Git仓库:你可以将文章提交至Git,然后Purelog会自动索引Git仓库中的文章。
  • 支持多主题
  • 支持插件扩展

Purelog适合于哪些人群

  • 有自己的VPS或者云主机,如Appfog,总之,你需要Node.js的环境。
  • 有一定的动手能力,比如说能部署Node.js,会使用npm install -g purelog
  • 正在或者准备用Markdown写作。
  • 希望专注写作。
  • Node.js的开发者,或者其他程序员。

如果你有两项匹配,我建议你可以尝试一下Purelog。

如何安装Purelog

Purelog的安装非常简单,首先要确保你安装了Node.js,然后在命令行按如下步骤:

  1. npm install -g purelog,注意这里一定要用-g的参数。
  2. cd至你要安装博客的目录,例如/var/www/purelog,这里最好是一个空目录。执行purelog --init
  3. 如果执行成功,你会看到成功的提示,根据提示,再执行npm install && node app.js

只需要简单的三步,你的Purelog就能正常运行了,访问http://localhost:13111就可以访问你的博客了。但这时候Purelog还是默认配置,你需要修改一些简单的配置。如何修改Purelog的配置

GitHub

作为一个开源系统,GitHub当然是必需要提供的了:Purelog on GitHub


接下来,我们将详细探讨如何使用Node.js将博客内容存储到Dropbox和GitHub。

存储到Dropbox

首先,你需要在Dropbox开发者网站上创建一个应用,并获取API密钥。然后,你可以使用dropbox-sdk-js库来实现文件上传和下载。

const Dropbox = require('dropbox').Dropbox;

// 初始化Dropbox客户端
const dbx = new Dropbox({ accessToken: 'YOUR_ACCESS_TOKEN' });

// 上传文件到Dropbox
async function uploadFile(filePath, dropboxPath) {
    try {
        const result = await dbx.filesUpload({
            path: dropboxPath,
            contents: fs.createReadStream(filePath),
        });
        console.log(`File uploaded to ${result.path_display}`);
    } catch (error) {
        console.error(error);
    }
}

uploadFile('/path/to/local/file.md', '/blog/file.md');

存储到GitHub

对于GitHub,你可以使用simple-github库来实现文件操作。首先,你需要在GitHub上创建一个仓库,并获取API密钥。

const simpleGit = require('simple-git')();

// 克隆仓库
simpleGit.clone('https://github.com/yourusername/yourrepo.git', './local-repo');

// 添加文件
simpleGit.add('./*.md');

// 提交更改
simpleGit.commit('Add blog posts');

// 推送到远程仓库
simpleGit.push(['origin', 'master']);

通过以上步骤,你就可以轻松地将你的博客内容同步到Dropbox和GitHub了。


界面挺喜欢的, 但操作略麻烦… 没力气折腾了…

  1. 0 前台的界面不就是ghost的默认皮么

是阿,是改的ghost吧…

两句命令的事都麻烦。。。。

用的Ghost主题

除了主题,和Ghost没有一行代码是相关的

小清新的,赞一个

不错,哥你很牛B。

界面是Ghost的,要夸得夸他们 :)

菜鸟一只,本来是自用的,觉得Ghost不合我,做完发现开源也不错

为了回答“将你的博客存到Dropbox和Github(Nodejs实现方法)”这个问题,我们将重点放在如何使用Node.js实现将博客内容同步到Dropbox和GitHub上。以下是一个简化的示例代码和说明:

Dropbox 同步

首先,你需要使用dropbox Node.js库来与Dropbox API交互。你可以通过以下步骤来设置:

  1. 安装 dropbox 库:

    npm install dropbox
    
  2. 使用以下代码示例将文件上传到Dropbox:

    const { Dropbox } = require('dropbox');
    const fs = require('fs');
    
    // 初始化 Dropbox 客户端
    const client = new Dropbox({ accessToken: 'YOUR_DROPBOX_ACCESS_TOKEN' });
    
    // 上传文件
    const filePath = '/path/to/your/blog/post.md';
    const fileName = 'post.md';
    
    fs.readFile(filePath, (err, data) => {
      if (err) throw err;
      client.filesUpload({ path: '/' + fileName, contents: data })
        .then(res => console.log('File uploaded to Dropbox:', res))
        .catch(err => console.error('Error uploading file:', err));
    });
    

GitHub 同步

接下来,我们使用simple-github库来与GitHub API交互:

  1. 安装 simple-github 库:

    npm install simple-github
    
  2. 使用以下代码示例将文件提交到GitHub仓库:

    const GitHub = require('simple-github');
    
    // 初始化 GitHub 客户端
    const github = new GitHub({
      token: 'YOUR_GITHUB_ACCESS_TOKEN'
    });
    
    // 读取文件内容并提交
    const filePath = '/path/to/your/blog/post.md';
    
    fs.readFile(filePath, (err, data) => {
      if (err) throw err;
    
      const repoPath = 'yourusername/yourrepo';
      const branch = 'main'; // 或者 master
      const commitMessage = 'Update blog post';
    
      github.repos.createOrUpdateFileContents({
        owner: repoPath.split('/')[0],
        repo: repoPath.split('/')[1],
        path: 'posts/' + filePath.split('/').pop(),
        message: commitMessage,
        content: data.toString('base64'),
        branch: branch
      }).then(res => console.log('File committed to GitHub:', res))
        .catch(err => console.error('Error committing file:', err));
    });
    

总结

以上代码示例展示了如何使用Node.js将博客文章同步到Dropbox和GitHub。这些操作可以帮助你备份和分享你的博客内容。确保替换代码中的访问令牌和文件路径为实际值。

回到顶部