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:

  • Clone o repositório do módulo:
git clone https://github.com/hamano/apache-mod-markdown
  • Entre no diretório clonado:
cd apache-mod-markdown/

autoreconf -f -i
  • Rode o ./configure para verificar as dependências e gerar o Makefile:
./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 .

  • Construa o binário:
make
  • Instale tornando-o reconhecido pela variável PATH:
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

  • Utilizando um CSS customizado

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.

  • Documento em HTML5

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:


markdown apache discount apsx


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!