AsciiDoc과 PlantUML에서 Blog를 작성하고 싶습니다.

무엇 사용?


  • 정적 사이트 생성기의 nodejs 구현 Hexo

  • Hexo에서 블로그 만들기


    npm install hexo-cli -g
    hexo init blog
    cd blog
    npm install
    hexo generate
    hexo server
    
  • http://localhost:4000



  • AsciiDoc 지원


  • 기본적으로는 이 기사대로. 감사합니다.
  • 참조 hexo와 asciidoc으로 블로그 구축 | blah blah blah

  • AsciiDoc 그리기위한 플러그인? 설치
  • npm install hexo-renderer-asciidoc --save
    
    hexo clean
    hexo new example
    
  • 확장자의 디폴트라든지 바꿀 수 있을까. .md.adoc 로 변경하여 편집.
  • mv source/_posts/example.md source/_posts/example.adoc
    vim source/_posts/example.adoc
    
  • 예를 들면, 이런 AciiDoc.
  • ---
    title: example
    date: 2019-08-30 21:15:40
    tags:
    ---
    
    = Title
    
    == SubTitle
    
    * abc
    ** def
    *** ghi
    
    [source,js]
    ----
    var express = require('express')
    var app = express()
    
    // respond with "hello world" when a GET request is made to the homepage
    app.get('/', function (req, res) {
      res.send('hello world')
    })
    ----
    
    hexo generate
    hexo server
    
  • http://localhost:4000



  • 테마 변경


    git clone https://github.com/HoverBaum/meilidu-hexo.git themes/meilidu
    
  • _config.yml 파일 편집
  • - theme: landscape
    + theme: meilidu
    
    hexo generate
    hexo server
    



    PlantUML 지원


    npm install --save hexo-filter-plantuml
    
  • 모듈 hexo-filter-plantuml 편집
  • 제대로 한다면 fork 하고, commit 하고, npm publish 하는 것이 좋다? , 이번은 간단하게.

  • vim node_modules/hexo-filter-plantuml/lib/renderer.js
    
  • Markdown 기법에 의한 것이었으므로, AsciiDoc 기법을 인식해(AsciiDoc 기법으로부터 추출해), AsciiDoc 기법에서 출력되도록 편집.
  • 
    const plantuml = require('./plantuml');
    
    //var reg = /(\s*)(```) *(puml|plantuml) *\n?([\s\S]+?)\s*(\2)(\n+|$)/g;
    var reg = /(\s*)\[(source),(plantuml)\] *\n---- *\n([\s\S]+?)\s*\n(----)(\n+|$)/g;
    
    function ignore(data) {
      var source = data.source;
      var ext = source.substring(source.lastIndexOf('.')).toLowerCase();
      return ['.js', '.css', '.html', '.htm'].indexOf(ext) > -1;
    }
    
    exports.before = function (data) {
      if (!ignore(data)) {
        data.content = data.content
          .replace(reg, function (raw, start, startQuote, lang, content, endQuote, end) {
            var compress_content = plantuml.compress(content);
            //return start + '<img src="' + compress_content + '" />' + end;
            return start + 'image::' + compress_content + '[width="640"]';
          });
      }
    };
    
    hexo generate
    hexo server
    
  • 나왔다!



  • 요약


  • 일단 할 수 있었다. hexo 나쁘지 않다.
  • hexo에는 좋아하는 테마가 없었습니다. 또한, blog engine 찾기의 여행에 나온다.
  • dark 로 simple 으로 cool , 테마를 갖고 싶다! (내 손을 움직이지 않고)
  • 좋은 웹페이지 즐겨찾기