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' ; }; };