Ajouter une page statique

Le problème exposé dans ce sujet a été résolu.

Bonsoir,
Je suis actuellement entrain de m'amuser avec Pelican. J'ai réussi à créer mon propre thème, c'est vraiment super simple, tout fonctionne nickel. Il y a cependant quelque chose que je n'arrive pas à faire.

J'aimerais créer un formulaire qui envoie un e-mail (pas de gestion côté serveur ne vous inquiétez pas). J'ai donc ajouté dans mon dossier templates de mon thème ce fichier contact.html :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
{% extends "base.html" %}

{% block title %}Contact{% endblock title %}

{% block content %}
    <div id="contact-header" class="col-xs-12 col-sm-6 col-sm-offset-3 text-center">
        <h1>Contact</h1>

        <p class="contact-description">N'hésitez pas à me contacter !</p>
    </div>

    <div class="row">
        <div class="col-xs-12 col-sm-4 col-sm-offset-4">
            <form action="mailto:{{ USERMAIL }}">
                <div class="form-group">
                    <input type="text" placeholder="Nom" class="form-control">
                </div>

                <div class="form-group">
                    <input type="mail" placeholder="E-mail" class="form-control">
                </div>

                <div class="form-group">
                    <textarea name="" id="" cols="40" rows="10" placeholder="Hello..." class="form-control"></textarea>
                </div>

                <div class="text-center">
                    <button type="submit" class="btn btn-default">Envoyer</button>
                </div>
            </form>
        </div>
    </div>
{% endblock content %}

Seulement Pelican se refuse à compiler ma page.
Comment forcer Pelican à compiler cette page pour en sortir un beau fichier contact.html dans mon dossier output/ ?

Merci de votre aide !

+0 -0
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
Title: À propos
Slug: about



Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sollicitudin, mi vel aliquam euismod, sem est pharetra urna, vitae imperdiet diam nisi vel odio. Donec nec nisl tellus. Suspendisse vitae 
vehicula tellus, laoreet condimentum quam. Pellentesque eu elit justo. Pellentesque semper ultricies 
lectus, vitae lobortis dolor vulputate ac. Nulla congue vulputate neque a pulvinar. Maecenas et nibh 
non felis sagittis ullamcorper eleifend eget est. Morbi varius elementum varius. Sed dictum tempor 
odio, in sagittis massa eleifend vel. Nulla accumsan, nisl vel posuere commodo, tortor odio mattis
 purus, at auctor turpis ligula at sem. Vivamus iaculis pharetra sapien, nec auctor metus accumsan id. 
Aenean quis eleifend massa. Ut maximus eros at aliquet vehicula. Vivamus sed fermentum lorem. In 
convallis porta sapien, id aliquam massa convallis ornare.


Integer et leo erat. Fusce auctor nulla quis turpis pretium, sit amet dignissim ligula aliquet. 
Maecenas nec ipsum eu nunc aliquet rutrum. Praesent luctus ex erat, sed fringilla urna sodales a. Ut 
ac pretium justo, vitae maximus metus. Sed id ex sapien. Morbi suscipit pretium turpis vel rutrum. 
Mauris libero augue, dignissim id velit et, cursus fringilla neque. Aliquam quis maximus ex. Aenean a 
ex imperdiet, vestibulum felis et, fringilla diam. 

Mais c'est totalement différent car about.md est considéré comme une page, c'est à dire qu'il utilise un template défini. Ici je souhaite juste avoir une page HTML sans devoir passer par un template.

Du coup j'avais pensé à une solution super simple :
Je la compile moi même et je la met dans mon dossier output en indiquant à Pelican de ne pas la supprimer avec la variable OUTPUT_RETENTION = []. Seulement ça n'a l'air de fonctionner que si et seulement si le fichier est a la racine du dossier output. Ce qui aurait pu être pas mal mais du coup j'ai une grosse incohérence !

  • la page about s'accède depuis /pages/about.html
  • la page contact s'accède depuis /contact.html

Bref, ça ne me convient pas du tout.

+0 -0

Donc si je comprends bien, la compilation s'effectue correctement mais aucun fichier n'est généré dans le output. Peut-être as-tu modifié les options de compilation par mégarde ? Sinon le {% extends "base.html" %} signifie quoi ?

+0 -0

Si les fichiers sont bien là. La compilation ne pose aucun problème.

Je vais essayer de formuler mon problème différemment :

Comment avoir, avec Pelican, une page avec un formulaire. En gros, j'ai mon fichier contact.html qui est prêt (cf. premier message). Je le met où pour qu'il soit compilé par Pelican ? En le mettant dans le dossier templates de mon thème, il n'est pas compilé, et c'est normal puisque Pelican ne prend en compte que ces templates :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
templates
    ├── archives.html         // to display archives
    ├── period_archives.html  // to display time-period archives
    ├── article.html          // processed for each article
    ├── author.html           // processed for each author
    ├── authors.html          // must list all the authors
    ├── categories.html       // must list all the categories
    ├── category.html         // processed for each category
    ├── index.html            // the index (list all the articles)
    ├── page.html             // processed for each page
    ├── tag.html              // processed for each tag
    └── tags.html             // must list all the tags. Can be a tag cloud.

Du coup… Je le met où mon fichier contact.html ? Si ça se trouve, c'est totalement impossible, mais ce serait… Dommage pour un générateur de site statique tel que Pelican.

En espérant que je me suis mieux fait comprendre

Je crois que je pige pas bien comment c'est censé marcher, alors je vais expliquer comment je ferais ce que tu veux faire avec d'autres générateurs de sites statiques que je connais, par ex. Jekyll ou Hexo :

  1. Créer un template pour la page contact dans le dossier template, qui étend le template de base
  2. Créer une page contact dans le dossier contenu > page
  3. Dire à la page contact que son template est le template défini précédemment
  4. Générer le site
+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte