type permalink page new matter front custom jekyll contact-form

permalink - jekyll where



Github formulario de contacto con jekyll? (7)

La configuración rápida y sencilla de formularios con Jekyll consiste en utilizar un servicio externo como https://formkeep.com

Estoy planeando construir y desplegar un sitio estático en github. Si tuviera que hacer eso, ¿todavía es posible tener un formulario de contacto?

Parece que ese es el único conjunto de funciones dinámicas que va a existir en mi sitio web en particular.

¿Tendré que crear un servicio en otro lugar para crear el formulario de contacto?


Precisamente. El resultado (habitual) del proceso de compilación de Jekyll es un sitio estático , por lo que la única forma de tener una funcionalidad dinámica es a través de servicios externos.

Por ejemplo, podrías probar zappyforms .



Sí, necesitas algo externo para almacenar tus datos. Pero la buena noticia es que existen tantas soluciones y que solo tiene que elegir lo mejor para sus necesidades específicas.

Solo dame la oportunidad de incluir en el panorama de las posibles soluciones también KVStore.io (descargo de responsabilidad: soy el autor).

Si tiene suficiente tiempo, acabo de publicar un artículo sobre cómo almacenar contenido generado por usuarios desde Jekyll / GitHub Pages o similar ...

Pero el tl; dr de la historia es que al usar KVStore.io aún puede beneficiarse de un verdadero motor de almacenamiento (con un conjunto simple y rico de API REST) ​​que admite "entornos del lado del cliente" como "páginas jekyll / github" o lo que sea combinaciones que te gustan ..

Mis 2 centavos


Si desea crear su propio formulario de contacto, digamos PHP por ejemplo, puede hacerlo. Solo recuerda estas dos cosas:

  1. Jekyll copiará todo lo que no esté precedido por un guión bajo o ignorado literalmente en el directorio _site.

  2. Puede incluir un archivo HTML en un archivo PHP.

Estoy utilizando una biblioteca de PHP en mi servidor para enviar correo desde un formulario de contacto HTML creado por Jekyll. Mi problema, sin embargo, es la falta de validación del lado del servidor o notificación al usuario de una entrega exitosa o qué campos no se validaron. Prefiero no tener una página personalizada Success.html y Fail.html para las respuestas.

Así es como me las arreglé.

Mi estructura Jekyll se ve así:

/.. _config.yml _layouts/ default.html default-php.html _includes/ header.html footer.html contact-form.html nav.html ... about/ index.md => index.html services/ index.md => index.html contact/ contact.md => contact.html index.php (includes contact.html)

Mi contact-form.html incluye y el diseño default-php.html contienen fragmentos de default-php.html PHP para imprimir variables.

Cuando alguien navega a www.mysite.com/contact , se cargará index.php que contiene mi página HTML completa con fragmentos de código PHP para imprimir variables.

En la parte superior de ese archivo PHP, puede procesar los datos $_POST o $_GET de su formulario de contacto o devueltos desde su script de entrega de correo e imprimir mensajes al remitente o incluso agregar clases a los campos del formulario para indicar que fallaron la validación.

Un inconveniente es que esto no se cargará en el servidor local de Jekyll (localhost: 4000). Tal vez con un poco de jigger puedes conseguirlo. No estoy seguro. Simplemente configuro un vhost para apuntar mysite.local a /web/root/myjekyllsite/_sites y funciona bien.


La forma simple parece ser una opción interesante para sortear el aspecto del sitio estático de Jekyll.

Wufoo también es una buena opción.