From 381ac1fc3d98ecd0b6f5215c54f907eac6d2b873 Mon Sep 17 00:00:00 2001 From: EuAndreh <eu@euandre.org> Date: Wed, 12 Feb 2020 09:26:16 -0300 Subject: html tidy wip --- _layouts/default.html | 2 +- _layouts/index.html | 20 +++++++++++--------- default.nix | 4 +++- scripts/tidy-content.sh | 40 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 55 insertions(+), 11 deletions(-) create mode 100755 scripts/tidy-content.sh diff --git a/_layouts/default.html b/_layouts/default.html index 1ff8c1d..6416f57 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -57,7 +57,7 @@ </header> <main> - <h1>{{ page.title }}</h1> + {% if page.title %}<h1>{{ page.title }}</h1>{% endif %} {{ content }} </main> diff --git a/_layouts/index.html b/_layouts/index.html index 3c145d0..73b97ef 100644 --- a/_layouts/index.html +++ b/_layouts/index.html @@ -2,12 +2,14 @@ layout: default --- <h1>{{ site.t.recent_posts[page.lang] }}</h1> -<ul> - {%- for post in site.posts -%} - {% if post.lang == page.lang %} - <li> - <a href="{{ post.url }}">{{ post.title | escape }}</a> - {{ post.date | date: site.t.date_format[page.lang] }} - </li> - {% endif %} - {%- endfor -%} -</ul> +{% if site.posts.size > 0 %} + <ul> + {%- for post in site.posts -%} + {% if post.lang == page.lang %} + <li> + <a href="{{ post.url }}">{{ post.title | escape }}</a> - {{ post.date | date: site.t.date_format[page.lang] }} + </li> + {% endif %} + {%- endfor -%} + </ul> +{% endif %} diff --git a/default.nix b/default.nix index c664429..0f98063 100644 --- a/default.nix +++ b/default.nix @@ -33,9 +33,10 @@ in rec { }); docs = utils.baseTask.overrideAttrs (baseAttrs: { name = "${baseAttrs.name}-docs"; - buildInputs = [ jekyllEnv ]; + buildInputs = [ jekyllEnv pkgs.html-tidy ]; buildPhase = '' jekyll build -d $out + find $out -type f -name '*.html' | xargs -I{} tidy -errors -utf8 -indent -modify {} ''; }); }; @@ -51,6 +52,7 @@ in rec { buildInputs = [ jekyllEnv (pkgs.hunspellWithDicts (with pkgs.hunspellDicts; [ en-us ])) + pkgs.html-tidy ]; }; publishScript = utils.overwritingPublishScript { diff --git a/scripts/tidy-content.sh b/scripts/tidy-content.sh new file mode 100755 index 0000000..53533a1 --- /dev/null +++ b/scripts/tidy-content.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash +set -Eeuo pipefail + +end="\033[0m" +red="\033[0;31m" +red() { echo -e "${red}${1}${end}"; } + +usage() { + red "Missing argument <${1}>.\n" + cat <<EOF +Usage: + $0 <INPUT_DIR> + + Arguments: + INPUT_DIR Input directory with the static HTML to be tidy-ed + +Examples: + $0 _site/ +EOF +} + +INPUT_DIR="${1:-}" +[[ -z "${INPUT_DIR}" ]] && { + usage 'INPUT_DIR' + exit 2 +} + +format() { + FILE="${1}" + # mktemp + if ! tidy -utf8 -indent -modify "${FILE}" 2>> tmp-error.txt; then + cat <(echo "${FILE}") tmp-error.txt >> errors.txt + echo "Error in formatting '${FILE}'. See errors.txt for more detail." + exit 1 + fi +} +export -f format + +find "${INPUT_DIR}" -type f -name '*.html' -print0 | \ + xargs -0 -I{} bash -c "format {}" -- cgit v1.2.3 From 6191fde9b2d190ae9a0d27b0c514434158e0d517 Mon Sep 17 00:00:00 2001 From: EuAndreh <eu@euandre.org> Date: Fri, 14 Feb 2020 22:52:36 -0300 Subject: _layouts/default.html: Generate langs <ul> only when there are langs --- _layouts/default.html | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/_layouts/default.html b/_layouts/default.html index 6416f57..6a0587b 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -28,25 +28,25 @@ <a href="{{ site.t.home_url[page.lang] }}">{{ site.t.home[page.lang] }}</a> </div> <div id="nav-right"> - <ul> - {% if page.ref != nil %} - {% assign lposts=site.posts | where:"ref", page.ref | sort: 'lang' %} - {% for lpost in lposts %} - <li> - <a href="{{ lpost.url }}" class="{{ lpost.lang }}">{{ lpost.lang }}</a> - </li> - {% endfor %} - {% endif %} + {% if page.ref != nil %} + {% if site.posts.size > 0 or site.pages.size > 0 %} + <ul> + {% assign lposts=site.posts | where:"ref", page.ref | sort: 'lang' %} + {% for lpost in lposts %} + <li> + <a href="{{ lpost.url }}" class="{{ lpost.lang }}">{{ lpost.lang }}</a> + </li> + {% endfor %} - {% if page.ref != nil %} - {% assign lpages=site.pages | where:"ref", page.ref | sort: 'lang' %} - {% for lpage in lpages %} - <li> - <a href="{{ lpage.url }}" class="{{ lpage.lang }}">{{ lpage.lang }}</a> - </li> - {% endfor %} + {% assign lpages=site.pages | where:"ref", page.ref | sort: 'lang' %} + {% for lpage in lpages %} + <li> + <a href="{{ lpage.url }}" class="{{ lpage.lang }}">{{ lpage.lang }}</a> + </li> + {% endfor %} + </ul> {% endif %} - </ul> + {% endif %} <a href="{{ site.t.about_url[page.lang] }}">{{ site.t.about[page.lang] }}</a> <a href="{{ site.t.feed_url[page.lang] }}"> -- cgit v1.2.3 From bdfc3da94fa8d16873c427bd4b2c1a1d054a9183 Mon Sep 17 00:00:00 2001 From: EuAndreh <eu@euandre.org> Date: Fri, 14 Feb 2020 22:56:47 -0300 Subject: Only list posts for languages there are available --- _layouts/index.html | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/_layouts/index.html b/_layouts/index.html index 73b97ef..037e0e3 100644 --- a/_layouts/index.html +++ b/_layouts/index.html @@ -2,14 +2,13 @@ layout: default --- <h1>{{ site.t.recent_posts[page.lang] }}</h1> -{% if site.posts.size > 0 %} +{% assign lposts=site.posts | where:"lang", page.lang | sort: 'date' %} +{% if lposts.size > 0 %} <ul> - {%- for post in site.posts -%} - {% if post.lang == page.lang %} - <li> - <a href="{{ post.url }}">{{ post.title | escape }}</a> - {{ post.date | date: site.t.date_format[page.lang] }} - </li> - {% endif %} + {%- for post in lposts -%} + <li> + <a href="{{ post.url }}">{{ post.title | escape }}</a> - {{ post.date | date: site.t.date_format[page.lang] }} + </li> {%- endfor -%} </ul> {% endif %} -- cgit v1.2.3 From 8796f1ac4cba340633c67eb16e1a20b69c11e929 Mon Sep 17 00:00:00 2001 From: EuAndreh <eu@euandre.org> Date: Fri, 14 Feb 2020 22:59:08 -0300 Subject: Fix call of tidy: run in quiet mode --- scripts/tidy-content.sh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/scripts/tidy-content.sh b/scripts/tidy-content.sh index 53533a1..e9bc577 100755 --- a/scripts/tidy-content.sh +++ b/scripts/tidy-content.sh @@ -27,10 +27,9 @@ INPUT_DIR="${1:-}" format() { FILE="${1}" - # mktemp - if ! tidy -utf8 -indent -modify "${FILE}" 2>> tmp-error.txt; then - cat <(echo "${FILE}") tmp-error.txt >> errors.txt - echo "Error in formatting '${FILE}'. See errors.txt for more detail." + echo "${FILE}" >&2 + if ! tidy --quiet yes -utf8 -indent -modify "${FILE}"; then + echo "Error in formatting '${FILE}'. See errors.txt for more detail." >&2 exit 1 fi } -- cgit v1.2.3 From e70a82008013769abb408ff29871826c5d0ffca8 Mon Sep 17 00:00:00 2001 From: EuAndreh <eu@euandre.org> Date: Fri, 14 Feb 2020 22:59:19 -0300 Subject: Call tidy-content.sh in build derivation --- default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/default.nix b/default.nix index 0f98063..4fbdc61 100644 --- a/default.nix +++ b/default.nix @@ -36,7 +36,7 @@ in rec { buildInputs = [ jekyllEnv pkgs.html-tidy ]; buildPhase = '' jekyll build -d $out - find $out -type f -name '*.html' | xargs -I{} tidy -errors -utf8 -indent -modify {} + ./scripts/tidy-content.sh $out ''; }); }; -- cgit v1.2.3 From 5dc77abbdda39c7539fd6eb780db2d1b63f0a266 Mon Sep 17 00:00:00 2001 From: EuAndreh <eu@euandre.org> Date: Fri, 14 Feb 2020 22:59:46 -0300 Subject: Add building docs to test derivation --- default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/default.nix b/default.nix index 4fbdc61..537c2ae 100644 --- a/default.nix +++ b/default.nix @@ -35,6 +35,7 @@ in rec { name = "${baseAttrs.name}-docs"; buildInputs = [ jekyllEnv pkgs.html-tidy ]; buildPhase = '' + patchShebangs . jekyll build -d $out ./scripts/tidy-content.sh $out ''; @@ -46,6 +47,7 @@ in rec { (utils.fixme null) subtasks.hunspellCheck subtasks.assertContent + subtasks.docs ]; shell = pkgs.mkShell rec { name = "website-shell"; -- cgit v1.2.3 From c293692321f83ca11542eb3a4f795e8f140246dd Mon Sep 17 00:00:00 2001 From: EuAndreh <eu@euandre.org> Date: Fri, 14 Feb 2020 23:01:07 -0300 Subject: Remove old error tidy message --- scripts/tidy-content.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/tidy-content.sh b/scripts/tidy-content.sh index e9bc577..2ccb925 100755 --- a/scripts/tidy-content.sh +++ b/scripts/tidy-content.sh @@ -29,7 +29,7 @@ format() { FILE="${1}" echo "${FILE}" >&2 if ! tidy --quiet yes -utf8 -indent -modify "${FILE}"; then - echo "Error in formatting '${FILE}'. See errors.txt for more detail." >&2 + echo "Error in formatting '${FILE}'." >&2 exit 1 fi } -- cgit v1.2.3 From 43a9e4eb977477275086b65bc5337f520499e08e Mon Sep 17 00:00:00 2001 From: EuAndreh <eu@euandre.org> Date: Fri, 14 Feb 2020 23:06:27 -0300 Subject: Improve error message of tidy-content.sh --- default.nix | 6 +++++- scripts/tidy-content.sh | 8 ++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/default.nix b/default.nix index 537c2ae..2f10691 100644 --- a/default.nix +++ b/default.nix @@ -37,7 +37,11 @@ in rec { buildPhase = '' patchShebangs . jekyll build -d $out - ./scripts/tidy-content.sh $out + ./scripts/tidy-content.sh $out || { + echo 'Error in formatting HTML. Reproduce with: ' + echo ' jekyll build && ./scripts/tidy-content.sh _site/' + exit 1 + } ''; }); }; diff --git a/scripts/tidy-content.sh b/scripts/tidy-content.sh index 2ccb925..6dc13c6 100755 --- a/scripts/tidy-content.sh +++ b/scripts/tidy-content.sh @@ -26,12 +26,8 @@ INPUT_DIR="${1:-}" } format() { - FILE="${1}" - echo "${FILE}" >&2 - if ! tidy --quiet yes -utf8 -indent -modify "${FILE}"; then - echo "Error in formatting '${FILE}'." >&2 - exit 1 - fi + echo "${1}" >&2 + tidy --quiet yes -utf8 -indent -modify "${1}" } export -f format -- cgit v1.2.3 From d3d1a6e281f39a58395fdf07eaf75dd38c9febe4 Mon Sep 17 00:00:00 2001 From: EuAndreh <eu@euandre.org> Date: Fri, 14 Feb 2020 23:17:36 -0300 Subject: Fix navigation bar links to Atom feeds --- _config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_config.yml b/_config.yml index 8eabae1..91d9e90 100644 --- a/_config.yml +++ b/_config.yml @@ -43,8 +43,8 @@ t: en: "EuAndreh's Feed" pt: "Feed do EuAndreh" feed_url: - en: '/feed.en.xml' - pt: '/feed.pt.xml' + en: '/feed.en.atom' + pt: '/feed.pt.atom' date_format: en: '%B %-d, %Y' pt: '%-d de %B de %Y' -- cgit v1.2.3