Skip to content

Commit a4a8502

Browse files
committed
Merge branch 'migrate-translated-manual-pages-to-hugo'
Just like the previous topic branch, this one takes care of Git's manual pages, but it takes care of the translated versions developed in https://github.com/jnavila/git-html-l10n. Signed-off-by: Johannes Schindelin <[email protected]>
2 parents 6442cfb + c8657dc commit a4a8502

File tree

8 files changed

+206
-149
lines changed

8 files changed

+206
-149
lines changed

README.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,14 +86,13 @@ Or you can populate the man pages from GitHub (much slower) like this:
8686

8787
Similarly, you can also populate the localized man pages. From a local clone of https://github.com/jnavila/git-html-l10n :
8888

89-
$ GIT_REPO=../git-html-l10n/.git rake local_index_l10n # all versions
90-
$ GIT_REPO=../git-html-l10n/.git REBUILD_DOC=$version rake local_index_l10n # specific version
89+
$ ruby ./script/update-docs.rb /path/to/git-html-l10n/.git l10n # all versions
90+
$ REBUILD_DOC=$version ruby ./script/update-docs.rb /path/to/git-html-l10n/.git l10n # specific version
9191

9292
Or you can do it from GitHub (much slower) like this:
9393

9494
$ export GITHUB_API_TOKEN=github_personal_auth_token
95-
$ rake preindex_l10n # all versions
96-
$ REBUILD_DOC=$version rake preindex_l10n # specific version
95+
$ REBUILD_DOC=$version ruby ./script/update-docs.rb remote l10n # specific version
9796

9897
## Update the `Downloads` pages
9998

data/lang_names.yml

Lines changed: 22 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,22 @@
1-
# frozen_string_literal: true
2-
3-
# t.string :name
4-
# t.timestamps
5-
class DocFile < ApplicationRecord
6-
has_many :doc_versions, dependent: :delete_all
7-
has_many :versions, through: :doc_versions
8-
9-
scope :with_includes, -> { includes(doc_versions: %i[doc version]) }
10-
11-
@@true_lang = {
12-
"de" => "Deutsch",
13-
"en" => "English",
14-
"es" => "Español",
15-
"es_MX" => "Español (Mexico)",
16-
"fr" => "Français",
17-
"hu" => "magyar",
18-
"id" => "Bahasa Indonesia",
19-
"is" => "Íslenska",
20-
"it" => "Italiano",
21-
"ja" => "日本語",
22-
"mr" => "मराठी",
23-
"nb_NO" => "Norsk bokmål",
24-
"nl" => "Nederlands",
25-
"pl" => "Polski",
26-
"pt_BR" => "Português (Brasil)",
27-
"pt_PT" => "Português (Portugal)",
28-
"ro" => "Română",
29-
"ru" => "Русский",
30-
"tr" => "Türkçe",
31-
"uk" => "українська мова",
32-
"zh_HANS-CN" => "简体中文",
33-
"zh_HANT" => "繁體中文"
34-
}
35-
36-
def true_lang
37-
@@true_lang
38-
end
39-
40-
def languages
41-
doc_versions.select(:language).distinct.collect do |v|
42-
[v[:language], @@true_lang[v[:language]] || v[:language]]
43-
end
44-
end
45-
46-
def version_changes(limit_size = 100)
47-
unchanged_versions = []
48-
changes = []
49-
doc_versions = self.doc_versions.includes(:version).version_changes.limit(limit_size).to_a
50-
doc_versions.each_with_index do |doc_version, i|
51-
previous_doc_version = doc_versions[i + 1]
52-
next unless previous_doc_version
53-
54-
sha2 = doc_version.doc.blob_sha
55-
sha1 = previous_doc_version.doc.blob_sha
56-
if sha1 == sha2
57-
unchanged_versions << doc_version.name
58-
else
59-
if !unchanged_versions.empty?
60-
if unchanged_versions.size == 1
61-
changes << { name: "#{unchanged_versions.first} no changes", changed: false }
62-
else
63-
changes << { name: "#{unchanged_versions.last} &rarr; #{unchanged_versions.first} no changes",
64-
changed: false }
65-
end
66-
unchanged_versions = []
67-
end
68-
changes << { name: doc_version.name, time: doc_version.committed, diff: previous_doc_version.diff(doc_version),
69-
changed: true }
70-
end
71-
end
72-
changes
73-
end
74-
75-
# TODO: parse file for description
76-
def description
77-
""
78-
end
79-
end
1+
de: "Deutsch"
2+
en: "English"
3+
es: "Español"
4+
es_MX: "Español (Mexico)"
5+
fr: "Français"
6+
hu: "magyar"
7+
id: "Bahasa Indonesia"
8+
is: "Íslenska"
9+
it: "Italiano"
10+
ja: "日本語"
11+
mr: "मराठी"
12+
nb_NO: "Norsk bokmål"
13+
nl: "Nederlands"
14+
pl: "Polski"
15+
pt_BR: "Português (Brasil)"
16+
pt_PT: "Português (Portugal)"
17+
ro: "Română"
18+
ru: "Русский"
19+
tr: "Türkçe"
20+
uk: "українська мова"
21+
zh_HANS-CN: "简体中文"
22+
zh_HANT: "繁體中文"

layouts/_default/baseof.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<meta name="robots" content="noindex">
1414
</head>
1515
<body>
16-
<script>location="{{ relURL .Params.redirect_to }}"</script>
16+
<script>window.location.replace(document.querySelector("link[rel='canonical']").href + window.location.hash)</script>
1717
<h1>Redirecting&hellip;</h1>
1818
<a href="{{ $redirect_to }}">Click here if you are not redirected.</a>
1919
</body>
@@ -109,6 +109,8 @@ <h1>{{ .Params.book.section.cs_number }} {{ .Params.book.chapter.title }} - {{ .
109109
{{ partial "sidebar.html" . }}
110110
<div id="content">
111111
<div id='reference-version'>
112+
{{ partial "ref/languages.html" . }}
113+
{{ partial "ref/topics.html" . }}
112114
{{ partial "ref/versions.html" . }}
113115
</div>
114116

layouts/alias.html

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{{ $redirect_to := replaceRE `\.html$` "" (replace .Permalink "?" "%3F") }}
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8">
5+
<title>Redirecting&hellip;</title>
6+
<link rel="canonical" href="{{ $redirect_to }}">
7+
<meta http-equiv="refresh" content="0; url={{ $redirect_to }}">
8+
<meta name="robots" content="noindex">
9+
</head>
10+
<body>
11+
<script>window.location.replace(document.querySelector("link[rel='canonical']").href + window.location.hash)</script>
12+
<h1>Redirecting&hellip;</h1>
13+
<a href="{{ $redirect_to }}">Click here if you are not redirected.</a>
14+
</body>
15+
</html>
16+

layouts/partials/ref/languages.html

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,21 @@
1-
<a class="dropdown-trigger" id="reference-languages-trigger" data-panel-id="l10n-versions-dropdown" href="#"><%if @language%>
2-
<%= @doc_file.true_lang[@language]||@language %> <% else %> Language <% end %></a>
1+
{{ $page_data := index $.Site.Data.docs.pages .Params.docname }}
2+
<a class="dropdown-trigger" id="reference-languages-trigger" data-panel-id="l10n-versions-dropdown" href="#">{{ if isset .Params "lang" }}
3+
{{ if isset $.Site.Data.lang_names .Params.lang }}{{ index $.Site.Data.lang_names .Params.lang }}{{ else }}{{ .Params.lang }}{{ end }} {{ else }} {{ $.Site.Data.lang_names.en }} {{ end }}▾</a>
34
<div class='dropdown-panel right' id='l10n-versions-dropdown'>
4-
<header>Localized versions of <strong><%= @doc_file.name %></strong> manual</header>
5+
<header>Localized versions of <strong>{{ .Params.docname }}</strong> manual</header>
56
<ol class='reference-previous-versions'>
6-
<% @doc_file.languages.each do |code, language| %>
7-
<li>
8-
<a href="/docs/<%= @doc_file.name %>/<%= code %>"><span class="version"><%= language %></span>
7+
{{ if isset $page_data "latest-changes" }}
8+
<li>
9+
<a href="{{ relURL (print "docs/" .Params.docname) }}"><span class="version">{{ .Site.Data.lang_names.en }}</span>
10+
</a>
11+
</li>
12+
{{ end }}
13+
{{ range $code, $value := $page_data.languages }}
14+
<li>
15+
<a href="{{ relURL (print "docs/" $.Params.docname "/" $code) }}"><span class="version">{{ index $.Site.Data.lang_names $code }}</span>
916
</a>
1017
</li>
11-
<% end %>
18+
{{ end }}
1219
</ol>
1320
<footer>
1421
Want to read in your language or fix typos?<br/> <a href="https://github.com/jnavila/git-manpages-l10n">You can help translate this page</a>.

layouts/partials/ref/topics.html

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{{ $context := . }}
2+
<a class="dropdown-trigger" id="reference-topics-trigger" data-panel-id="topics-dropdown" href="#">Topics ▾</a>
3+
<div class='dropdown-panel right' id='topics-dropdown'>
4+
<div class='three-column'>
5+
<div class='column-left'>
6+
{{ range slice "setup" "projects" "snapshotting" "branching" "sharing" }}
7+
{{ $context.Scratch.Set "category_id" . }}
8+
{{ partial "ref/category.html" $context }}
9+
{{ end }}
10+
</div>
11+
<div class='column-middle'>
12+
{{ range slice "inspection" "patching" "debugging" "email" "external" "server-admin" }}
13+
{{ $context.Scratch.Set "category_id" . }}
14+
{{ partial "ref/category.html" $context }}
15+
{{ end }}
16+
</div>
17+
<div class='column-right'>
18+
{{ range slice "guides" "admin" "plumbing" }}
19+
{{ $context.Scratch.Set "category_id" . }}
20+
{{ partial "ref/category.html" $context }}
21+
{{ end }}
22+
</div>
23+
</div>
24+
</div>

layouts/partials/ref/versions.html

Lines changed: 24 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,36 @@
1-
{% assign versions = site.data.docs.pages[page.docname] %}
1+
{{ $versions := index .Site.Data.docs.pages .Params.docname }}
22
<a class="dropdown-trigger" id="reference-versions-trigger" data-panel-id="previous-versions-dropdown" href="#">
3-
{% if page['version'] and page['version'] != versions['latest-changes'] %}
4-
Version {{ page['version'] }}
5-
{% else %}
3+
{{ if (and (isset .Params "version") (ne .Params.version (index $versions "latest-changes"))) }}
4+
Version {{ .Params.version }}
5+
{{ else }}
66
Latest version
7-
{% endif %} ▾ </a>
8-
<span class="light d-flex">{{ page.docname }} last updated in {{ versions['latest-changes'] }}</span>
7+
{{ end }} ▾ </a>
8+
<span class="light d-flex">{{ .Params.docname }} last updated in {{ index $versions "latest-changes" }}</span>
99
<div class='dropdown-panel left' id='previous-versions-dropdown'>
10-
<header>Changes in the <strong>{{ page.docname }}</strong> manual</header>
10+
<header>Changes in the <strong>{{ .Params.docname }}</strong> manual</header>
1111
<ol class='reference-previous-versions'>
12-
{% for v in versions['page-versions'] %}
13-
{% if v.added %}
12+
{{ range $v := index $versions "page-versions" }}
13+
{{ if $v.added }}
1414
<li>
15-
<a href="{{ "/docs/" | append: page.docname | append: "/" | append: v.name | relative_url }}"><span class="version">{{ v.name }}</span>
15+
<a href="{{ relURL (print "docs/" $.Params.docname "/" $v.name) }}"><span class="version">{{ $v.name }}</span>
1616
<span class="diff">
17-
{% assign range = (1..v.added) %}
18-
{% for i in range %}
19-
<img src="{{ "/images/icons/green-dot.png" | relative_url }}" />
20-
{% endfor %}
21-
{% assign range = (1..v.removed) %}
22-
{% for i in range %}
23-
<img src="{{ "/images/icons/red-dot.png" | relative_url }}" />
24-
{% endfor %}
25-
{% assign padding = 8 | minus: v.added | minus: v.removed %}
26-
{% assign range = (1..padding) %}
27-
{% for i in range %}
28-
<img src="{{ "/images/icons/grey-dot.png" | relative_url }}" />
29-
{% endfor %}
17+
{{ range $i := seq 1 $v.added }}
18+
<img src="{{ relURL "images/icons/green-dot.png" }}" />
19+
{{ end }}
20+
{{ range $i := seq 1 $v.removed }}
21+
<img src="{{ relURL "images/icons/red-dot.png" }}" />
22+
{{ end }}
23+
{{ range $i := seq 1 (sub 8 $v.added $v.removed) }}
24+
<img src="{{ relURL "images/icons/grey-dot.png" }}" />
25+
{{ end }}
3026
</span>
31-
<em class="date">{{ site.data.docs.versions[v.name].date }}</em>
27+
<em class="date">{{ index (index $.Site.Data.docs.versions $v.name) "date" }}</em>
3228
</a>
3329
</li>
34-
{% else %}
35-
<li class="no-change"><span>{{ v.name }} no changes</span></li>
36-
{% endif %}
37-
{% endfor %}
30+
{{ else }}
31+
<li class="no-change"><span>{{ safeHTML $v.name }} no changes</span></li>
32+
{{ end }}
33+
{{ end }}
3834
<li>&nbsp;</li>
3935
<!-- <li><a class="more" href="#">See more previous releases →</a></li> -->
4036
</ol>

0 commit comments

Comments
 (0)