Hexo.js é uma plataforma de blog incrível. Se você já usou o Jekyl do Ruby, é assim, mas feito de javascript! Também é de código aberto e de uso gratuito.
Gere um blog
$ npm install -g hexo-cli
$ hexo init hexo-personal-site
$ cd hexo-personal-site
$ npm install
$ hexo server
Acesse localhost:4000
e você verá o modelo de blog inicial! Muito fácil de colocar em funcionamento. Se você deseja usar um tema de construção de comunidade, vá para github / hexo / wiki / themes e escolha um da lista. Mude a linha 66 de _config.yml para o nome do tema que você deseja (o padrão é ‘paisagem’).
Crie seu próprio modelo
Documentos de temas Hexo
Podemos criar nosso próprio tema personalizado criando uma nova pasta no diretório themes / . Altere a linha ~ 68 em _config.yml para e , em seguida, crie uma pasta customTheme nos temas .theme: customTheme
$ mkdir themes/customTheme
Agora vamos criar o tema mais básico possível. Estamos usando o mecanismo de template EJS, então crie três arquivos na pasta themes / customTheme / layout . Um é chamado layout.ejs :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<!-- Use <%= page.title %> for dynamic title -->
<title><%= config.title %></title>
<!-- Twitter bootstrap (via cdn) -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
</head>
<body>
<div class='container'>
<%- body %>
</div>
</body>
</html>
Então, aqui estamos pegando o bootstrap do Twitter e definindo o título da página. O blog será renderizado na tag do corpo.
O próximo arquivo é index.ejs e será a página inicial:
<div class='row text-center'>
<h1><%= config.author %></h1>
<p><%= config.subtitle %></p>
</div>
<div class='row'>
<ul>
<% page.posts.each(function(post){ %>
<li>
<h3>
<a href="<%- url_for(post.path) %>">
<%= post.title %>
</a>
</h3>
<div class='text-muted'>
<%= date(post.date, config.date_format) %>
</div>
<% if(post.excerpt) { %>
<p>
<%- post.excerpt %>
</p>
<% } %>
</li>
<% }) %>
</ul>
</div>
A config
variável vem de tudo o que definimos em config.yml . A <%-
sintaxe vem diretamente da sintaxe EJS . Para ver um post.excerpt, adicione <!-- more -->
à linha 5 (ou em qualquer lugar) em source / _posts / hello-world.md . Para criar uma nova postagem, faça .$ hexo new "My Post Title"
Finalmente, há a página onde a postagem deve ser renderizada. Crie temas / customTheme / layout / post.ejs :
<div class='row'>
<a class='btn btn-default' href='/'>< Home</a>
</div>
<div class='row'>
<h1><%- page.title %></h1>
<div class='text-muted'>
<%= date(page.date, config.date_format) %>
</div>
<%- page.content %>
</div>
Aqui, fazemos uso da page
variável, que contém nosso post.
Conclusão
Este é um modelo muito básico. Há muito o que aprender com Hexo, mas é uma plataforma muito poderosa e personalizável. Você pode escolher um tema existente ou continuar a desenvolver este. O código-fonte deste artigo está no github .