Habilitando Renderização de MarkDown no Apache Web Server

Vamos adicionar um módulo ao Apache.


Habilitando Renderização de MarkDown no Apache Web Server

Como bem sabemos, um dos diferenciais positivos do Apache se compararmos ao NGINX é que ele é modular, ou seja, podemos adicionar e remover recursos , coisa que no NGINX não é possível.

Se você tentar acessar arquivo .md no Apache ele não irá abrir o arquivo , mas se você alterar o arquivo de configuração do Apache para ler esse arquivo, ainda sim, ele não converterá os símbolos MarkDown em HTML, para isso vamos usar um parser que pode ser adquirido no endereço: https://github.com/hamano/apache-mod-markdown . Vamos ver como instalá-lo, configurá-lo e customizá-lo aqui nesse artigo para que você possa abrir seus arquivos MarkDown.

Instale as dependências:

sudo emerge -a app-text/discount # Gentoo, Funtoo, ...
apt install build-essential libtool automake autoconf libmarkdown2-dev apache2 apache2-dev # Debian, Ubuntu, ...

Clone, compile e instale:

git clone https://github.com/hamano/apache-mod-markdown
cd apache-mod-markdown/

autoreconf -f -i
./configure

Se tiver algum problema, descubra o caminho do seu arquivo mkdio.h usando o comando: find /usr/ -name mkdio.h no meu caso foi encontrado em: /usr/include/mkdio.h , então vou usar ele para a variável: DISCOUNT_DIR , assim: ./configure --with-discount=/usr/include .

make
sudo make install

Configurando o Apache

  1. Abra seu http.conf: sudo vim /etc/apache2/httpd.conf e insira essa linha ao arquivo:
LoadModule markdown_module modules/mod_markdown.so

Algumas distros o caminho do módulo é diferente, no meu caso é o padrão da instalação mesmo: /usr/lib64/apache2/modules/mod_markdown.so , mas distros como Debian, Ubuntu,… o caminho pode ser outro, verifique e insira o módulo corretamente, exemplo: LoadModule markdown_module /usr/lib/apache2/modules/mod_markdown.so

  1. Agora vamos fazer o Apache aceitar ler arquivos com extensão .md e .markdown e também aceitar páginas Index em .md também, edite ou inclua-os: sudo vim /etc/apache2/modules.d/00_default_settings.conf , verifique o caminho na sua distro.
<IfModule dir_module>
        DirectoryIndex index.html index.md
        AddHandler markdown .md
</IfModule>
  1. Agora reinicie o apache:
sudo rc-service apache2 restart

Se seu sistema usa systemd , esqueça o comando acima e use esse:

sudo systemctl restart apache2
  1. Criado um teste para ver se está tudo ok:

    O caminho do seu Web Server pode ser diferente, verique antes.

echo -e "## Teste markdown no Apache\n> Tudo certo.\n" > /var/www/localhost/htdocs/teste.md

Depois abra um navegador e acesse: http://localhost/teste.md

Se renderizar é porque está tudo certo.

Customizações

Se quiser utilizar um CSS próprio por padrão, você pode editar o arquivo: sudo vim /etc/apache2/modules.d/00_default_settings.conf e adicionar a linha MarkdownCss style.css ao mesmo (logo após o AddHandler que criamos/editamos acima) . Então é só criar um arquivo .css no diretório do seu arquivo .md que ele lerá automaticamente, exemplo:

<IfModule dir_module>
	DirectoryIndex index.html index.html.var index.sh index.cpp index.md
	AddHandler markdown .md
	MarkdownCss style.css
</IfModule>

Lembre-se se restartar o Apache para que as alterações tenham efeito.

Por padrão ele renderiza o markdown em uma versão do HTML (4.01) se quiser alterar para HTML5 , edite também o o arquivo: sudo vim /etc/apache2/modules.d/00_default_settings.conf e adicione a linha MarkdownDoctype e o argumento HTML_5 , assim:

<IfModule dir_module>
	DirectoryIndex index.html index.html.var index.sh index.cpp index.md
	AddHandler markdown .md
	MarkdownDoctype HTML_5
</IfModule>

Você pode usar em conjunto(uma linha acima ou abaixo) com o MarkdownCss, existem outras opções também como: MarkdownHeaderHtml, MarkdownFooterHtml , MarkdownWrapper e MarkdownFlags , essa última serve pra customizar a renderização de acordo com o Discount .

Veja alguns outros artigos e vídeo sobre MarkDown:

Compartilhe

Marcos Oliveira

Autor
Marcos Oliveira
Desenvolvedor de Software
youtube.com/TerminalRootTV

Pacote Promocional com Todos os Cursos

Adquira todos os cursos para se tornar um ninja do Terminal e do Linux.

Artigos Relacionados



Comentários