Gere um site estático e feeds Atom, com Markdown, shell e pandoc.
git clone pdssg, de preferência ao lado do diretório de origem do seu site.
git clone https://github.com/torresjrjr/pdssgPara executar o pdssg e construir um site estático, execute o script pdssg em um diretório acima do diretório de origem do site.
$ ls
src/ pdssg/
$ ./pdssg/pdssg pdssg é um script de shell executável único, sem sinalizadores de linha de comando. Ele simplesmente gera um diretório de site vizinho dst/ (destino) a partir de um diretório vizinho src/ (fonte) existente com o conteúdo do site (arquivos Markdown a serem convertidos em páginas HTML e outros arquivos).
O design do pdssg é modular e baseado em árvore. Aqui está um exemplo de diretório de origem do site .
src/
|-- _ignore
|-- _feeds
|-- index.md
|-- about.md
|-- posts.md
|-- posts/
| |-- _drafts/
| | `--- 2020-04-01-bored.md
| |-- 2020-01-01-new-year.md
| |-- 2020-02-01-corona-what.md
| `-- 2020-03-01-stuck-at-home.md
|-- feeds/
| `-- posts.md
|-- assets/
| `-- style.css
|-- _templates/
| |-- atom.xml
| `-- main.html
`-- _includes/
|-- header.html
|-- footer.html
`-- meta.html
Aqui está o diretório de compilação resultante.
dst/
|-- index.html
|-- about.html
|-- posts.html
|-- posts/
| |--- 2020-01-01-new-year.html
| |--- 2020-02-01-corona-what.html
| `--- 2020-03-01-stuck-at-home.html
|-- feeds/
| `--- posts.html
`-- assets/
`--- style.css
Nota: arquivos e diretórios que começam com sublinhado _ serão descartados.
Os arquivos Markdown serão convertidos em arquivos HTML, prontos como páginas da web. As exceções são caminhos de arquivos correspondentes a padrões em um arquivo ./_ignore , como um arquivo .gitignore .
pdssg espera que os arquivos Markdown tenham um bloco frontmatter YAML, que é um bloco de metadados YAML cercado por um par de --- , precedendo o restante do conteúdo do arquivo.
O frontmatter deve ter pelo menos um valor title , que será usado para criar um cabeçalho de título <h1> . os valores author e date são comuns e recomendados quando apropriado.
Exemplo de arquivo Markdown:
---
title : My Webpage Title
author : John Smith
date : 2020-12-30
---
## Subheading
contents... Assim como no exemplo, os diretórios _includes e _templates serão utilizados para gerar os arquivos HTML e Atom. Eles são então descartados.
Para os arquivos em _templates :
atom.xml é usado para criar documentos HTML.main.html é usado para criar feeds Atom. Para os arquivos em _includes :
meta.html é inserido no cabeçalho do documento dentro das tags <meta> .header.html é inserido no corpo dentro das tags <body> , antes do conteúdo principal.footer.html é inserido no corpo dentro das tags <body> , após o conteúdo principal.Os feeds Atom são feeds semelhantes a RSS baseados em um formato de distribuição mais novo e robusto. Eles são essencialmente usados como RSS e chamados como tal. Os feeds Atom permitem que os leitores assinem o novo conteúdo de um site, como um blog.
pdssg pode criar feeds Atom a partir de diretórios, com os arquivos do diretório como entradas de feed. Para fazer isso, você precisa criar um diretório especificado para seus feeds e criar um "arquivo inicial Atom" como tal:
./feeds/ ) e escreva seu caminho no arquivo de configuração _feeds./posts/ )../feeds/posts/ )..md ao caminho (por exemplo, ./feeds/posts.md ). Consulte o site de exemplo acima para demonstração (o diretório posts/ ).
O arquivo inicial Atom será convertido em um arquivo de feed Atom. Este feed resultante existirá no novo caminho, mas com uma extensão .xml em vez de .md . Neste exemplo, o feed atom aparecerá em example.com/feeds/posts.xml . Observe que o arquivo ./posts.md não é necessário para um feed, apenas um diretório.
NOTA: As entradas do Atom são ordenadas alfanumericamente pelos nomes dos arquivos correspondentes, não pela date especificada pelo frontmatter YAML.
Este projeto nasceu de um desafio pessoal, para o meu próprio site. A pedido de um simpático blogueiro, limpei e tornei público.
Entre em contato comigo: t.me/torresjrjr