Skip to content

Commit

Permalink
Merge branch 'migrate-translated-manual-pages-to-hugo'
Browse files Browse the repository at this point in the history
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]>
  • Loading branch information
dscho committed Nov 21, 2023
2 parents c354750 + 23c82ea commit 0b966fd
Show file tree
Hide file tree
Showing 7 changed files with 190 additions and 149 deletions.
7 changes: 3 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,13 @@ Or you can populate the man pages from GitHub (much slower) like this:

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

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

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

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

## Update the `Downloads` pages

Expand Down
101 changes: 22 additions & 79 deletions data/lang_names.yml
Original file line number Diff line number Diff line change
@@ -1,79 +1,22 @@
# frozen_string_literal: true

# t.string :name
# t.timestamps
class DocFile < ApplicationRecord
has_many :doc_versions, dependent: :delete_all
has_many :versions, through: :doc_versions

scope :with_includes, -> { includes(doc_versions: %i[doc version]) }

@@true_lang = {
"de" => "Deutsch",
"en" => "English",
"es" => "Español",
"es_MX" => "Español (Mexico)",
"fr" => "Français",
"hu" => "magyar",
"id" => "Bahasa Indonesia",
"is" => "Íslenska",
"it" => "Italiano",
"ja" => "日本語",
"mr" => "मराठी",
"nb_NO" => "Norsk bokmål",
"nl" => "Nederlands",
"pl" => "Polski",
"pt_BR" => "Português (Brasil)",
"pt_PT" => "Português (Portugal)",
"ro" => "Română",
"ru" => "Русский",
"tr" => "Türkçe",
"uk" => "українська мова",
"zh_HANS-CN" => "简体中文",
"zh_HANT" => "繁體中文"
}

def true_lang
@@true_lang
end

def languages
doc_versions.select(:language).distinct.collect do |v|
[v[:language], @@true_lang[v[:language]] || v[:language]]
end
end

def version_changes(limit_size = 100)
unchanged_versions = []
changes = []
doc_versions = self.doc_versions.includes(:version).version_changes.limit(limit_size).to_a
doc_versions.each_with_index do |doc_version, i|
previous_doc_version = doc_versions[i + 1]
next unless previous_doc_version

sha2 = doc_version.doc.blob_sha
sha1 = previous_doc_version.doc.blob_sha
if sha1 == sha2
unchanged_versions << doc_version.name
else
if !unchanged_versions.empty?
if unchanged_versions.size == 1
changes << { name: "#{unchanged_versions.first} no changes", changed: false }
else
changes << { name: "#{unchanged_versions.last} &rarr; #{unchanged_versions.first} no changes",
changed: false }
end
unchanged_versions = []
end
changes << { name: doc_version.name, time: doc_version.committed, diff: previous_doc_version.diff(doc_version),
changed: true }
end
end
changes
end

# TODO: parse file for description
def description
""
end
end
de: "Deutsch"
en: "English"
es: "Español"
es_MX: "Español (Mexico)"
fr: "Français"
hu: "magyar"
id: "Bahasa Indonesia"
is: "Íslenska"
it: "Italiano"
ja: "日本語"
mr: "मराठी"
nb_NO: "Norsk bokmål"
nl: "Nederlands"
pl: "Polski"
pt_BR: "Português (Brasil)"
pt_PT: "Português (Portugal)"
ro: "Română"
ru: "Русский"
tr: "Türkçe"
uk: "українська мова"
zh_HANS-CN: "简体中文"
zh_HANT: "繁體中文"
4 changes: 3 additions & 1 deletion layouts/_default/baseof.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<meta name="robots" content="noindex">
</head>
<body>
<script>location="{{ relURL .Params.redirect_to }}"</script>
<script>window.location.replace(document.querySelector("link[rel='canonical']").href + window.location.hash)</script>
<h1>Redirecting&hellip;</h1>
<a href="{{ $redirect_to }}">Click here if you are not redirected.</a>
</body>
Expand Down Expand Up @@ -108,6 +108,8 @@ <h1>{{ .Params.book.section.cs_number }} {{ .Params.book.chapter.title }} - {{ .
{{ partial "sidebar.html" . }}
<div id="content">
<div id='reference-version'>
{{ partial "ref/languages.html" . }}
{{ partialCached "ref/topics.html" . }}
{{ partial "ref/versions.html" . }}
</div>

Expand Down
21 changes: 14 additions & 7 deletions layouts/partials/ref/languages.html
Original file line number Diff line number Diff line change
@@ -1,14 +1,21 @@
<a class="dropdown-trigger" id="reference-languages-trigger" data-panel-id="l10n-versions-dropdown" href="#"><%if @language%>
<%= @doc_file.true_lang[@language]||@language %> <% else %> Language <% end %></a>
{{ $page_data := index $.Site.Data.docs.pages .Params.docname }}
<a class="dropdown-trigger" id="reference-languages-trigger" data-panel-id="l10n-versions-dropdown" href="#">{{ if isset .Params "lang" }}
{{ 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>
<div class='dropdown-panel right' id='l10n-versions-dropdown'>
<header>Localized versions of <strong><%= @doc_file.name %></strong> manual</header>
<header>Localized versions of <strong>{{ .Params.docname }}</strong> manual</header>
<ol class='reference-previous-versions'>
<% @doc_file.languages.each do |code, language| %>
<li>
<a href="/docs/<%= @doc_file.name %>/<%= code %>"><span class="version"><%= language %></span>
{{ if isset $page_data "latest-changes" }}
<li>
<a href="{{ relURL (print "docs/" .Params.docname) }}"><span class="version">{{ .Site.Data.lang_names.en }}</span>
</a>
</li>
{{ end }}
{{ range $code, $value := $page_data.languages }}
<li>
<a href="{{ relURL (print "docs/" $.Params.docname "/" $code) }}"><span class="version">{{ index $.Site.Data.lang_names $code }}</span>
</a>
</li>
<% end %>
{{ end }}
</ol>
<footer>
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>.
Expand Down
24 changes: 24 additions & 0 deletions layouts/partials/ref/topics.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{{ $context := . }}
<a class="dropdown-trigger" id="reference-topics-trigger" data-panel-id="topics-dropdown" href="#">Topics ▾</a>
<div class='dropdown-panel right' id='topics-dropdown'>
<div class='three-column'>
<div class='column-left'>
{{ range slice "setup" "projects" "snapshotting" "branching" "sharing" }}
{{ $context.Scratch.Set "category_id" . }}
{{ partial "ref/category.html" $context }}
{{ end }}
</div>
<div class='column-middle'>
{{ range slice "inspection" "patching" "debugging" "email" "external" "server-admin" }}
{{ $context.Scratch.Set "category_id" . }}
{{ partial "ref/category.html" $context }}
{{ end }}
</div>
<div class='column-right'>
{{ range slice "guides" "admin" "plumbing" }}
{{ $context.Scratch.Set "category_id" . }}
{{ partial "ref/category.html" $context }}
{{ end }}
</div>
</div>
</div>
52 changes: 24 additions & 28 deletions layouts/partials/ref/versions.html
Original file line number Diff line number Diff line change
@@ -1,40 +1,36 @@
{% assign versions = site.data.docs.pages[page.docname] %}
{{ $versions := index .Site.Data.docs.pages .Params.docname }}
<a class="dropdown-trigger" id="reference-versions-trigger" data-panel-id="previous-versions-dropdown" href="#">
{% if page['version'] and page['version'] != versions['latest-changes'] %}
Version {{ page['version'] }}
{% else %}
{{ if (and (isset .Params "version") (ne .Params.version (index $versions "latest-changes"))) }}
Version {{ .Params.version }}
{{ else }}
Latest version
{% endif %} ▾ </a>
<span class="light d-flex">{{ page.docname }} last updated in {{ versions['latest-changes'] }}</span>
{{ end }} ▾ </a>
<span class="light d-flex">{{ .Params.docname }} last updated in {{ index $versions "latest-changes" }}</span>
<div class='dropdown-panel left' id='previous-versions-dropdown'>
<header>Changes in the <strong>{{ page.docname }}</strong> manual</header>
<header>Changes in the <strong>{{ .Params.docname }}</strong> manual</header>
<ol class='reference-previous-versions'>
{% for v in versions['page-versions'] %}
{% if v.added %}
{{ range $v := index $versions "page-versions" }}
{{ if $v.added }}
<li>
<a href="{{ "/docs/" | append: page.docname | append: "/" | append: v.name | relative_url }}"><span class="version">{{ v.name }}</span>
<a href="{{ relURL (print "docs/" $.Params.docname "/" $v.name) }}"><span class="version">{{ $v.name }}</span>
<span class="diff">
{% assign range = (1..v.added) %}
{% for i in range %}
<img src="{{ "/images/icons/green-dot.png" | relative_url }}" />
{% endfor %}
{% assign range = (1..v.removed) %}
{% for i in range %}
<img src="{{ "/images/icons/red-dot.png" | relative_url }}" />
{% endfor %}
{% assign padding = 8 | minus: v.added | minus: v.removed %}
{% assign range = (1..padding) %}
{% for i in range %}
<img src="{{ "/images/icons/grey-dot.png" | relative_url }}" />
{% endfor %}
{{ range $i := seq 1 $v.added }}
<img src="{{ relURL "images/icons/green-dot.png" }}" />
{{ end }}
{{ range $i := seq 1 $v.removed }}
<img src="{{ relURL "images/icons/red-dot.png" }}" />
{{ end }}
{{ range $i := seq 1 (sub 8 $v.added $v.removed) }}
<img src="{{ relURL "images/icons/grey-dot.png" }}" />
{{ end }}
</span>
<em class="date">{{ site.data.docs.versions[v.name].date }}</em>
<em class="date">{{ index (index $.Site.Data.docs.versions $v.name) "date" }}</em>
</a>
</li>
{% else %}
<li class="no-change"><span>{{ v.name }} no changes</span></li>
{% endif %}
{% endfor %}
{{ else }}
<li class="no-change"><span>{{ safeHTML $v.name }} no changes</span></li>
{{ end }}
{{ end }}
<li>&nbsp;</li>
<!-- <li><a class="more" href="#">See more previous releases →</a></li> -->
</ol>
Expand Down
Loading

0 comments on commit 0b966fd

Please sign in to comment.