Formularz kontaktowy Jekyll na GitHub Pages

Formgong team ·

Formularz kontaktowy Jekyll na GitHub Pages to zwykły HTML. GitHub włącza safe mode, więc niewspierana wtyczka się nie zbuduje. Włóż formularz w include Liquid i wyślij go do Formgong. Zgłoszenia przychodzą mailem i na Telegram, a strona zostaje statyczna. Wtyczka nie jest potrzebna.

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="pl">
  <label>Imię <input type="text" name="name" autocomplete="name" placeholder="Twoje imię" required></label>
  <label>E-mail <input type="email" name="email" autocomplete="email" placeholder="ty@example.com" required></label>
  <label>Wiadomość <textarea name="message" placeholder="W czym możemy pomóc?" 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>Pozostaw to pole puste<input type="text" name="botcheck" tabindex="-1" autocomplete="off"></label>
</div>
  
  <button type="submit">Wyślij</button>
</form>

Jak działają formularze w Jekyll

Jekyll buduje Markdown i HTML w statyczną stronę. GitHub Pages to typowy host i sam uruchamia Jekyll. Nie ma serwera, który czeka na POST formularza.

GitHub Pages blokuje safe: true w konfiguracji Jekyll. Niewspierany gem nigdy nie ruszy. Formularz w _includes/contact-form.html wystarcza, bo przeglądarka wysyła HTML.

Konfiguracja w Jekyll

  1. Utwórz formularz w Formgong i skopiuj klucz dostępu.
  2. Dodaj include. Skieruj action na https://formgong.com/submit i ustaw access_key, _lang oraz botcheck.
  3. Na stronie kontaktowej dodaj front matter i {% include contact-form.html %}. Dla strony projektu ustaw _redirect na {{ site.url }}{{ site.baseurl }}/thanks/.
  4. Nie dodawaj gema do formularzy. GitHub Pages trzyma safe: true i nie zbuduje niewspieranej wtyczki.
  5. Wypchnij repozytorium. GitHub ustawia JEKYLL_ENV na production. Wyślij test na żywym adresie github.io.

Formgong czy wtyczka Jekyll?

Lokalna wtyczka pomaga, gdy budujesz stronę sam i Ruby jest potrzebny w czasie buildu.

Na GitHub Pages niewspierane wtyczki nie działają. Zwykły HTML do Formgong działa po pushu.

Pytania i odpowiedzi

Czy to działa na GitHub Pages?

Tak. Formularz to HTML. GitHub Pages ma tylko serwować plik. Własny gem nie jest potrzebny.

Czy mogę trzymać klucz w konfiguracji?

Tak. Włóż go do _config.yml i wypisz w include. Klucz jest publiczny. Hasła poczty tam nie trzymaj.

Dlaczego podziękowanie psuje się na stronie projektu?

Strona projektu żyje w podścieżce. Złóż _redirect z site.baseurl, inaczej przeglądarka otworzy brakującą stronę.

Czy gem github-pages jest potrzebny na laptopie?

Tylko gdy chcesz ten sam zestaw wtyczek lokalnie. Sam formularz go nie potrzebuje. Wypchnij HTML i sprawdź żywą URL.

Zacznij za darmo