Formulário de contato Jekyll no GitHub Pages

Formgong team ·

Um formulário de contato Jekyll no GitHub Pages é HTML. O GitHub liga o modo seguro, então um plugin sem suporte não é construído. Ponha o formulário num include Liquid e envie-o ao Formgong. Os avisos chegam por e-mail e no Telegram, e o site continua estático. Nenhum plugin é necessário.

Jekyll
<form action="https://formgong.com/submit" method="POST">
  <input type="hidden" name="access_key" value="fk_your_access_key">
  <input type="hidden" name="_lang" value="pt">
  <label>Nome <input type="text" name="name" autocomplete="name" placeholder="O seu nome" required></label>
  <label>E-mail <input type="email" name="email" autocomplete="email" placeholder="voce@exemplo.com" required></label>
  <label>Mensagem <textarea name="message" placeholder="Como podemos ajudar?" required></textarea></label>
  <div aria-hidden="true" style="position:absolute;inset-inline-start:0;top:0;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)">
  <label>Deixe este campo vazio<input type="text" name="botcheck" tabindex="-1" autocomplete="off"></label>
</div>
  
  <button type="submit">Enviar</button>
</form>

Como funcionam os formulários em Jekyll

O Jekyll transforma Markdown e HTML num site estático. O GitHub Pages é o host usual e roda o Jekyll por você. Não há um servidor à espera do POST do formulário.

O GitHub Pages trava safe: true na configuração do Jekyll. Uma gem sem suporte nunca corre. Um formulário em _includes/contact-form.html basta, porque o navegador envia o HTML.

Configuração em Jekyll

  1. Crie um formulário no Formgong e copie a chave de acesso.
  2. Adicione o include. Aponte action para https://formgong.com/submit e defina access_key, _lang e botcheck.
  3. Na página de contato, acrescente o front matter e {% include contact-form.html %}. Num site de projeto, defina _redirect como {{ site.url }}{{ site.baseurl }}/thanks/.
  4. Não acrescente uma gem de formulário. O GitHub Pages mantém safe: true e não constrói um plugin sem suporte.
  5. Envie o repositório. O GitHub define JEKYLL_ENV como production. Mande um teste no endereço github.io publicado.

Formgong ou um plugin do Jekyll?

Um plugin local ajuda quando você mesmo constrói o site e precisa de Ruby na hora da build.

No GitHub Pages, plugins sem suporte nunca correm. O HTML enviado ao Formgong continua a funcionar depois do push.

Perguntas e respostas

Isto funciona no GitHub Pages?

Sim. O formulário é HTML. O GitHub Pages só precisa servir o arquivo. Nenhuma gem própria é necessária.

Posso guardar a chave na config?

Sim. Ponha-a em _config.yml e imprima-a no include. A chave é pública. Não guarde ali uma senha de e-mail.

Por que o link de obrigado falha num site de projeto?

Sites de projeto vivem num subcaminho. Monte _redirect com site.baseurl, senão o navegador abre uma página que não existe.

Preciso da gem github-pages no computador?

Só se quiser o mesmo conjunto de plugins localmente. O formulário não precisa dela. Envie o HTML e teste o URL publicado.

Começar grátis