Uma tag permite que os usuários insiram, de forma rápida e fácil, snippets (trechos de código) dentro de suas postagens.
Resumo hexo.extend .tag .register (   name,   function  (args, content ) {        },   options, ); 
 
Dois argumentos serão passados para dentro da função: args e content. args contém os argumentos passados para o tag plugin e content é o conteúdo envolvido do tag plugin.
Desde a introdução da renderização assíncrona, na versão 3 do Hexo, estamos usando o Nunjucks  para renderização. O comportamento pode ser um pouco diferente do Swig .
Unregister Tags Use unregister() to replace existing tag plugins  with custom functions.
hexo.extend .tag .unregister (name); 
 
Example 
const  tagFn  = (args, content ) => {  content = "something" ;   return  content; }; hexo.extend .tag .unregister ("youtube" ); hexo.extend .tag .register ("youtube" , tagFn); 
 
Opções ends Use as tags end. Esta opção é false por padrão.
async Habilite o modo assíncrono. Esta opção é false por padrão.
Exemplos Sem a Tag End Insira um vídeo do Youtube.
hexo.extend .tag .register ("youtube" , function  (args ) {   var  id = args[0 ];   return  (     '<div class="video-container"><iframe width="560" height="315" src="http://www.youtube.com/embed/'  +     id +     '" frameborder="0" allowfullscreen></iframe></div>'    ); }); 
 
Com a Tag End Insira uma citação.
hexo.extend .tag .register (   "pullquote" ,   function  (args, content ) {     var  className = args.join (" " );     return  (       '<blockquote class="pullquote'  +       className +       '">'  +       content +       "</blockquote>"      );   },   { ends : true  }, ); 
 
Renderização Assíncrona Insira um arquivo.
var  fs = require ("hexo-fs" );var  pathFn = require ("path" );hexo.extend .tag .register (   "include_code" ,   function  (args ) {     var  filename = args[0 ];     var  path = pathFn.join (hexo.source_dir , filename);     return  fs.readFile (path).then (function  (content ) {       return  "<pre><code>"  + content + "</code></pre>" ;     });   },   { async : true  }, ); 
 
Front-matter and user configuration Any of the following options is valid:
 
 
hexo.extend .tag .register ('foo' , function  (args ) {   const  [firstArg] = args;      const  { config } = hexo;   const  editor = config.author  + firstArg;      const  { config : themeCfg } = hexo.theme ;   if  (themeCfg.fancybox )       const  { title } = this ;       const  { _content } = this ;    const  { content } = this ;    return  'foo' ; }); 
 
 
 
index.js hexo.extend .tag .register ("foo" , require ("./lib/foo" )(hexo)); 
 
lib/foo.js module .exports  = hexo  =>  {  return  function  fooFn (args ) {     const  [firstArg] = args;     const  { config } = hexo;     const  editor = config.author  + firstArg;     const  { config : themeCfg } = hexo.theme ;     if  (themeCfg.fancybox )      const  { title, _content, content } = this ;     return  'foo' ;   }; };