Ajouter une page statique

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

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 !

Édité par Wizix

Mon projet : OpenPlane, un utilitaire en Java pour les pilotes, les vrais !

+0 -0
Auteur du sujet

Nope, j'ai le message habituel :

1
Done: Processed 1 article, 0 drafts, 1 page and 0 hidden pages in 0.17 seconds.

La page correspond au fichier content/pages/about.md.

Mon projet : OpenPlane, un utilitaire en Java pour les pilotes, les vrais !

+0 -0
Auteur du sujet
 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.

Édité par Wizix

Mon projet : OpenPlane, un utilitaire en Java pour les pilotes, les vrais !

+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 ?

Édité par Croal

hello, world !

+0 -0
Auteur du sujet

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

Mon projet : OpenPlane, un utilitaire en Java pour les pilotes, les vrais !

+0 -0
Staff

Cette réponse a aidé l'auteur du sujet

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

Je parle de JavaScript et d'autres trucs sur mon blog : https://draft.li/blog

+0 -0
Auteur du sujet

Bingo !
Pelican possède également un moyen d'obliger une page d'utiliser un certain template. Merci de ton aide, je n'y aurais jamais pensé !
Pour ceux que ça intéresse, voir ici.

Mon projet : OpenPlane, un utilitaire en Java pour les pilotes, les vrais !

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

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