@@ -22,3 +22,133 @@ Juste après, vous retrouverez les supports de présentation:
2222.. url-preview:: https://www.tldraw.com/f/VRC0YZYlbfwPC1fx_iB5B 
2323    :title: tldraw - Support de présentation intéractif
2424    :image: https://www.tldraw.com/social-twitter.png 
25+ 
26+ Et voici les ressources additionelles. Merci à tout le monde d'etre venu et désolé pour 
27+ le chaos technique, j'espere que ces quelques ressources vous permetrons d'explorer ca à
28+ votre rythme.
29+ 
30+ Pour approndir comment un site web fonctionne je recommende vraiment la documentation
31+ Mozilla qui est aussi traduite en francais !
32+ 
33+ -  < https://developer.mozilla.org/en-US/docs/Learn_web_development/Getting_started/Web_standards/How_the_web_works > 
34+ 
35+ ## Jinja  
36+ 
37+ < https://jinja.palletsprojects.com/en/stable/ > 
38+ 
39+ Example de template html jinja:
40+ 
41+ ``` html 
42+ <html  lang =" en"  >
43+ <head >
44+     <title >PyCon Demo</title >
45+ </head >
46+ <body >
47+     <h1 >{{ PAGE_TITLE|escape }}</h1 >
48+     <p >voici une liste d'images:</p >
49+     {% for img_path in IMGS %}
50+         <img  src =" {{ img_path }}"  >
51+     {% endfor %}
52+ </body >
53+ </html >
54+ ``` 
55+ 
56+ Example de recette de build de template:
57+ 
58+ ``` python 
59+ import  jinja2
60+ 
61+ from  pathlib import  Path
62+ 
63+ templates_root =  Path(" ..."  )
64+ 
65+ imgs_root =  templates_root /  " imgs" 
66+ imgs =  list (imgs_root.glob(" *.jpg"  ))
67+ #  les urls HTML ne supported pas les path absolus, nous devons convertir en relatif
68+ imgs =  [img.relative_to(templates_root) for  img in  imgs]
69+ 
70+ jinja_env =  jinja2.Environment(
71+     undefined = jinja2.StrictUndefined,
72+     loader = jinja2.FileSystemLoader(templates_root),
73+ )
74+ 
75+ template =  jinja_env.get_template(" template_name..."  )
76+ 
77+ attributes =  {
78+     #  mapping de variables globale propagees dans le template
79+     #  mettez ce que vous voulez
80+     " PAGE_TITLE"  : " PyCon démo"  ,
81+     " IMGS"  : imgs,
82+ }
83+ 
84+ #  'content' est une str qu'il faut ensuite sauvegarder sur disque
85+ content: str  =  template.render(** attributes)
86+ 
87+ #  reste la logique de comment ecrire l'html et lancer le serveur ...
88+ ``` 
89+ 
90+ ## Markdown vers HTML  
91+ 
92+ * Partie qu'on a pas eu le temps de voir* 
93+ 
94+ En utilisant < https://python-markdown.github.io/ > 
95+ 
96+ ``` python 
97+ from  pathlib import  Path
98+ import  markdown
99+ 
100+ #  voir la doc pour les settings dispo
101+ settings =  {}
102+ 
103+ markdown_file_path =  Path(" ..."  )
104+ markdown_content =  markdown_file_path.read_text(" utf-8"  )
105+ 
106+ html =  markdown.markdown(
107+     markdown_content,
108+     #  regardez dans la doc quel extensions sont necessaire pour vous,
109+     #  les extensions permettent de rajouter de nouvelle facon d'ecrire
110+     #  du markdown et sont vraiment pratiques.
111+     extensions = [
112+         #  builtins.extra
113+         " abbr"  ,
114+         " attr_list"  ,
115+         " def_list"  ,
116+         " fenced_code"  ,
117+         " footnotes"  ,
118+         " md_in_html"  ,
119+         " tables"  ,
120+         #  builtins
121+         " admonition"  ,
122+         " toc"  ,
123+         ],
124+     extension_configs = settings,
125+     output_format = " xhtml"  ,
126+     tab_length = 4 ,
127+ )
128+ ``` 
129+ 
130+ ## Heberger son site  
131+ 
132+ -  < https://docs.github.com/en/pages > 
133+     -  gratuit pas vraiment de limitation
134+     -  soucis ethique: GitHub est gerer par Microsoft et il n'hesistent pas a entrainer 
135+       leur IA sur le contenu hebergé sur GitHub.
136+ -  < https://codeberg.page/ > 
137+     -  comme GitHub CodeBerg est une platforme plus ethique
138+     -  marqué comme experimentale sur leur site
139+ -  < https://neocities.org/ > 
140+     -  Assez connu, inlus aussi un editeur HTML en ligne.
141+     -  necessaire de apyer pour mettre un nom de domaine personalisé
142+ 
143+ Alternative queer (https://eldritch.cafe/@zorume/115247647232654326 ):
144+ 
145+ -  < https://besties.house/ >  qui gère:
146+   -  < https://pages.gay/ >  pour les sites
147+   -  et < https://git.gay/ >  comme forge git
148+ 
149+ Et pour faire du "self-host" c'est aussi possible de louer un ordinateur, appelé VPS
150+ et d'utiliser [ YunoHost] ( https://yunohost.org/ )  pour gerer le systeme. YunoHost rend le processus 
151+ beaucoup moins technique.
152+ 
153+ -  Pour trouver un VPS: < https://european-alternatives.eu/category/vps-virtual-private-server-hosters > 
154+ -  L'app YunoHost a installer pour gerer un site web: < https://apps.yunohost.org/app/my_webapp > 
0 commit comments