This repository has been archived by the owner. It is now read-only.
Uma ferramenta para criar um blog em poucos segundos.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
lib
.editorconfig
.gitignore
License
ReadMe.md
app.js
construir.js
package.json

ReadMe.md

Bloguizim

Uma ferramenta para criar um blog em poucos segundos.

Instalação

$ npm install --global bloguizim

Uso

$ bloguizim help

  Uso: bloguizim [comando] <opções>

  Comandos:                      Descrição:
  novo-blog, n <nome>            Criar um novo blog.
  nova-postagem, p               Criar uma nova postagem.
  editar-postagem, e <post>      Editar uma postagem.
  editar-sobre, s                Editar informações do blog.
  listar-postagens, l            Listar todas as postagens.
  instalar-tema, i <repo> (add)  Instalar um tema (do GitHub).
  configurar, c <k> <v>          Alterar uma configuração.
  construir, b <dir>             Gerar arquivos.
  run, r <porta>                 Rodar o site.
  help, ?                        Exibir um ajuda.
  version, v                     Exibir a versão atual.

Veja abaixo as etapas para iniciar criando um simples blog.

1. Novo Blog

$ bloguizim novo-blog

Após isso será pedido os dados do seu blog.

As informações pedidas são:

  • Titulo ― Título do blog (padrão: Meu Blog).
  • Descrição ― Descrição do blog (padrão: Meu incrível blog.).
  • Autor ― Autor do blog (padrão: Anônimo).
  • Maximo ― Máximo de postagens a ser exibidas na página inicial (padrão: 3).

Após os dados serem passados, uma pasta com o nome do blog será criada, mas, caso queira, você poderá escolher um outro nome, por exemplo, bloguizim novo-blog foo, neste exemplo o blog seria gerado na pasta foo.

A estrutura dos arquivos da pasta deve ser:

.
├───postagens/
├───public/
├───temas/
├───config.json
└───sobre.md

Onde:

  • postagem/ ― Pasta com os arquivos das postagens.
  • public/ ― Pasta com os arquivos publicos (como imagens, músicas e videos).
  • temas/ ― Pasta com os temas instalados.
  • config.json ― Arquivo de configuração.
  • sobre.md ― Conteúdo com informções sobre o autor.

Use o comando bloguizim editar-sobre para editar as informações do autor.

2. Instalando Tema

Após criar um novo blog você precisará de um tema para que ele funcione.

Você verá como criar um tema mais abaixo. Nesse exemplo será usado um tema pronto, o Mini Tema (esse tema encontra-se em <https://github.com/theuves/mini-tema>).

Você terá a opção de baixar temas prontos publicados no GitHub, com o comando instalar-tema.

Instale-o com o seguinte comando (na pasta do seu blog):

$ bloguizim instalar-tema theuves/mini-tema add

Onde:

  • theuves/mini-tema ― Repositório do GitHub com tema.
  • add ― Informa para adicionar o tema nas configurações (config.json).

Caso você tenha instalado-o de outra maneira (copiando diretamente a pasta temas/, por exemplo), ou tenha criado um tema, você deverá configurá-lo no arquivo de configuração. Para isso você poderá editá-lo em um editor de texto ou usar o comando configurar, por exemplo, bloguizim configurar tema mini-tema (observe que isso também vale para as outras configurações: titulo, descricao, autor e maximo). O valor do tema informado deve ser o nome da pasta do mesmo, que deve estar na pasta temas/.

3. Nova Postagem

Para criar uma postagem faça (na pasta do blog):

$ bloguizim nova-postagem

Após isso será pedido algumas informações da postagem.

  • Titulo ― Título da postagem (padrão: Minha Postagem).
  • Data ― Data da postagem, no formato DD-MM-AAAA (padrão: data atual).
  • Autor ― Autor da postagem (padrão: autor definido no config.json).

Após criar a postagem, um arquivo (Markdown) com o nome da postagem será criado na pasta postagens/.

O arquivo terá as informações da postagem (NÃO REMOVA-AS).

Para abrir a postagem no editor de texto padrão do seu computador, faça:

$ bloguizim editar-postagem minha-postagen

Use o comando bloguizim listar-postagens para obter uma lista de todas as postagens.

Observações

Algumas informações importantes:

  • O arquivo da postagem (em postagens/) também poderá ter a extensão .markdown.
  • Se duas postagem tiverem o mesmo título, ambas serão desconsideradas.
  • Se alguma das informações - título, data e autor - não estiverem no arquivo, a postagem será desconsiderada.

4. Rodando ou Construindo um Blog

Para testar o seu blog, faça:

$ bloguizim run

Após isso acesse-o em localhost:3000 (em um navegador web).

A porta padrão é 3000, mas você também poderá mudá-la, exemplo, bloguizim run 8080.

Para gerar os arquivos do blog, faça:

$ bloguizim construir

Por padrão os arquivos são gerados em uma pasta com o título do blog, mas você também mudá-lo, exemplo, bloguizim construir foo, para gerá-lo em uma pasta chamada foo.

Criando um Tema

O tema deverá ser desenvolvido em EJS.

A estrutura dos arquivos do tema deve ser:

.
├───public
├───arquivos.ejs
├───index.ejs
├───postagem.ejs
└───sobre.ejs

Onde:

  • public ― Pasta com arquivos publicos, scripts, CSSs, imagens, etc.
  • arquivo.ejs ― Lista de postagens do blog.
  • index.ejs ― Página inicial do blog.
  • postagem.ejs ― Postagem.
  • sobre.ejs ― Informações sobre o autor.

Todos os arquivos EJSs receberão um objeto informacoes contendo os seguintes valores:

  • titulo ― Título do blog.
  • descricao ― Descrição do blog.
  • versao ― Versão atual do Bloguizim.
  • paginas ― Objeto com um link para páginas do blog.
  • inicio ― Link para a página inicial.
  • arquivos ― Link para a página de arquivos.
  • sobre ― Link para a página de informações do blog.

Veja abaixo quais os dados recebidos em cada arquivo.

arquivos.ejs

Receberá os seguintes dados:

  • informacoesDados apresentados mais acima.
  • arquivos ― Objeto com informações de todas as postagens.

Veja abaixo a estrutura do conjunto postagens.

[
 {
    url: '...',
        conteudo: {
            titulo: '...',
            data: [..., ..., ...],
            autor: '...',
            html: '...'
        }
    },
    ...

Onde:

  • url ― URL da postagem.
  • conteudo ― Objeto com informações da postagem.
  • titulo ― Contém o título da postagem.
  • data ― Conjunto com a data da postagem, no formato MM/DD/AAAA.
  • autor ― Nome do autor da postagem.
  • html ― Conteúdo (em HTML) da postagen.

index.ejs

Receberá os seguintes dados:

  • informacoesDados apresentados mais acima.
  • paginaInicial ― Informações das páginas do blog, na página inicial.

Exemplo de conteúdo do objeto paginaInicial.

{
    postagens: [
        '...': {
            titulo: '...',
            data: [..., ..., ...],
            autor: '...',
            html: '...',
            url: '...'
        },
        ...
    ],
    proximo: ...,
    anterior: ...,
}

Onde:

  • postagens ― Conjunto de objetos com informações das postagens a ser exibida. Esses objetos são semelhantes aos da propriedade conteudo do objeto arquivos apresentado mais acima, porém neste haverá a propriedade url com o endereço da postagem. Neste conjunto haverá somente a quantia de postagens definidas nas configurações (config.json) em maximo.
  • proximo ― URL da próxima página (caso não exista, será '#').
  • anterior ― URL da página anterior (caso não exista, será '#').

paginas.ejs

Receberá os mesmos dados que index.ejs.

postagem.ejs

Receberá os seguintes dados:

  • informacoesDados apresentados mais acima.
  • postagens ― Objeto com informações de cada postagem.
  • postagem ― Endereço da postagem.
  • paginas ― Objeto com as URL da postagem anterior e da próxima.
  • anterior ― URL da postagem anterior.
  • proximo ― URL da próxima postagem.

Estrutura do objeto postagens:

{
    urls: ['...', ...]
    conteudos: {
        '...': {
            titulo: '...',
            data: '...',
            autor: '...',
            html: '...',
            anterior: ...,
            proximo: ...
        },
        ...
    }
}
  • urls ― Lista de todas as postagens.
  • conteudos ― Objeto de objetos com informações de postagens.

sobre.ejs

Receberá os seguintes dados:

  • informacoesDados apresentados mais acima.
  • conteudo ― Conteúdo (convertido em HTML) do arquivo sobre.md.

Veja o tema mini-tema para um exemplo.

Licença

MIT © Matheus Alves