github deploy hexo

ready:

  1. Download git
  2. Download node.js
  3. Install hexo
npm install -g hexo

One, initialize hexo

First prepare a folder, open git bash

hexo init

2. Configuration file
Open the _config.ymlfile and fill in the items:

  1. title
  2. author
  3. theme

Fill in the warehouse address
Insert picture description here

Three, install the plug-in tool

npm install hexo-deployer-git  --save

Fourth, publish to github

hexo clean && hexo g && hexo d

Write an article:
Create a new .mdfile under the Hexo\source_posts file

https://www.jianshu.com/p/189fd945f38f


Article update issue

Interprets the commands:
generated publiccommand file hexo g
to generate .deploy_gita command filehexo d

After writing the article, enter the project root directory, mine is/c/workplace/Hexo

1. deleted .deploy_git, publicyou can also delete

hexo clean && hexo g && hexo d

Upload picture problem

Open git bash in the project root directory to download the plugin

npm install hexo-asset-image --save

Generate a folder and a file with the same name for uploading pictures in the blog

hexo n "文件名"

other problems

  1. Write a space in the title, an error will be reported when generating
  2. After the local project generates the puclic file, the image path in the html is wrong, you need to go to github to change it (stupid way)

Solve the problem that the hexo-asset-image plugin generates the wrong image path

The file found in the local project is \node_modules\hexo-asset-image\index.js
directly replaced with the following:

'use strict';
var cheerio = require('cheerio');

function getPosition(str, m, i) {
    
    
return str.split(m, i).join(m).length;
}

var version = String(hexo.version).split('.');
hexo.extend.filter.register('after_post_render', function(data){
    
    
var config = hexo.config;
if(config.post_asset_folder){
    
    
    var link = data.permalink;
if(version.length > 0 && Number(version[0]) == 3)
   var beginPos = getPosition(link, '/', 1) + 1;
else
   var beginPos = getPosition(link, '/', 3) + 1;
// In hexo 3.1.1, the permalink of "about" page is like ".../about/index.html".
var endPos = link.lastIndexOf('/') + 1;
link = link.substring(beginPos, endPos);

var toprocess = ['excerpt', 'more', 'content'];
for(var i = 0; i < toprocess.length; i++){
    
    
  var key = toprocess[i];

  var $ = cheerio.load(data[key], {
    
    
    ignoreWhitespace: false,
    xmlMode: false,
    lowerCaseTags: false,
    decodeEntities: false
  });

  $('img').each(function(){
    
    
    if ($(this).attr('src')){
    
    
        // For windows style path, we replace '\' to '/'.
        var src = $(this).attr('src').replace('\\', '/');
        if(!/http[s]*.*|\/\/.*/.test(src) &&
           !/^\s*\//.test(src)) {
    
    
          // For "about" page, the first part of "src" can't be removed.
          // In addition, to support multi-level local directory.
          var linkArray = link.split('/').filter(function(elem){
    
    
            return elem != '';
          });
          var srcArray = src.split('/').filter(function(elem){
    
    
            return elem != '' && elem != '.';
          });
          if(srcArray.length > 1)
            srcArray.shift();
          src = srcArray.join('/');
          $(this).attr('src', config.root + link + src);
          console.info&&console.info("update link as:-->"+config.root + link + src);
        }
    }else{
    
    
        console.info&&console.info("no src attr, skipped...");
        console.info&&console.info($(this));
    }
  });
  data[key] = $.html();
    }
  }
});



Guess you like

Origin blog.csdn.net/qq_17802895/article/details/114043056