Browse Source

ur la base de HTML5 UP editorial

master
chankalan 3 years ago
parent
commit
cd12cbbe0c
  1. 2
      README.txt
  2. 62
      article.html
  3. 91
      auteur.html
  4. 43
      backend.html
  5. 29
      body.html
  6. 5
      breadcrumb/401.html
  7. 5
      breadcrumb/404.html
  8. 8
      breadcrumb/auteur.html
  9. 15
      breadcrumb/dist.html
  10. 21
      breadcrumb/forum.html
  11. 7
      breadcrumb/inc-objet.html
  12. 5
      breadcrumb/inc-page.html
  13. 10
      breadcrumb/login.html
  14. 8
      breadcrumb/mot.html
  15. 4
      breadcrumb/plan.html
  16. 4
      breadcrumb/recherche.html
  17. 0
      breadcrumb/sommaire.html
  18. 3
      breve.html
  19. 8
      content/401.html
  20. 8
      content/404.html
  21. 22
      content/article.html
  22. 15
      content/auteur.html
  23. 18
      content/mot.html
  24. 44
      content/plan.html
  25. 10
      content/recherche.html
  26. 18
      content/rubrique.html
  27. 59
      content/sommaire.html
  28. 5
      css/fontawesome-all.min.css
  29. 38
      css/html5up_spectral.spip.css.html
  30. 6
      css/images/arrow.svg
  31. 0
      css/images/banner.jpg
  32. 6
      css/images/bars.svg
  33. 5
      css/images/close.svg
  34. 223
      css/libs/_breakpoints.scss
  35. 90
      css/libs/_functions.scss
  36. 149
      css/libs/_html-grid.scss
  37. 78
      css/libs/_mixins.scss
  38. 119
      css/libs/_vars.scss
  39. 376
      css/libs/_vendor.scss
  40. 1932
      css/main.scss
  41. 36
      css/noscript.scss
  42. BIN
      css00/.ie8.scss.kate-swp
  43. BIN
      css00/.ie9.scss.kate-swp
  44. BIN
      css00/.main.scss.kate-swp
  45. BIN
      css00/.theme.scss.kate-swp
  46. 23
      css00/_font.scss
  47. BIN
      css00/base/._page.scss.kate-swp
  48. BIN
      css00/base/._typography.scss.kate-swp
  49. 39
      css00/base/_page.scss
  50. 186
      css00/base/_typography.scss
  51. BIN
      css00/components/._box.scss.kate-swp
  52. BIN
      css00/components/._button.scss.kate-swp
  53. BIN
      css00/components/._features.scss.kate-swp
  54. BIN
      css00/components/._form.scss.kate-swp
  55. BIN
      css00/components/._icon.scss.kate-swp
  56. BIN
      css00/components/._image.scss.kate-swp
  57. BIN
      css00/components/._list.scss.kate-swp
  58. BIN
      css00/components/._mini-posts.scss.kate-swp
  59. BIN
      css00/components/._posts.scss.kate-swp
  60. BIN
      css00/components/._section.scss.kate-swp
  61. BIN
      css00/components/._table.scss.kate-swp
  62. 26
      css00/components/_box.scss
  63. 87
      css00/components/_button.scss
  64. 156
      css00/components/_features.scss
  65. 37
      css00/components/_fonts.scss
  66. 182
      css00/components/_form.scss
  67. 17
      css00/components/_icon.scss
  68. 74
      css00/components/_image.scss
  69. 255
      css00/components/_list.scss
  70. 31
      css00/components/_mini-posts.scss
  71. 179
      css00/components/_posts.scss
  72. 39
      css00/components/_section.scss
  73. 81
      css00/components/_table.scss
  74. 4
      css00/fontawesome/font-awesome.min.css
  75. BIN
      css00/fonts/FontAwesome.otf
  76. BIN
      css00/fonts/fontawesome-webfont.eot
  77. 685
      css00/fonts/fontawesome-webfont.svg
  78. BIN
      css00/fonts/fontawesome-webfont.ttf
  79. BIN
      css00/fonts/fontawesome-webfont.woff
  80. BIN
      css00/fonts/fontawesome-webfont.woff2
  81. BIN
      css00/fonts/opensans-italic-webfont.woff
  82. BIN
      css00/fonts/opensans-italic-webfont.woff2
  83. BIN
      css00/fonts/opensans-regular-webfont.woff
  84. BIN
      css00/fonts/opensans-regular-webfont.woff2
  85. BIN
      css00/fonts/opensans-semibold-webfont.woff
  86. BIN
      css00/fonts/opensans-semibold-webfont.woff2
  87. BIN
      css00/fonts/opensans-semibolditalic-webfont.woff
  88. BIN
      css00/fonts/opensans-semibolditalic-webfont.woff2
  89. BIN
      css00/fonts/robotoslab-bold-webfont.woff
  90. BIN
      css00/fonts/robotoslab-bold-webfont.woff2
  91. BIN
      css00/fonts/robotoslab-regular-webfont.woff
  92. BIN
      css00/fonts/robotoslab-regular-webfont.woff2
  93. BIN
      css00/layout/._banner.scss.kate-swp
  94. BIN
      css00/layout/._footer.scss.kate-swp
  95. BIN
      css00/layout/._header.scss.kate-swp
  96. BIN
      css00/layout/._main.scss.kate-swp
  97. BIN
      css00/layout/._menu.scss.kate-swp
  98. BIN
      css00/layout/._sidebar.scss.kate-swp
  99. BIN
      css00/layout/._wrapper.scss.kate-swp
  100. 75
      css00/layout/_banner.scss
  101. Some files were not shown because too many files have changed in this diff Show More

2
README.txt

@ -0,0 +1,2 @@
Squelette SPIP pour intégrer le modèle Spectral de HTML5UP
Le v2 repart sur des bases nouvelles z-core et scss

62
article.html

@ -1,59 +1,3 @@
<!DOCTYPE HTML>
<html>
<head>
<INCLURE{fond=inclure/head,id_article}>
</head>
<body class="is-preload">
<!-- Page Wrapper -->
<div id="page-wrapper">
<!-- Header & Menu -->
<INCLURE{fond=inclure/header_menu}>
<!-- Main -->
<BOUCLE_principale(ARTICLES){id_article}>
<article id="main">
<header>
<h2>[(#TITRE|supprimer_numero)]</h2>
<p>#SOUSTITRE</p>
</header>
<section class="wrapper style4 alt">
<div class="inner">
<p>
<br /><a href="#URL_SITE_SPIP"><:accueil_site:></a> &gt;<B_FilAriane>
<BOUCLE_FilAriane(HIERARCHIE){id_article}{id_rubrique !IN #CONFIG{html5up_spectral/rubrique_exclure}|picker_selected{rubrique}}>
<a href="#URL_RUBRIQUE">[(#TITRE)]</a> &gt;
</BOUCLE_FilAriane>[(#TITRE)]
</p>
</div>
</section>
<section class="wrapper style5">
<div class="inner">
<p> Par #LESAUTEURS en [(#DATE*|affdate_mois_annee)]</p>
[<div class="chapo #EDIT{chapo}">(#CHAPO|image_reduire{800,*})</div>]
[<div class="texte #EDIT{texte}">(#TEXTE|image_reduire{800,*})</div>]
[<div class="ps #EDIT{ps}">(#PS|image_reduire{800,*})</div>]
[<div class="notes">(#NOTES)</div>]
</div>
[<ul class="actions special">
<li><a href="#URL_SITE" class="button primary">(#NOM_SITE)</a></li>
</ul>]
</section>
<B_motscles>
<section class="wrapper style3 special">
<div class="inner">
<h2><:mots_clefs:></h2>
<BOUCLE_motscles(MOTS){id_article}>
[<a href="#URL_MOT" class="image" style="padding: 10px">(#LOGO_MOT|image_reduire{*,64})</a>]
</BOUCLE_motscles>
</div>
</section>
</B_motscles>
</article>
</BOUCLE_principale>
<!-- Footer -->
<INCLURE{fond=inclure/footer}>
</div>
<!-- Scripts -->
<INCLURE{fond=inclure/script}>
</body>
</html>
<BOUCLE_principale_article(ARTICLES){id_article}>
<INCLURE{fond=structure,env,id_rubrique=#ENV{id_rubrique,#ID_RUBRIQUE},id_secteur=#ID_SECTEUR,type-page=article,composition=#COMPOSITION} />
</BOUCLE_principale_article>

91
auteur.html

@ -1,88 +1,3 @@
<!DOCTYPE HTML>
<html>
<head>
<INCLURE{fond=inclure/head,id_auteur}>
</head>
<body class="is-preload">
<!-- Page Wrapper -->
<div id="page-wrapper">
<!-- Header & Menu -->
<INCLURE{fond=inclure/header_menu}>
<!-- Main -->
<BOUCLE_principale(AUTEURS){id_auteur}>
<article id="main">
<header>
<h2>[(#NOM|supprimer_numero)]</h2>
[(#LOGO_AUTEUR|image_reduire{*,128})]
</header>
[<section class="wrapper style4 alt">
<div class="inner">
<div style="margin-left:1em;margin-right:1em">
<p >
(#BIO)
</p>
</div>
</div>
</section>]
<section class="wrapper style5">
<div class="inner">
<B_articles>
<h2>#TOTAL_BOUCLE [(#TOTAL_BOUCLE|>={2}|?{<:articles:>, <:article:>})] de [(#NOM|supprimer_numero)]</h2>
<BOUCLE_articles(ARTICLES){id_auteur}{id_rubrique !IN #CONFIG{html5up_spectral/rubrique_exclure}|picker_selected{rubrique}}{par date}{inverse}>
<h4><a href="#URL_ARTICLE">#TITRE</a></h4>
#DESCRIPTIF
</BOUCLE_articles>
[<h2>Site internet de [(#NOM|supprimer_numero)]</h2>
<ul class="actions special">
<li><a href="#URL_SITE" class="button primary">(#NOM_SITE)</a></li>
</ul>]
<B_contact>
[(#REM) hack provisoire pour ne pouvoir contacter que les admin, sera paramétrable bientôt ]
<h2>Contacter [(#NOM|supprimer_numero)]</h2>
#FORMULAIRE_ECRIRE_AUTEUR
<BOUCLE_contact(AUTEURS){id_auteur}{statut=0minirezo}>
</BOUCLE_contact>
</div>
</B_contact>
</section>
</article>
</BOUCLE_principale>
<!-- Footer -->
<INCLURE{fond=inclure/footer}>
</div>
<!-- Scripts -->
<INCLURE{fond=inclure/script}>
</body>
</html>
<BOUCLE_principale_auteur(AUTEURS){id_auteur}>
<INCLURE{fond=structure,env,type-page=auteur,composition=#COMPOSITION} />
</BOUCLE_principale_auteur>

43
backend.html

@ -0,0 +1,43 @@
[(#REM)
Ce fichier sert à créer les flux RSS
qui permettent aux visiteurs de suivre l'actualité
de votre site depuis un lecteur de news.
Cette page génère un code XML/RSS adapté
][(#HTTP_HEADER{Content-type: text/xml[; charset=(#CHARSET)]})]<?xml
version="1.0"[ encoding="(#CHARSET)"]?>
<rss version="2.0" [(#REM) rss 2.0.9)]
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:atom="http://www.w3.org/2005/Atom"
>
<channel[ xml:lang="(#LANG)"]>
<title>[(#NOM_SITE_SPIP|textebrut|texte_backend)]</title>
<link>#URL_SITE_SPIP/</link>
[<description>(#DESCRIPTIF_SITE_SPIP|supprimer_tags|texte_backend)</description>]
<language>#LANG</language>
<generator>SPIP - www.spip.net</generator>
<atom:link href="[(#SELF|url_absolue)]" rel="self" type="application/rss+xml" />
[ <image>
<title>[(#NOM_SITE_SPIP|texte_backend)]</title>
<url>(#LOGO_SITE_SPIP|image_reduire{144,400}|extraire_attribut{src}|url_absolue|texte_backend)</url>
<link>#URL_SITE_SPIP/</link>
[<height>(#LOGO_SITE_SPIP|image_reduire{144,400}|extraire_attribut{height})</height>]
[<width>(#LOGO_SITE_SPIP|image_reduire{144,400}|extraire_attribut{width})</width>]
</image>
]
<BOUCLE_10recents(ARTICLES) {lang ?}{branche ?}{id_mot ?}{id_auteur ?} {par date}{inverse}{0,10}{unique}>
<INCLURE{fond=inclure/rss-item,id_article} />
</BOUCLE_10recents>
<BOUCLE_tres_recents(ARTICLES){lang ?}{branche ?}{id_mot ?}{id_auteur ?} {par date}{inverse}{age<3}{unique}>
<INCLURE{fond=inclure/rss-item,id_article} />
</BOUCLE_tres_recents>
</channel>
</rss>

29
body.html

@ -0,0 +1,29 @@
<body class="landing is-preload">
<div id="page-wrapper">
<header id="header"[(#ENV{type-page}|=={sommaire}|oui) class="alt"]>
<h1>[(#SI_PAGE{sommaire}|non)<a href="#URL_SITE_SPIP">]#NOM_SITE_SPIP[(#SI_PAGE{sommaire}|non)</a>]</h1>
<INCLURE{fond=inclure/sidemenu,env} />
</header>
<!-- breadcrumb -->
<INCLURE{fond=breadcrumb/#ENV{type-page},env} />
<!-- content -->
<INCLURE{fond=content/#ENV{type-page},env} />
<!-- Footer -->
<footer id="footer">
<INCLURE{fond=inclure/footer} />
</footer>
</div><!-- page-wrapper -->
[(#REM) Scripts ]
[<script src="(#CHEMIN{javascript/jquery.scrollex.min.js})" type="text/javascript"></script>]
[<script src="(#CHEMIN{javascript/jquery.scrolly.min.js})" type="text/javascript"></script>]
[<script src="(#CHEMIN{javascript/browser.min.js})" type="text/javascript"></script>]
[<script src="(#CHEMIN{javascript/breakpoints.min.js})" type="text/javascript"></script>]
[<script src="(#CHEMIN{javascript/util.js})" type="text/javascript"></script>]
[<script src="(#CHEMIN{javascript/main.js})" type="text/javascript"></script>]
</body>

5
breadcrumb/401.html

@ -0,0 +1,5 @@
[(#REM) Fil d'Ariane ]
<nav class="arbo">
<a href="#URL_SITE_SPIP/"><:accueil_site:></a> <span class="divider"> &gt; </span>
<span class="active"><:pass_erreur:>[ (#ENV{status})]</span>
</nav>

5
breadcrumb/404.html

@ -0,0 +1,5 @@
[(#REM) Fil d'Ariane ]
<nav class="arbo">
<a href="#URL_SITE_SPIP/"><:accueil_site:></a> <span class="divider"> &gt; </span>
<span class="active"><:pass_erreur:> 404</span>
</nav>

8
breadcrumb/auteur.html

@ -0,0 +1,8 @@
<BOUCLE_content(AUTEURS){id_auteur}>
[(#REM) Fil d'Ariane ]
<nav class="arbo">
<a href="#URL_SITE_SPIP/"><:accueil_site:></a><span class="divider"> &gt; </span>
<:info_auteurs:><span class="divider"> &gt; </span>
[<span class="active">(#NOM|couper{80})</span>]
</nav>
</BOUCLE_content>

15
breadcrumb/dist.html

@ -0,0 +1,15 @@
<nav class="arbo">
#SET{objet,''}#SET{id_objet,''}
[(#ENV{id_rubrique}|oui)#SET{objet,rubrique}#SET{id_objet,#ENV{id_rubrique}}]
[(#ENV{id_syndic}|oui)#SET{objet,site}#SET{id_objet,#ENV{id_syndic}}]
[(#ENV{id_breve}|oui)#SET{objet,breve}#SET{id_objet,#ENV{id_breve}}]
[(#ENV{id_article}|oui)#SET{objet,article}#SET{id_objet,#ENV{id_article}}]
[(#ENV{id_objet}|oui)#SET{objet,#ENV{objet}}#SET{id_objet,#ENV{id_objet}}]
[(#GET{objet}|oui)
#INCLURE{fond=breadcrumb/inc-objet,id_objet=#GET{id_objet},objet=#GET{objet}}
][(#GET{objet}|non)
<a href="#URL_SITE_SPIP/"><:accueil_site:></a>
]
</nav>

21
breadcrumb/forum.html

@ -0,0 +1,21 @@
[(#REM) Fil d'Ariane ]
<nav class="arbo">
#SET{objet,''}#SET{id_objet,''}
[(#ENV{id_rubrique}|oui)#SET{objet,rubrique}#SET{id_objet,#ENV{id_rubrique}}]
[(#ENV{id_syndic}|oui)#SET{objet,site}#SET{id_objet,#ENV{id_syndic}}]
[(#ENV{id_breve}|oui)#SET{objet,breve}#SET{id_objet,#ENV{id_breve}}]
[(#ENV{id_article}|oui)#SET{objet,article}#SET{id_objet,#ENV{id_article}}]
[(#ENV{id_objet}|oui)#SET{objet,#ENV{objet}}#SET{id_objet,#ENV{id_objet}}]
[(#GET{objet}|oui)
#INCLURE{fond=breadcrumb/inc-objet,id_objet=#GET{id_objet},objet=#GET{objet},expose=''}
][(#GET{objet}|non)
<a href="#URL_SITE_SPIP/"><:accueil_site:></a><span class="divider"> &gt; </span>
]
<BOUCLE_for(FORUMS){id_forum}>
<a href="#URL_FORUM">[(#TITRE|couper{80})]</a><span class="divider"> &gt; </span>
</BOUCLE_for>
<span class="active"><:poster_message:></span>
</nav>

7
breadcrumb/inc-objet.html

@ -0,0 +1,7 @@
<a href="#URL_SITE_SPIP/"><:accueil_site:></a><span class="divider"> &gt; </span>
<BOUCLE_contexte_rubrique(RUBRIQUES) {id_rubrique=(#OBJET|=={rubrique}|?{#INFO_ID_PARENT{#OBJET,#ID_OBJET},#INFO_ID_RUBRIQUE{#OBJET,#ID_OBJET}})}>
<BOUCLE_ariane_hier(HIERARCHIE) {id_rubrique}{tout}>
<a href="#URL_RUBRIQUE">[(#TITRE|couper{80})]</a><span class="divider"> &gt; </span>
</BOUCLE_ariane_hier>
</BOUCLE_contexte_rubrique>
<span[(#ENV{expose,' '}|oui)class="active"]>[(#ID_OBJET|generer_url_entite{#OBJET}|lien_ou_expose{#INFO_TITRE{#OBJET,#ID_OBJET}|sinon{?}|couper{80},#ENV{expose,' '}|?{span}})]</span>[<span class="divider">(#ENV{expose,' '}|non)&gt; </span>]

5
breadcrumb/inc-page.html

@ -0,0 +1,5 @@
<span class="breadcrumb">
<span class="expose">
<strong class="on">#ENV{titre}</strong>
</span>
</span>

10
breadcrumb/login.html

@ -0,0 +1,10 @@
[(#REM)
Est-ce qu'on se connecte a l'espace prive ou pas ?
]#SET{prive,''}
[(#ENV{url}|=={''}|?{#SET{prive,' '}})]
[(#ENV{url}|match{^#EVAL{_DIR_RESTREINT_ABS}}|?{#SET{prive,' '}})]
[(#REM) Fil d'Ariane ]
<nav class="arbo"><a href="#URL_SITE_SPIP/"><:accueil_site:></a>
[<span class="divider"> &gt; </span><strong class="on">(#GET{prive}|?{<:login_acces_prive:>,<:lien_connecter:>})</strong>]
</nav>

8
breadcrumb/mot.html

@ -0,0 +1,8 @@
<BOUCLE_content(MOTS) {id_mot} {doublons}>
<nav class="arbo">
<a href="#URL_SITE_SPIP/"><:accueil_site:></a><span class="divider"> &gt; </span>
<span><:mots_clefs:></span><span class="divider"> &gt; </span>
<BOUCLE_ariane(GROUPES_MOTS){id_groupe}><span>[(#TITRE|couper{80})]</span><span class="divider"> &gt; </span></BOUCLE_ariane>
<span class="active">[(#TITRE|couper{80})]</span>
</nav>
</BOUCLE_content>

4
breadcrumb/plan.html

@ -0,0 +1,4 @@
<nav class="arbo">
<a href="#URL_SITE_SPIP/"><:accueil_site:></a><span class="divider"> &gt; </span>
<span class="active"><:plan_site:></span>
</nav>

4
breadcrumb/recherche.html

@ -0,0 +1,4 @@
<nav class="arbo">
<a href="#URL_SITE_SPIP/"><:accueil_site:></a><span class="divider"> &gt; </span>
<span class="active"><:info_rechercher:> [&laquo; <strong class="on">(#RECHERCHE)</strong> &raquo;]</span>
</nav>

0
breadcrumb/sommaire.html

3
breve.html

@ -0,0 +1,3 @@
<BOUCLE_breve_principal(BREVES) {id_breve}>
<INCLURE{fond=structure,env,id_rubrique=#ENV{id_rubrique,#ID_RUBRIQUE},id_secteur=#ID_SECTEUR,type-page=breve,composition=#COMPOSITION} />
</BOUCLE_breve_principal>

8
content/401.html

@ -0,0 +1,8 @@
<section>
<header class="main">
<h1>401</h1>
</header>
#FORMULAIRE_LOGIN{#ENV{cible},'',0}
</section>

8
content/404.html

@ -0,0 +1,8 @@
<section>
<header class="main">
<h1>404</h1>
</header>
#FORMULAIRE_RECHERCHE
</section>

22
content/article.html

@ -0,0 +1,22 @@
<BOUCLE_article(ARTICLES){id_article}>
<section>
<header class="main">
[<p class="surtitre #EDIT{surtitre}">(#SURTITRE)</p>]
[<h1 class="titre #EDIT{titre}">(#TITRE)</h1>]
[<p class="soustitre #EDIT{soustitre}">(#SOUSTITRE)</p>]
<BOUCLE_mots(MOTS){id_article}><a href="#URL_MOT" class="button small">#TITRE</a></BOUCLE_mots>
</header>
[<div class="chapo #EDIT{chapo}">(#CHAPO|adaptive_images{1280})</div>]
[<div class="texte #EDIT{texte}">(#TEXTE|adaptive_images)</div>]
[<div class="ps #EDIT{ps}">(#PS|adaptive_images)</div>]
[<div class="notes">(#NOTES)</div>]
<INCLURE{fond=inclure/documents,id_article,id_rubrique=#NULL,ajax,env} />
<INCLURE{fond=inclure/forum,id_article} />
[<h2 class="forum-titre"><:forum:form_pet_message_commentaire:></h2>
(#FORMULAIRE_FORUM)]
</section>
</BOUCLE_article>

15
content/auteur.html

@ -0,0 +1,15 @@
<BOUCLE_content(AUTEURS){id_auteur}>
<section>
<header class="main">
<h1 class="#EDIT{qui} fn" itemprop="name">[(#LOGO_AUTEUR|image_reduire|inserer_attribut{itemprop,image})]#NOM</h1>
</header>
[<div class="#EDIT{bio} texte bio">(#BIO)</div>]
[<p class="#EDIT{hyperlien} hyperlien"><:voir_en_ligne:> : <a href="(#URL_SITE)" class="url spip_out" itemprop="url">[(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})]</a></p>]
#FORMULAIRE_ECRIRE_AUTEUR
[<div class="notes"><h2><:info_notes:></h2>(#NOTES)</div>]
</section>
</BOUCLE_content>

18
content/mot.html

@ -0,0 +1,18 @@
<BOUCLE_mot(MOTS){id_mot}>
<section>
<header class="main">
[<h1 class="#EDIT{titre}">(#TITRE)</h1>]
</header>
[<div class="texte #EDIT{texte}">(#TEXTE|adaptive_images)</div>]
<INCLURE{fond=inclure/documents,id_mot,ajax,env} />
</section>
<section>[(#REM) grader la section ici pour eviter de la mettre dans une div ajaxee -> perte de la mise en forme]
<INCLURE{fond=inclure/liste/articles,id_mot,ajax,env,parpage=6} />
</section>
<section>
<INCLURE{fond=inclure/liste/mots,id_mot,ajax,env,parpage=6} />
</section>
</BOUCLE_mot>

44
content/plan.html

@ -0,0 +1,44 @@
<section>
<header class="main">
[<p class="surtitre">(#SURTITRE)</p>]
[<h1>(#TITRE)</h1>]
[<p class="soustitre">(#SOUSTITRE)</p>]
</header>
<BOUCLE_rubriques(RUBRIQUES){par num titre, titre}{racine}>
<BOUCLE_srubriques(RUBRIQUES){id_rubrique}>
<h2 class="h2"><a href="#URL_RUBRIQUE">#TITRE</a></h2>
[(#REM) Articles et sous-rubriques ]
<B_articles_racine>
<ul class="plan">
<BOUCLE_articles_racine(ARTICLES) {id_rubrique} {par titre}>
<li><a href="#URL_ARTICLE">#TITRE</a></li>
</BOUCLE_articles_racine>
</ul>
</B_articles_racine>
<B_ssrubriques>
<ul class="plan">
<BOUCLE_ssrubriques(RUBRIQUES) {id_parent} {par titre}>
<li>
<strong><a href="#URL_RUBRIQUE">#TITRE</a></strong>
<B_articles>
<ul>
<BOUCLE_articles(ARTICLES) {id_rubrique} {par titre}>
<li><a href="#URL_ARTICLE">#TITRE</a></li>
</BOUCLE_articles>
</ul>
</B_articles>
<BOUCLE_sous_rubriques(BOUCLE_ssrubriques)></BOUCLE_sous_rubriques>
</li>
</BOUCLE_ssrubriques>
</ul>
</B_ssrubriques>
</BOUCLE_srubriques>
</BOUCLE_rubriques>
</section>

10
content/recherche.html

@ -0,0 +1,10 @@
<!-- recherche -->
[(#ENV{recherche}|oui)
<section class="wrapper">
<div class="inner">
<h3 class="major"><:resultats_recherche:> [&laquo; <strong class="on">(#RECHERCHE)</strong> &raquo;]</h3>
<INCLURE{fond=inclure/liste/articles-recherche, env, ajax} />
<INCLURE{fond=inclure/liste/rubriques-recherche, env, ajax} />
</div>
</section>
]

18
content/rubrique.html

@ -0,0 +1,18 @@
<BOUCLE_rubrique(RUBRIQUES){id_rubrique}>
<section>
<header class="main">
[<h1 class="#EDIT{titre}">(#TITRE)</h1>]
</header>
[<div class="texte #EDIT{texte}">(#TEXTE|adaptive_images)</div>]
[<div class="notes">(#NOTES)</div>]
<INCLURE{fond=inclure/documents,id_rubrique,ajax,env} />
</section>
<section>[(#REM) grader la section ici pour eviter de la mettre dans une div ajaxee -> perte de la mise en forme]
<INCLURE{fond=inclure/liste/articles,id_rubrique,ajax,env,parpage=6} />
</section>
<section>
<INCLURE{fond=inclure/liste/rubriques,id_rubrique,ajax,env,parpage=6} />
</section>
</BOUCLE_rubrique>

59
content/sommaire.html

@ -0,0 +1,59 @@
<section id="banner">
<div class="inner">
[<h2>(#CONFIG{html5up/titre_sommaire}|sinon{#NOM_SITE_SPIP})</h2>][(#CONFIG{html5up/slogan_accueil}|=={on}|oui)
[<p>(#SLOGAN_SITE_SPIP)</p>]][(#CONFIG{html5up/descriptif_accueil}|=={on}|oui)
[<p>(#DESCRIPTIF_SITE_SPIP)</p>]]
</div>
<a href="[(#CONFIG{html5up/hero}|picker_selected{article}|oui)#one][(#CONFIG{html5up/hero}|picker_selected{article}|non)#two]" class="more scrolly"><:html5up:continue:></a>
</section>
#SET{exclus,#ARRAY}
<!-- One -->
<BOUCLE_hero(ARTICLES){id_article IN #CONFIG{html5up/hero}|picker_selected{article}}>
<section id="one" class="wrapper style1 special">
<div class="inner">
<header class="major">
[<h2>(#TITRE)</h2>]
[<div class="chapo #EDIT{chapo}">(#CHAPO)</div>]
</header>
[<div class="texte #EDIT{texte}">(#TEXTE)</div>]
</div>
</section>#SET{exclus,#GET{exclus}|push{#ID_ARTICLE}}
</BOUCLE_hero>
<BOUCLE_major(ARTICLES){id_article IN #CONFIG{html5up/major}|picker_selected{article}}>#SET{major,oui}
#SET{titremajor,#TITRE}
#SET{chapomajor,#CHAPO}
#SET{textemajor,#TEXTE}
</BOUCLE_major>
<section id="two" class="wrapper alt style2">
<INCLURE{fond=inclure/liste/articles,env,ajax,
parpage=#CONFIG{html5up/suivants_parpage,6},
exclus=#GET{exclus},
total=#CONFIG{html5up/suivants_total,6}} />
</section>
[(#GET{major}|=={oui}|oui)
<!-- Three -->
<section id="three" class="wrapper style3 special">
<div class="inner">
<header class="major">
[<h2>(#GET{titremajor})</h2>]
[<div class="chapo #EDIT{chapo}">(#CHAPO)</div>]
</header>
[<div class="texte #EDIT{texte}">(#TEXTE)</div>]
</div>
</section>]
<BOUCLE_minor(ARTICLES){id_article IN #CONFIG{html5up/minor}|picker_selected{article}}>
<!-- CTA -->
<section id="cta" class="wrapper style4">
<div class="inner">
<header>
[<h2>(#TITRE)</h2>]
[<p>(#INTRODUCTION)</p>]
</header>
[<ul class="actions stacked">
<li><a href="(#URL_ARTICLE)" class="button fit"><:html5up:lire_la_suite:></a></li>
</ul>]
</div>
</section>
</BOUCLE_minor>

5
css/fontawesome-all.min.css vendored

File diff suppressed because one or more lines are too long

38
css/html5up_spectral.spip.css.html

@ -0,0 +1,38 @@
/*
#CONFIG{html5up_spectral/image_background}
<BOUCLE_image_entete(DOCUMENTS){id_document=#CONFIG{html5up_spectral/image_fond_accueil}}{extension==jpg|png|gif}{tous}>
#SET{image_fond,#URL_DOCUMENT}
#FICHIER
#URL_DOCUMENT
Surcharge l'image de fond si config depuis la page de configuration du plugin... : OK
</BOUCLE_image_entete>
Surcharge l'image de fond si config depuis la page de configuration du plugin... : KO
<//B_image_entete>
*/
[#main > header {
background-image: -moz-linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url("(#GET{image_fond})");]
[background-image: -webkit-linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url("(#GET{image_fond})");]
[background-image: -ms-linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url("(#GET{image_fond})");]
[background-image: linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url("(#GET{image_fond})");
}]
[body.is-mobile.landing #banner,
body.landing #page-wrapper {
background-image: -moz-linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url("(#GET{image_fond})");]
[background-image: -webkit-linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url("(#GET{image_fond})");]
[background-image: -ms-linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url("(#GET{image_fond})");]
[background-image: linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url("(#GET{image_fond})");
}]
[body.is-mobile.landing .wrapper.style4 {
background-image: -moz-linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url("(#GET{image_fond})");]
[background-image: -webkit-linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url("(#GET{image_fond})");]
[background-image: -ms-linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url("(#GET{image_fond})");]
[background-image: linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url("(#GET{image_fond})");
}]

6
css/images/arrow.svg

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="30px" height="30px" viewBox="0 0 30 30" zoomAndPan="disable" preserveAspectRatio="none">
<style type="text/css"><![CDATA[ line { stroke: #ffffff; stroke-width: 3; } ]]></style>
<line x1="0" y1="15" x2="15" y2="30" />
<line x1="30" y1="15" x2="15" y2="30" />
<line x1="15" y1="30" x2="15" y2="0" />
</svg>

After

Width:  |  Height:  |  Size: 401 B

0
images/banner.jpg → css/images/banner.jpg

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

6
css/images/bars.svg

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16px" height="16px" viewBox="0 0 16 16" zoomAndPan="disable" preserveAspectRatio="none">
<style type="text/css"><![CDATA[ line { stroke: #ffffff; stroke-width: 2; } ]]></style>
<line x1="0" y1="1" x2="16" y2="1" />
<line x1="0" y1="7" x2="16" y2="7" />
<line x1="0" y1="13" x2="16" y2="13" />
</svg>

After

Width:  |  Height:  |  Size: 396 B

5
css/images/close.svg

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16px" height="16px" viewBox="0 0 16 16" zoomAndPan="disable" preserveAspectRatio="none">
<style type="text/css"><![CDATA[ line { stroke: #ffffff; stroke-width: 2; } ]]></style>
<line x1="0" y1="0" x2="16" y2="16" />
<line x1="16" y1="0" x2="0" y2="16" />
</svg>

After

Width:  |  Height:  |  Size: 357 B

223
css/libs/_breakpoints.scss

@ -0,0 +1,223 @@
// breakpoints.scss v1.0 | @ajlkn | MIT licensed */
// Vars.
/// Breakpoints.
/// @var {list}
$breakpoints: () !global;
// Mixins.
/// Sets breakpoints.
/// @param {map} $x Breakpoints.
@mixin breakpoints($x: ()) {
$breakpoints: $x !global;
}
/// Wraps @content in a @media block targeting a specific orientation.
/// @param {string} $orientation Orientation.
@mixin orientation($orientation) {
@media screen and (orientation: #{$orientation}) {
@content;
}
}
/// Wraps @content in a @media block using a given query.
/// @param {string} $query Query.
@mixin breakpoint($query: null) {
$breakpoint: null;
$op: null;
$media: null;
// Determine operator, breakpoint.
// Greater than or equal.
@if (str-slice($query, 0, 2) == '>=') {
$op: 'gte';
$breakpoint: str-slice($query, 3);
}
// Less than or equal.
@elseif (str-slice($query, 0, 2) == '<=') {
$op: 'lte';
$breakpoint: str-slice($query, 3);
}
// Greater than.
@elseif (str-slice($query, 0, 1) == '>') {
$op: 'gt';
$breakpoint: str-slice($query, 2);
}
// Less than.
@elseif (str-slice($query, 0, 1) == '<') {
$op: 'lt';
$breakpoint: str-slice($query, 2);
}
// Not.
@elseif (str-slice($query, 0, 1) == '!') {
$op: 'not';
$breakpoint: str-slice($query, 2);
}
// Equal.
@else {
$op: 'eq';
$breakpoint: $query;
}
// Build media.
@if ($breakpoint and map-has-key($breakpoints, $breakpoint)) {
$a: map-get($breakpoints, $breakpoint);
// Range.
@if (type-of($a) == 'list') {
$x: nth($a, 1);
$y: nth($a, 2);
// Max only.
@if ($x == null) {
// Greater than or equal (>= 0 / anything)
@if ($op == 'gte') {
$media: 'screen';
}
// Less than or equal (<= y)
@elseif ($op == 'lte') {
$media: 'screen and (max-width: ' + $y + ')';
}
// Greater than (> y)
@elseif ($op == 'gt') {
$media: 'screen and (min-width: ' + ($y + 1) + ')';
}
// Less than (< 0 / invalid)
@elseif ($op == 'lt') {
$media: 'screen and (max-width: -1px)';
}
// Not (> y)
@elseif ($op == 'not') {
$media: 'screen and (min-width: ' + ($y + 1) + ')';
}
// Equal (<= y)
@else {
$media: 'screen and (max-width: ' + $y + ')';
}
}
// Min only.
@else if ($y == null) {
// Greater than or equal (>= x)
@if ($op == 'gte') {
$media: 'screen and (min-width: ' + $x + ')';
}
// Less than or equal (<= inf / anything)
@elseif ($op == 'lte') {
$media: 'screen';
}
// Greater than (> inf / invalid)
@elseif ($op == 'gt') {
$media: 'screen and (max-width: -1px)';
}
// Less than (< x)
@elseif ($op == 'lt') {
$media: 'screen and (max-width: ' + ($x - 1) + ')';
}
// Not (< x)
@elseif ($op == 'not') {
$media: 'screen and (max-width: ' + ($x - 1) + ')';
}
// Equal (>= x)
@else {
$media: 'screen and (min-width: ' + $x + ')';
}
}
// Min and max.
@else {
// Greater than or equal (>= x)
@if ($op == 'gte') {
$media: 'screen and (min-width: ' + $x + ')';
}
// Less than or equal (<= y)
@elseif ($op == 'lte') {
$media: 'screen and (max-width: ' + $y + ')';
}
// Greater than (> y)
@elseif ($op == 'gt') {
$media: 'screen and (min-width: ' + ($y + 1) + ')';
}
// Less than (< x)
@elseif ($op == 'lt') {
$media: 'screen and (max-width: ' + ($x - 1) + ')';
}
// Not (< x and > y)
@elseif ($op == 'not') {
$media: 'screen and (max-width: ' + ($x - 1) + '), screen and (min-width: ' + ($y + 1) + ')';
}
// Equal (>= x and <= y)
@else {
$media: 'screen and (min-width: ' + $x + ') and (max-width: ' + $y + ')';
}
}
}
// String.
@else {
// Missing a media type? Prefix with "screen".
@if (str-slice($a, 0, 1) == '(') {
$media: 'screen and ' + $a;
}
// Otherwise, use as-is.
@else {
$media: $a;
}
}
}
// Output.
@media #{$media} {
@content;
}
}

90
css/libs/_functions.scss

@ -0,0 +1,90 @@
/// Removes a specific item from a list.
/// @author Hugo Giraudel
/// @param {list} $list List.
/// @param {integer} $index Index.
/// @return {list} Updated list.
@function remove-nth($list, $index) {
$result: null;
@if type-of($index) != number {
@warn "$index: #{quote($index)} is not a number for `remove-nth`.";
}
@else if $index == 0 {
@warn "List index 0 must be a non-zero integer for `remove-nth`.";
}
@else if abs($index) > length($list) {
@warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`.";
}
@else {
$result: ();
$index: if($index < 0, length($list) + $index + 1, $index);
@for $i from 1 through length($list) {
@if $i != $index {
$result: append($result, nth($list, $i));
}
}
}
@return $result;
}
/// Gets a value from a map.
/// @author Hugo Giraudel
/// @param {map} $map Map.
/// @param {string} $keys Key(s).
/// @return {string} Value.
@function val($map, $keys...) {
@if nth($keys, 1) == null {
$keys: remove-nth($keys, 1);
}
@each $key in $keys {
$map: map-get($map, $key);
}
@return $map;
}
/// Gets a duration value.
/// @param {string} $keys Key(s).
/// @return {string} Value.
@function _duration($keys...) {
@return val($duration, $keys...);
}
/// Gets a font value.
/// @param {string} $keys Key(s).
/// @return {string} Value.
@function _font($keys...) {
@return val($font, $keys...);
}
/// Gets a misc value.
/// @param {string} $keys Key(s).
/// @return {string} Value.
@function _misc($keys...) {
@return val($misc, $keys...);
}
/// Gets a palette value.
/// @param {string} $keys Key(s).
/// @return {string} Value.
@function _palette($keys...) {
@return val($palette, $keys...);
}
/// Gets a size value.
/// @param {string} $keys Key(s).
/// @return {string} Value.
@function _size($keys...) {
@return val($size, $keys...);
}

149
css/libs/_html-grid.scss

@ -0,0 +1,149 @@
// html-grid.scss v1.0 | @ajlkn | MIT licensed */
// Mixins.
/// Initializes the current element as an HTML grid.
/// @param {mixed} $gutters Gutters (either a single number to set both column/row gutters, or a list to set them individually).
/// @param {mixed} $suffix Column class suffix (optional; either a single suffix or a list).
@mixin html-grid($gutters: 1.5em, $suffix: '') {
// Initialize.
$cols: 12;
$multipliers: 0, 0.25, 0.5, 1, 1.50, 2.00;
$unit: 100% / $cols;
// Suffixes.
$suffixes: null;
@if (type-of($suffix) == 'list') {
$suffixes: $suffix;
}
@else {
$suffixes: ($suffix);
}
// Gutters.
$guttersCols: null;
$guttersRows: null;
@if (type-of($gutters) == 'list') {
$guttersCols: nth($gutters, 1);
$guttersRows: nth($gutters, 2);
}
@else {
$guttersCols: $gutters;
$guttersRows: 0;
}
// Row.
display: flex;
flex-wrap: wrap;
box-sizing: border-box;
align-items: stretch;
// Columns.
> * {
box-sizing: border-box;
}
// Gutters.
&.gtr-uniform {
> * {
> :last-child {
margin-bottom: 0;
}
}
}
// Alignment.
&.aln-left {
justify-content: flex-start;
}
&.aln-center {
justify-content: center;
}
&.aln-right {
justify-content: flex-end;
}
&.aln-top {
align-items: flex-start;
}
&.aln-middle {
align-items: center;
}
&.aln-bottom {
align-items: flex-end;
}
// Step through suffixes.
@each $suffix in $suffixes {
// Suffix.
@if ($suffix != '') {
$suffix: '-' + $suffix;
}
@else {
$suffix: '';
}
// Row.
// Important.
> .imp#{$suffix} {
order: -1;
}
// Columns, offsets.
@for $i from 1 through $cols {
> .col-#{$i}#{$suffix} {
width: $unit * $i;
}
> .off-#{$i}#{$suffix} {
margin-left: $unit * $i;
}
}
// Step through multipliers.
@each $multiplier in $multipliers {
// Gutters.
$class: null;
@if ($multiplier != 1) {
$class: '.gtr-' + ($multiplier * 100);
}
&#{$class} {
margin-top: ($guttersRows * $multiplier * -1);
margin-left: ($guttersCols * $multiplier * -1);
> * {
padding: ($guttersRows * $multiplier) 0 0 ($guttersCols * $multiplier);
}
// Uniform.
&.gtr-uniform {
margin-top: $guttersCols * $multiplier * -1;
> * {
padding-top: $guttersCols * $multiplier;
}
}
}
}
}
}

78
css/libs/_mixins.scss

@ -0,0 +1,78 @@
/// Makes an element's :before pseudoelement a FontAwesome icon.
/// @param {string} $content Optional content value to use.
/// @param {string} $category Optional category to use.
/// @param {string} $where Optional pseudoelement to target (before or after).
@mixin icon($content: false, $category: regular, $where: before) {
text-decoration: none;
&:#{$where} {
@if $content {
content: $content;
}
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
display: inline-block;
font-style: normal;
font-variant: normal;
text-rendering: auto;
line-height: 1;
text-transform: none !important;
@if ($category == brands) {
font-family: 'Font Awesome 5 Brands';
}
@elseif ($category == solid) {
font-family: 'Font Awesome 5 Free';
font-weight: 900;
}
@else {
font-family: 'Font Awesome 5 Free';
font-weight: 400;
}
}
}
/// Applies padding to an element, taking the current element-margin value into account.
/// @param {mixed} $tb Top/bottom padding.
/// @param {mixed} $lr Left/right padding.
/// @param {list} $pad Optional extra padding (in the following order top, right, bottom, left)
/// @param {bool} $important If true, adds !important.
@mixin padding($tb, $lr, $pad: (0,0,0,0), $important: null) {
@if $important {
$important: '!important';
}
$x: 0.1em;
@if unit(_size(element-margin)) == 'rem' {
$x: 0.1rem;
}
padding: ($tb + nth($pad,1)) ($lr + nth($pad,2)) max($x, $tb - _size(element-margin) + nth($pad,3)) ($lr + nth($pad,4)) #{$important};
}
/// Encodes a SVG data URL so IE doesn't choke (via codepen.io/jakob-e/pen/YXXBrp).
/// @param {string} $svg SVG data URL.
/// @return {string} Encoded SVG data URL.
@function svg-url($svg) {
$svg: str-replace($svg, '"', '\'');
$svg: str-replace($svg, '%', '%25');
$svg: str-replace($svg, '<', '%3C');
$svg: str-replace($svg, '>', '%3E');
$svg: str-replace($svg, '&', '%26');
$svg: str-replace($svg, '#', '%23');
$svg: str-replace($svg, '{', '%7B');
$svg: str-replace($svg, '}', '%7D');
$svg: str-replace($svg, ';', '%3B');
@return url("data:image/svg+xml;charset=utf8,#{$svg}");
}

119
css/libs/_vars.scss

@ -0,0 +1,119 @@
// Misc.
$misc: (
max-spotlights: 10,
max-features: 10,
z-index-base: 10000
);
// Duration.
$duration: (
transitions: 0.2s,
menu: 0.5s,
fadein: 3s
);
// Size.
$size: (
element-height: 2.75em,
element-margin: 2em,
letter-spacing: 0.075em,
letter-spacing-alt: 0.225em
);
// Font.
$font: (
family: ('Open Sans', Helvetica, sans-serif),
family-fixed: ('Courier New', monospace),
weight: 400,
weight-bold: 600,
weight-extrabold: 800
);
// Palette.
$palette: (
bg: #2e3842,
fg: #fff,
fg-bold: #fff,
fg-light: rgba(255,255,255,0.5),
border: #fff,
border-bg: rgba(144,144,144,0.25),
border2: #fff,
border2-bg: rgba(144,144,144,0.5),
accent1: (
bg: #21b2a6,
fg-bold: #ffffff,
fg: mix(#21b2a6, #ffffff, 25%),
fg-light: mix(#21b2a6, #ffffff, 40%),
border: rgba(0,0,0,0.125),
border-bg: rgba(255,255,255,0.075),
border2: rgba(0,0,0,0.25),
border2-bg: rgba(255,255,255,0.2)
),
accent2: (
bg: #00ffcc,
fg-bold: #ffffff,
fg: mix(#00ffcc, #ffffff, 25%),
fg-light: mix(#00ffcc, #ffffff, 40%),
border: rgba(0,0,0,0.125),
border-bg: rgba(255,255,255,0.075),
border2: rgba(0,0,0,0.25),
border2-bg: rgba(255,255,255,0.2)
),
accent3: (
bg: #00f0ff,
fg-bold: #ffffff,
fg: mix(#00f0ff, #ffffff, 25%),
fg-light: mix(#00f0ff, #ffffff, 40%),
border: rgba(0,0,0,0.125),
border-bg: rgba(255,255,255,0.075),
border2: rgba(0,0,0,0.25),
border2-bg: rgba(255,255,255,0.2)
),
accent4: (
bg: #76ddff,
fg-bold: #ffffff,
fg: mix(#76ddff, #ffffff, 25%),
fg-light: mix(#76ddff, #ffffff, 40%),
border: rgba(0,0,0,0.125),
border-bg: rgba(255,255,255,0.075),
border2: rgba(0,0,0,0.25),
border2-bg: rgba(255,255,255,0.2)
),
accent5: (
bg: #505393,
fg-bold: #ffffff,
fg: mix(#505393, #ffffff, 25%),
fg-light: mix(#505393, #ffffff, 40%),
border: rgba(0,0,0,0.125),