{A:D}

Du code, des astuces et des pixels.

3 - Les données de thème

Que sont les données de thèmes ? Et bien ce sont les infos que vous avez vu entre

1
2
{% %} //accolade + pourcentage
{{ }} //doubles accolades

Le paramètre “site”

Quand vous créer votre octopress, un fichier _config.yml est créé contenant plein de paramètres :

Fichier créé juste après la création d’octopress
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# ----------------------- #
#      Main Configs       #
# ----------------------- #

url: http://yoursite.com
title: My Octopress Blog
subtitle: A blogging framework for hackers.
author: Your Name
simple_search: http://google.com/search
description:

# Default date format is "ordinal" (resulting in "July 22nd 2007")
# You can customize the format as defined in
# http://www.ruby-doc.org/core-1.9.2/Time.html#method-i-strftime
# Additionally, %o will give you the ordinal representation of the day
date_format: "ordinal"

# RSS / Email (optional) subscription links (change if using something like Feedburner)
subscribe_rss: /atom.xml
subscribe_email:
# RSS feeds can list your email address if you like
email:

# ----------------------- #
#    Jekyll & Plugins     #
# ----------------------- #

# If publishing to a subdirectory as in http://site.com/project set 'root: /project'
root: /
permalink: /blog/:year/:month/:day/:title/
source: source
destination: public
plugins: plugins
code_dir: downloads/code
category_dir: blog/categories
markdown: rdiscount
pygments: false # default python pygments have been replaced by pygments.rb

paginate: 10          # Posts per page on the blog index
pagination_dir: blog  # Directory base for pagination URLs eg. /blog/page/2/
recent_posts: 5       # Posts in the sidebar Recent Posts section
excerpt_link: "Read on →"  # "Continue reading" link text at the bottom of excerpted articles

titlecase: true       # Converts page and post titles to titlecase

# list each of the sidebar modules you want to include, in the order you want them to appear.
# To add custom asides, create files in /source/_includes/custom/asides/ and add them to the list like 'custom/asides/custom_aside_name.html'
default_asides: [asides/recent_posts.html, asides/github.html, asides/twitter.html, asides/delicious.html, asides/pinboard.html, asides/googleplus.html]

# Each layout uses the default asides, but they can have their own asides instead. Simply uncomment the lines below
# and add an array with the asides you want to use.
# blog_index_asides:
# post_asides:
# page_asides:

# ----------------------- #
#   3rd Party Settings    #
# ----------------------- #

# Github repositories
github_user:
github_repo_count: 0
github_show_profile_link: true
github_skip_forks: true

# Twitter
twitter_user:
twitter_tweet_count: 4
twitter_show_replies: false
twitter_follow_button: true
twitter_show_follower_count: false
twitter_tweet_button: true

# Google +1
google_plus_one: false
google_plus_one_size: medium

# Google Plus Profile
# Hidden: No visible button, just add author information to search results
googleplus_user:
googleplus_hidden: false

# Pinboard
pinboard_user:
pinboard_count: 3

# Delicious
delicious_user:
delicious_count: 3

# Disqus Comments
disqus_short_name:
disqus_show_comment_count: false

# Google Analytics
google_analytics_tracking_id:

# Facebook Like
facebook_like: false

C’est ce fichier que l’on nomme “site”. Si vous faites un appel :

1
{{ site.author }}

Octopress ira chercher dans _config.yml la valeur de “author”. Pour l’instant la valeur retournée serait : “Your Name” . Compris ? Je récapitule, dans l’exemple ci-dessous, on aura donc dans l’ordre :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# ----------------------- #
#      Main Configs       #
# ----------------------- #

url: http://yoursite.com
title: My Octopress Blog
subtitle: A blogging framework for hackers.
author: Your Name
simple_search: http://google.com/search
description:

# Default date format is "ordinal" (resulting in "July 22nd 2007")
# You can customize the format as defined in
# http://www.ruby-doc.org/core-1.9.2/Time.html#method-i-strftime
# Additionally, %o will give you the ordinal representation of the day
date_format: "ordinal"

# RSS / Email (optional) subscription links (change if using something like Feedburner)
subscribe_rss: /atom.xml
subscribe_email:
# RSS feeds can list your email address if you like
email:
  • site.url
  • site.title
  • site.subtitle
  • site.author
  • site.simple_search
  • site.description
  • site.date_format
  • site.subscribe_rss
  • site.subscribe_email
  • site.email

J’espère que tout est clair pour vous.

Passons maintenant à “page”.


Le paramètre “page”

Alors page représente tout simplement, le fichier en cours de modélisation, celui qui contient le

1
{{ content }}

entre doubles accolades.

Si on reprend le tuto dans l’ordre, notre fichier page est donc index.html pour le moment.

En effet, index.html appelait le modèle home.html qui lui même appelait les _includes. Dans notre cas index.html sera “page”, home.html sera le layout. Vous suivez ? Vous pouvez dans l’entête de “page” mettre des variables que vous appellerez par la suite grâce à

1
{{ page.nom_de_la_variable. }}

à l’endroit voulu.

Il existe des valeurs déjà utilisées par octopress comme :

  • page.content : le contenu brut de votre “page”,
  • page.title : le titre,
  • page.url : l’url unique sans le domaine (comme les permaliens wordpress),
  • page.date : la date Vous pouvez forcer un format en spécifiant YYYY-MM-DD HH:MM:SS,
  • page.id : un identifiant unqiue de votre page pour le flux RSS (/2012/08/05/titre par exemple),
  • page.categories : les catégories que vous lui affecter,
  • page.tags : les tags que vous lui affecter.

Vous pouver ajouter page.sommaire ou page.excerpt ou page.geolocalisation tant que dans l’entête de votre “page” comprise entre deux jeu de 3 —, vous spécifiiez (oui oui deux i, la langue française est merveilleuse) ces paramètres. Au cas où ils ne sont pas systématiques pensez juste à faire une boucle de test if endif sinon octopress génererait des erreurs et planterait le système.

Exemple le code de footer.html

1
2
3
4
5
6
7
8
<footer class="footer">
  <span class="author">2012 - {% if site.author %} {{ site.author }} {% endif %}</span>
  <aside class="offsite-links">
    <a class="twitter-link" href="http://www.twitter.com/_">Twitter</a> /
    <a class="github-link" href="https://github.com/_">GitHub</a> /
    <a class="rss-link" href="/feed">RSS</a>
  </aside>
</footer>

C’est infini. Ajustable selon les besoins et le thème que l’on fait.

Référence en anglais.

Comments