Version améliorée, en cours...
This commit is contained in:
parent
a9b0c23551
commit
bbbc216bb4
10 changed files with 116 additions and 34 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -4,4 +4,5 @@ output/Scratch/en
|
|||
output/Scratch/fr
|
||||
output/Scratch/multi
|
||||
output/Scratch/map.yrf
|
||||
output/index.html
|
||||
tmp/
|
||||
|
|
6
Rules
6
Rules
|
@ -1,6 +1,12 @@
|
|||
#!/usr/bin/env ruby
|
||||
|
||||
# page d'Accueil
|
||||
route '/' do
|
||||
'/index.html'
|
||||
end
|
||||
|
||||
# default
|
||||
# rep => :default est sous-entendu
|
||||
compile '*' do
|
||||
filter :erb
|
||||
layout 'default'
|
||||
|
|
|
@ -3,7 +3,7 @@ data_sources:
|
|||
- items_root: /
|
||||
layouts_root: /
|
||||
type: filesystem_combined
|
||||
output_dir: output/
|
||||
output_dir: output
|
||||
|
||||
# les langues
|
||||
languages:
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
title: Home
|
||||
title: Titre principal
|
||||
multiTitle:
|
||||
fr: Titre en français
|
||||
en: English Title
|
||||
|
|
|
@ -8,10 +8,20 @@
|
|||
|
||||
-----
|
||||
<%
|
||||
|
||||
# -- init variables --
|
||||
|
||||
class LocalConf
|
||||
attr_accessor :multi, :blog, :article, :languages, :language, :indent
|
||||
def to_s
|
||||
instance_variables.map{ |x|
|
||||
if instance_variable_get(x).class == Array
|
||||
%{#{x.intern}= [#{instance_variable_get(x).join(', ')}]}
|
||||
else
|
||||
%{#{x.intern}= #{instance_variable_get(x)}}
|
||||
end
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
conf=LocalConf.new
|
||||
|
@ -32,16 +42,12 @@ conf.blog=blog
|
|||
languages=@config[:languages]
|
||||
conf.languages=languages
|
||||
|
||||
self.instance_variable_set(:@conf, conf)
|
||||
|
||||
puts "YYY"
|
||||
puts %{multi= #{conf.multi}}
|
||||
puts %{article= #{conf.article}}
|
||||
puts %{language= #{conf.language}}
|
||||
puts %{blog= #{conf.blog}}
|
||||
puts %{languages= [#{conf.languages.join(", ")}]}
|
||||
puts "YYY"
|
||||
puts '---'
|
||||
# puts conf.to_s
|
||||
|
||||
%><?xml version="1.0" encoding="utf-8"?>
|
||||
%><?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
|
||||
|
@ -51,42 +57,46 @@ puts "YYY"
|
|||
<link rel="stylesheet" type="text/css" href="/Scratch/css/twilight.css" />
|
||||
<link rel="stylesheet" type="text/css" href="/Scratch/assets/css/layout.css" />
|
||||
<link rel="stylesheet" type="text/css" href="/Scratch/assets/css/gen.css" />
|
||||
<%= conf.indent=' '; feeds(conf) %>
|
||||
<%= conf.indent=' '; feeds %>
|
||||
<% if multi %>
|
||||
<link rel="stylesheet" type="text/css" href="/Scratch/css/js.css" />
|
||||
<% alternate(conf) %>
|
||||
<% alternate %>
|
||||
<script type="text/javascript" src="/Scratch/js/jquery-1.3.1.min.js"></script>
|
||||
<script type="text/javascript" src="/Scratch/js/jquery.cookie.js"></script>
|
||||
<script type="text/javascript" src="/Scratch/js/jquery.ga.js"></script>
|
||||
<script type="text/javascript" src="/Scratch/js/index.js"></script>
|
||||
<title>Yann Esposito</title>
|
||||
<title>Yogsototh's Blog</title>
|
||||
<% else %>
|
||||
<link rel="stylesheet" type="text/css" href="/Scratch/css/nojs.css" />
|
||||
<title>Yogsototh's Blog - <%= puts %{multiPageTitle} %></title>
|
||||
<title>Yogsototh's Blog - <%= multiPageTitle %></title>
|
||||
<% end %>
|
||||
</head>
|
||||
<body>
|
||||
<% if multi %>
|
||||
<noscript>
|
||||
<div id="blackpage"></div>
|
||||
<div id="nojsredirect">
|
||||
<% languages.each do |lang| %>
|
||||
<div id="nojsredirect"><%
|
||||
# verrue pour l'index
|
||||
chemin=@item_rep.path
|
||||
if chemin == '/'
|
||||
chemin = '/Scratch/multi/'
|
||||
end
|
||||
# fin de verrue
|
||||
languages.each do |lang| %>
|
||||
<div class="nojsbutton">
|
||||
<a href="<%= puts %{@item_rep.path.sub(/multi/,lang)} %>">
|
||||
<%= puts %{tradOfKeywordIn(:nojsclickme,lang)} %>
|
||||
</a>
|
||||
</div>
|
||||
<% end %>
|
||||
<a href="<%= chemin.sub(/multi/,lang) %>">
|
||||
<%= tradOfKeywordIn(:nojsclickme,lang) %>
|
||||
</a>
|
||||
</div><%
|
||||
end %>
|
||||
</div>
|
||||
</noscript>
|
||||
<% end %>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<div id="entete">
|
||||
<div id="titre">
|
||||
<h1>
|
||||
<%= puts %{multiTitleFor(@page)} %>
|
||||
<%= multiTitle %>
|
||||
</h1>
|
||||
</div>
|
||||
<% if article or blog %>
|
||||
|
@ -96,7 +106,7 @@ puts "YYY"
|
|||
<span class="<%=lang%>"><a href="http://feeds.feedburner.com/yannespositocom<%=lang%>">RSS</a></span>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<span class="<%=@item_rep.name%>"><a href="http://feeds.feedburner.com/yannespositocom<%= language %>">RSS</a></span>
|
||||
<span class="<%=@item_rep.name%>"><a href="http://feeds.feedburner.com/yannespositocom<%= language %>">RSS</a></span>
|
||||
<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
@ -123,6 +133,12 @@ puts "YYY"
|
|||
|
||||
<div class="flush"></div>
|
||||
|
||||
<% if @item[:content_for_summary] %>
|
||||
<div class="summary">
|
||||
<% @item[:content_for_summary] %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<% if article and depthOf(@page) == 2 %>
|
||||
<% if hasPrevious(@page) %>
|
||||
<%= previousArticleFor(@page) %>
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
def alternate(conf)
|
||||
def alternate
|
||||
# need multi to be declared to true when in
|
||||
# multi-language mode false otherwise
|
||||
# languages to the list of available languages
|
||||
# language to the current language
|
||||
if conf.multi
|
||||
conf.languages.collect { |lang| %{<link rel="alternate" lang="#{lang}" xml:lang="#{lang}" title="#{@item[:multiTitle][lang]}" type="text/html" hreflang="#{lang}" href="#{@item_rep.path.sub(/multi/,lang)}" />\n}}.join(conf.indent)
|
||||
if @conf.multi
|
||||
@conf.languages.collect { |lang| %{<link rel="alternate" lang="#{lang}" xml:lang="#{lang}" title="#{@item[:multiTitle][lang]}" type="text/html" hreflang="#{lang}" href="#{@item_rep.path.sub(/multi/,lang)}" />\n}}.join(@conf.indent)
|
||||
else
|
||||
%{}
|
||||
end
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
# All files in the 'lib' directory will be loaded
|
||||
# before nanoc starts compiling.
|
|
@ -1,11 +1,11 @@
|
|||
def feeds(conf)
|
||||
def feeds
|
||||
# need multi to be declared to true when in
|
||||
# multi-language mode false otherwise
|
||||
# languages to the list of available languages
|
||||
# language to the current language
|
||||
if conf.multi
|
||||
conf.languages.map { |lang| %{<link rel="alternate" type="application/rss+xml" title="RSS in #{lang}" href="http://feeds.feedburner.com/yannespositocom#{lang}"/>\n} }.join(conf.indent)
|
||||
if @conf.multi
|
||||
@conf.languages.map { |lang| %{<link rel="alternate" type="application/rss+xml" title="RSS in #{lang}" href="http://feeds.feedburner.com/yannespositocom#{lang}"/>\n} }.join(@conf.indent)
|
||||
else
|
||||
%{<link rel="alternate" type="application/rss+xml" title="RSS" href="http://feeds.feedburner.com/yannespositocom#{conf.language}">}
|
||||
%{<link rel="alternate" type="application/rss+xml" title="RSS" href="http://feeds.feedburner.com/yannespositocom#{@conf.language}">}
|
||||
end
|
||||
end
|
||||
|
|
13
lib/helpers.rb
Normal file
13
lib/helpers.rb
Normal file
|
@ -0,0 +1,13 @@
|
|||
# All files in the 'lib' directory will be loaded
|
||||
# before nanoc starts compiling.
|
||||
|
||||
# Utilisation des helper
|
||||
#
|
||||
# ecrire
|
||||
# <% content_for :summary do %>
|
||||
# Sommaire que je veux ecrire
|
||||
# <% end %>
|
||||
#
|
||||
# Pour remplir à la fois le texte et le sommaire
|
||||
|
||||
include Nanoc3::Helpers::Capturing
|
48
lib/multi.rb
Normal file
48
lib/multi.rb
Normal file
|
@ -0,0 +1,48 @@
|
|||
def multiPageTitle
|
||||
if @conf.multi
|
||||
@item.title
|
||||
else
|
||||
@item[:multiTitle][@conf.language]
|
||||
end
|
||||
end
|
||||
|
||||
def multiTitle
|
||||
multiTitleFor(@item)
|
||||
end
|
||||
|
||||
def multiTitleFor(item)
|
||||
begin
|
||||
if @conf.multi
|
||||
@conf.languages.map{ |l| %{<span class="#{l}">#{item[:multiTitle][l.intern]}</span>} }.join("\n")
|
||||
else
|
||||
item[:multiTitle][@conf.language]
|
||||
end
|
||||
rescue
|
||||
puts "ERROR (lib/multi.rb) certainement pas d'attribut multiTitle"
|
||||
return item[:title]
|
||||
end
|
||||
end
|
||||
|
||||
def tradOf(keyword)
|
||||
|
||||
end
|
||||
|
||||
def tradOfKeywordIn(keyword, language)
|
||||
begin
|
||||
@config[:translations][keyword][language.intern]
|
||||
rescue
|
||||
if @config[:translations].nil?
|
||||
puts %{ERROR (lib/multi.rb) Please make a 'translations' hash table in config.yaml}
|
||||
elsif @config[:translations][keyword].nil?
|
||||
puts %{ERROR (lib/multi.rb) in config.yaml,
|
||||
in the 'translations' hash, I can't find the keyword #{keyword}}
|
||||
elsif @config[:translations][keyword][language.intern].nil?
|
||||
puts %{ERROR (lib/multi.rb) in config.yaml,
|
||||
in the 'translations' hash, I can't find the translation
|
||||
in #{language} for the keyword #{keyword}}
|
||||
else
|
||||
puts %{ERROR (lib/multi.rb) erreur inconnue}
|
||||
end
|
||||
return '[Sorry Translation Error]'
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue