commit: 486a3d2eb21599fdb78aa7c3ead2288f205dec6c
parent: 5ef7495fece308c26e8153c300664e6edd228d95
author: Chris Noxz <chris@noxz.tech>
date: Wed, 24 Aug 2022 13:56:53 +0200
design changes to article header and tags
21 files changed, 354 insertions(+), 12 deletions(-)
diff --git a/build b/build
@@ -290,19 +290,29 @@ render_articles() {
prerender() {
base_path="${SITE_WWW%/*}"
title=""
+ author=""
date=""
[ -f "${base_path}"/.metadata ] && while read -r line; do
case "$line" in
\.ds\ TITLE*) title="$(echo ${line#*TITLE})";;
\.ds\ DATE*) date="$(echo ${line#*DATE})";;
+ \.ds\ AUTHOR*) author="$(echo ${line#*AUTHOR})";;
esac
printf '%s\n' "${line}"
done < "${base_path}"/.metadata
[ -n "$title" ] && printf '.HnS 0\n\\*[TITLE]\n.HnE\n\n'
+ [ -n "$author" ] && printf '.P article-author\n\\*[AUTHOR]\n\n'
[ -n "$date" ] && printf '.P article-date\n\\*[DATE]\n\n'
+ # print tags, if existing, at bottom of page
+ [ -f "${base_path}"/.tags ] \
+ && printf '\n.DIVS wrap-list\n.ULS\n' \
+ && while read -r tag; do
+ printf '.LI\n.CLURL "../tags/%s" art-tag "%s"\n' "${tag}" "${tag}"
+ done < "${base_path}"/.tags && printf '.ULE\n.DIVE\n'
+
cat - | while read -r line; do
if echo "${line}" | grep -E '\{:articles(#[^#]*)?:\}' 2>/dev/null 1>&2; then
render_articles "$1" \
@@ -311,11 +321,6 @@ prerender() {
printf '%s\n' "${line}"
fi
done
-
- # print tags, if existing, at bottom of page
- [ -f "${base_path}"/.tags ] && printf '\ntags:\n' && while read -r tag; do
- printf '.URL "../tags/%s" "#%s"\n' "${tag}" "${tag}"
- done < "${base_path}"/.tags
}
render_main_content() {
@@ -976,6 +981,7 @@ main() {
echo "index.html" > "${1}"/articles/tags/.assemble
echo ".ds TITLE Tags" > "${1}"/articles/tags/.metadata
+ printf '.DIVS wrap-list\n.ULS\n' > "${1}"/articles/tags/index.www
# manage tags
find "${1}"/articles -name .tags -exec cat {} \; | sort -u | while read -r tag
do
@@ -987,10 +993,12 @@ main() {
echo ".ds TITLE #${tag}" > "${1}"/articles/tags/${tag}/.metadata
# append tag to tags page
- printf '.ARTTAG %s %s\n' \
+ printf '.LI\n.ARTTAG %s %s\n' \
"${tag}" "$(grep ^${tag}$ "${1}"/articles/*/.tags | wc -l)" \
>> "${1}"/articles/tags/index.www
done
+ printf '.ULE\n' >> "${1}"/articles/tags/index.www
+ printf '.DIVE\n' >> "${1}"/articles/tags/index.www
print_done
# main render, executes sub render (see below)
diff --git a/config/www.conf b/config/www.conf
@@ -16,6 +16,11 @@
. www-emit-ltag dd
. \}
..
+.de CLURL
+. ie \\n[www-html] \{\
+. HTML <a href="\\$1" class="\\$2">\\$3</a>
+. \}
+..
.de UIMG
. ie \\n[www-html] \{\
. HTML <a href="\\$1"><img src="\\$2" alt="\\$3" /></a>
@@ -76,7 +81,7 @@
..
.de ARTTAG
. ie \\n[www-html] \{\
-. HTML <span class="art-tag"><a href="\\$1">\\$1</a> (\\$2)</span>\\$3
+. HTML <a class="art-tag" href="\\$1">\\$1 <span>\\$2</span></a>\\$3
. \}
..
.\" --------------------------------------------------------------------------
diff --git a/noxz.tech/articles/askpass_implementation_for_doas/.metadata b/noxz.tech/articles/askpass_implementation_for_doas/.metadata
@@ -3,3 +3,4 @@
.ds DAY 20
.ds DATE \*[MONTH] \*[DAY], \*[YEAR]
.ds TITLE Askpass implementation for doas
+.ds AUTHOR Chris Noxz
diff --git a/noxz.tech/articles/crossing_out_expressions_in_eqn/.metadata b/noxz.tech/articles/crossing_out_expressions_in_eqn/.metadata
@@ -3,3 +3,4 @@
.ds DAY 29
.ds DATE \*[MONTH] \*[DAY], \*[YEAR]
.ds TITLE Crossing out expressions in eqn
+.ds AUTHOR Chris Noxz
diff --git a/noxz.tech/articles/deduplication_of_my_nas/.metadata b/noxz.tech/articles/deduplication_of_my_nas/.metadata
@@ -3,3 +3,4 @@
.ds DAY 22
.ds DATE \*[MONTH] \*[DAY], \*[YEAR]
.ds TITLE Deduplication of my NAS
+.ds AUTHOR Chris Noxz
diff --git a/noxz.tech/articles/divisibility_theorems_and_fraction_flipping/.metadata b/noxz.tech/articles/divisibility_theorems_and_fraction_flipping/.metadata
@@ -3,3 +3,4 @@
.ds DAY 21
.ds DATE \*[MONTH] \*[DAY], \*[YEAR]
.ds TITLE Divisibility theorems and fraction flipping
+.ds AUTHOR Chris Noxz
diff --git a/noxz.tech/articles/missing_gui_in_geogebra/.metadata b/noxz.tech/articles/missing_gui_in_geogebra/.metadata
@@ -3,3 +3,4 @@
.ds DAY 25
.ds DATE \*[MONTH] \*[DAY], \*[YEAR]
.ds TITLE Missing GUI in GeoGebra
+.ds AUTHOR Chris Noxz
diff --git a/noxz.tech/articles/moving_from_my_hacked_readynas_to_a_raspberry_pi/.metadata b/noxz.tech/articles/moving_from_my_hacked_readynas_to_a_raspberry_pi/.metadata
@@ -3,3 +3,4 @@
.ds DAY 27
.ds DATE \*[MONTH] \*[DAY], \*[YEAR]
.ds TITLE Moving from my hacked ReadyNAS to a Raspberry Pi
+.ds AUTHOR Chris Noxz
diff --git a/noxz.tech/articles/sic_collection_of_papers_on_troff_and_its_companions/.metadata b/noxz.tech/articles/sic_collection_of_papers_on_troff_and_its_companions/.metadata
@@ -3,3 +3,4 @@
.ds DAY 16
.ds DATE \*[MONTH] \*[DAY], \*[YEAR]
.ds TITLE SiC: Collection of papers on troff and its companions
+.ds AUTHOR Chris Noxz
diff --git a/noxz.tech/articles/sic_free_software_in_education/.metadata b/noxz.tech/articles/sic_free_software_in_education/.metadata
@@ -3,3 +3,4 @@
.ds DAY 24
.ds DATE \*[MONTH] \*[DAY], \*[YEAR]
.ds TITLE SiC: Free Software in education
+.ds AUTHOR Chris Noxz
diff --git a/noxz.tech/articles/simple_groff_compiler_for_vim/.metadata b/noxz.tech/articles/simple_groff_compiler_for_vim/.metadata
@@ -3,3 +3,4 @@
.ds DAY 26
.ds DATE \*[MONTH] \*[DAY], \*[YEAR]
.ds TITLE Simple groff compiler for vim
+.ds AUTHOR Chris Noxz
diff --git a/noxz.tech/articles/simple_way_to_filter_email/.metadata b/noxz.tech/articles/simple_way_to_filter_email/.metadata
@@ -3,3 +3,4 @@
.ds DAY 11
.ds DATE \*[MONTH] \*[DAY], \*[YEAR]
.ds TITLE Simple way to filter email
+.ds AUTHOR Chris Noxz
diff --git a/noxz.tech/articles/srfinder/.metadata b/noxz.tech/articles/srfinder/.metadata
@@ -3,3 +3,4 @@
.ds DAY 04
.ds DATE \*[MONTH] \*[DAY], \*[YEAR]
.ds TITLE Srfinder
+.ds AUTHOR Chris Noxz
diff --git a/noxz.tech/articles/the_lenovo_thinkpad_t400/.metadata b/noxz.tech/articles/the_lenovo_thinkpad_t400/.metadata
@@ -3,3 +3,4 @@
.ds DAY 14
.ds DATE \*[MONTH] \*[DAY], \*[YEAR]
.ds TITLE The Lenovo Thinkpad T400
+.ds AUTHOR Chris Noxz
diff --git a/noxz.tech/articles/vi_indicator_for_loksh/.metadata b/noxz.tech/articles/vi_indicator_for_loksh/.metadata
@@ -3,3 +3,4 @@
.ds DAY 09
.ds DATE \*[MONTH] \*[DAY], \*[YEAR]
.ds TITLE Vi indicator for loksh
+.ds AUTHOR Chris Noxz
diff --git a/noxz.tech/articles/writing_a_resume_in_groff/.metadata b/noxz.tech/articles/writing_a_resume_in_groff/.metadata
@@ -3,3 +3,4 @@
.ds DAY 23
.ds DATE \*[MONTH] \*[DAY], \*[YEAR]
.ds TITLE Writing a resume in groff
+.ds AUTHOR Chris Noxz
diff --git a/noxz.tech/articles/your_disk_is_full_and_empty/.metadata b/noxz.tech/articles/your_disk_is_full_and_empty/.metadata
@@ -3,3 +3,4 @@
.ds DAY 14
.ds DATE \*[MONTH] \*[DAY], \*[YEAR]
.ds TITLE Your disk is full and empty
+.ds AUTHOR Chris Noxz
diff --git a/noxz.tech/pub/.assemble b/noxz.tech/pub/.assemble
@@ -2,6 +2,8 @@ logo.black.svg
logo.svg
twtxt.svg
source.svg
+author.svg
+date.svg
logo.png
style.css
chrisnoxz.pub
diff --git a/noxz.tech/pub/author.svg b/noxz.tech/pub/author.svg
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ enable-background="new 0 0 30 30"
+ width="16"
+ height="16"
+ version="1.1"
+ viewBox="0 0 40 40"
+ xml:space="preserve"
+ id="svg189"
+ sodipodi:docname="author.svg"
+ inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"><defs
+ id="defs193"><inkscape:path-effect
+ effect="powermask"
+ id="path-effect7381"
+ is_visible="true"
+ lpeversion="1"
+ uri="#mask-powermask-path-effect7381"
+ invert="false"
+ hide_mask="false"
+ background="true"
+ background_color="#ffffffff" /><inkscape:path-effect
+ effect="powermask"
+ id="path-effect6659"
+ is_visible="true"
+ lpeversion="1"
+ uri="#mask-powermask-path-effect6659"
+ invert="false"
+ hide_mask="false"
+ background="true"
+ background_color="#ffffffff" /><inkscape:path-effect
+ effect="powermask"
+ id="path-effect5929"
+ is_visible="true"
+ lpeversion="1"
+ uri="#mask-powermask-path-effect5929"
+ invert="false"
+ hide_mask="false"
+ background="true"
+ background_color="#ffffffff" /><mask
+ maskUnits="userSpaceOnUse"
+ id="mask-powermask-path-effect7381"><g
+ id="g7379"
+ style=""><rect
+ style="fill:#000000;fill-opacity:1;stroke-width:8.56105;stroke-dasharray:25.6834, 8.56105"
+ id="rect7367"
+ width="5"
+ height="5"
+ x="5"
+ y="15" /><rect
+ style="fill:#000000;fill-opacity:1;stroke-width:8.56105;stroke-dasharray:25.6834, 8.56105"
+ id="rect7369"
+ width="5"
+ height="5"
+ x="15"
+ y="15" /><rect
+ style="fill:#000000;fill-opacity:1;stroke-width:8.56105;stroke-dasharray:25.6834, 8.56105"
+ id="rect7371"
+ width="5"
+ height="5"
+ x="25"
+ y="15" /><rect
+ style="fill:#000000;fill-opacity:1;stroke-width:8.56105;stroke-dasharray:25.6834, 8.56105"
+ id="rect7373"
+ width="5"
+ height="5"
+ x="5"
+ y="25" /><rect
+ style="fill:#000000;fill-opacity:1;stroke-width:8.56105;stroke-dasharray:25.6834, 8.56105"
+ id="rect7375"
+ width="5"
+ height="5"
+ x="15"
+ y="25" /><rect
+ style="fill:#000000;fill-opacity:1;stroke-width:8.56105;stroke-dasharray:25.6834, 8.56105"
+ id="rect7377"
+ width="5"
+ height="5"
+ x="25"
+ y="25" /></g></mask></defs><sodipodi:namedview
+ id="namedview191"
+ pagecolor="#ffffff"
+ bordercolor="#999999"
+ borderopacity="1"
+ inkscape:pageshadow="0"
+ inkscape:pageopacity="0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ inkscape:zoom="22.627417"
+ inkscape:cx="1.6572815"
+ inkscape:cy="4.7287766"
+ inkscape:current-layer="g187"
+ width="16px" />
+<g
+ id="g187">
+
+
+
+
+<g
+ style="fill:none"
+ id="g7524"
+ transform="matrix(0.08239531,0,0,0.08239531,-1.0916935,-1.0539653)"><path
+ d="m 270.397,234.64 c 59.287,0 107.35,-48.049 107.35,-107.32 C 377.747,68.0488 329.684,20 270.397,20 c -59.288,0 -107.35,48.0488 -107.35,107.32 0,59.271 48.062,107.32 107.35,107.32 z"
+ fill="#000000"
+ id="path7512" /><path
+ d="m 404.867,290.98 c -18.637,-19.604 -43.929,-31.535 -70.91,-33.45 -52.471,-3.31 -105.099,-3.31 -157.57,0 -26.57,1.931 -51.46,13.719 -69.79,33.05 -18.0007,18.987 -27.8968,44.239 -27.5901,70.4 0,81.77 94.5001,127.06 178.7101,129.74 h 6.08 c 82.16,4.63 169.16,-40.03 169.16,-119.87 v -8.37 c 0.299,-26.581 -9.778,-52.231 -28.09,-71.5 z"
+ fill="#000000"
+ id="path7514" /></g></g>
+</svg>
diff --git a/noxz.tech/pub/date.svg b/noxz.tech/pub/date.svg
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ enable-background="new 0 0 30 30"
+ width="16"
+ height="16"
+ version="1.1"
+ viewBox="0 0 40 40"
+ xml:space="preserve"
+ id="svg189"
+ sodipodi:docname="date.svg"
+ inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"><defs
+ id="defs193"><inkscape:path-effect
+ effect="powermask"
+ id="path-effect7381"
+ is_visible="true"
+ lpeversion="1"
+ uri="#mask-powermask-path-effect7381"
+ invert="false"
+ hide_mask="false"
+ background="true"
+ background_color="#ffffffff" /><inkscape:path-effect
+ effect="powermask"
+ id="path-effect6659"
+ is_visible="true"
+ lpeversion="1"
+ uri="#mask-powermask-path-effect6659"
+ invert="false"
+ hide_mask="false"
+ background="true"
+ background_color="#ffffffff" /><inkscape:path-effect
+ effect="powermask"
+ id="path-effect5929"
+ is_visible="true"
+ lpeversion="1"
+ uri="#mask-powermask-path-effect5929"
+ invert="false"
+ hide_mask="false"
+ background="true"
+ background_color="#ffffffff" /><mask
+ maskUnits="userSpaceOnUse"
+ id="mask-powermask-path-effect7381"><path
+ id="mask-powermask-path-effect7381_box"
+ style="fill:#ffffff;fill-opacity:1"
+ d="M -1,9 H 36 V 36 H -1 Z" /><g
+ id="g7379"
+ style=""><rect
+ style="fill:#000000;fill-opacity:1;stroke-width:8.56105;stroke-dasharray:25.6834, 8.56105"
+ id="rect7367"
+ width="5"
+ height="5"
+ x="5"
+ y="15"
+ d="m 5,15 h 5 v 5 H 5 Z" /><rect
+ style="fill:#000000;fill-opacity:1;stroke-width:8.56105;stroke-dasharray:25.6834, 8.56105"
+ id="rect7369"
+ width="5"
+ height="5"
+ x="15"
+ y="15"
+ d="m 15,15 h 5 v 5 h -5 z" /><rect
+ style="fill:#000000;fill-opacity:1;stroke-width:8.56105;stroke-dasharray:25.6834, 8.56105"
+ id="rect7371"
+ width="5"
+ height="5"
+ x="25"
+ y="15"
+ d="m 25,15 h 5 v 5 h -5 z" /><rect
+ style="fill:#000000;fill-opacity:1;stroke-width:8.56105;stroke-dasharray:25.6834, 8.56105"
+ id="rect7373"
+ width="5"
+ height="5"
+ x="5"
+ y="25"
+ d="m 5,25 h 5 v 5 H 5 Z" /><rect
+ style="fill:#000000;fill-opacity:1;stroke-width:8.56105;stroke-dasharray:25.6834, 8.56105"
+ id="rect7375"
+ width="5"
+ height="5"
+ x="15"
+ y="25"
+ d="m 15,25 h 5 v 5 h -5 z" /><rect
+ style="fill:#000000;fill-opacity:1;stroke-width:8.56105;stroke-dasharray:25.6834, 8.56105"
+ id="rect7377"
+ width="5"
+ height="5"
+ x="25"
+ y="25"
+ d="m 25,25 h 5 v 5 h -5 z" /></g></mask><filter
+ id="mask-powermask-path-effect7381_inverse"
+ inkscape:label="filtermask-powermask-path-effect7381"
+ style="color-interpolation-filters:sRGB"
+ height="100"
+ width="100"
+ x="-50"
+ y="-50"><feColorMatrix
+ id="mask-powermask-path-effect7381_primitive1"
+ values="1"
+ type="saturate"
+ result="fbSourceGraphic" /><feColorMatrix
+ id="mask-powermask-path-effect7381_primitive2"
+ values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 "
+ in="fbSourceGraphic" /></filter></defs><sodipodi:namedview
+ id="namedview191"
+ pagecolor="#ffffff"
+ bordercolor="#999999"
+ borderopacity="1"
+ inkscape:pageshadow="0"
+ inkscape:pageopacity="0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ inkscape:zoom="32"
+ inkscape:cx="1.015625"
+ inkscape:cy="7.40625"
+ inkscape:current-layer="g187"
+ width="16px" />
+<g
+ id="g187">
+
+
+
+
+<path
+ style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.5px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 0,7.5 V 2.4999999 H 5 V 1.3e-7 L 10,0 V 2.5 H 25 V 0 l 5,1.3e-7 V 2.4999999 h 5 V 7.5 Z"
+ id="path818"
+ sodipodi:nodetypes="ccccccccccccc" /><path
+ style="fill:#000000;fill-opacity:0.80000001;stroke:none;stroke-width:2.5px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 0,10 V 35 H 35 V 10 Z"
+ id="path2505"
+ mask="url(#mask-powermask-path-effect7381)"
+ sodipodi:nodetypes="ccccc"
+ inkscape:path-effect="#path-effect7381"
+ inkscape:original-d="M 0,10 V 35 H 35 V 10 Z" /></g>
+</svg>
diff --git a/noxz.tech/pub/style.css b/noxz.tech/pub/style.css
@@ -263,16 +263,77 @@ span.right {
text-align : right;
}
+#main p.article-author, #main p.article-date {
+ background : none no-repeat 0rem center;
+ padding-left : 1.5rem;
+ display : inline-block;
+ font-family : sans-serif;
+ font-size : 90%;
+ line-height : 1.5;
+ margin : 0 1.5rem 0 0;
+}
+
#main p.article-date {
- color : #666;
- font-size : .8em;
- line-height : 0;
- margin-bottom : 2em;
+ background-image: url("./date.svg");
+}
+
+#main p.article-author {
+ background-image: url("./author.svg");
+}
+
+#main p.article-date ~ .wrap-list {
+ margin-top : -.5em;
+}
+
+.wrap-list>ul {
+ flex-wrap : wrap !important;
+ display : flex !important;
+ padding-left : 0;
+ list-style : none;
+ box-sizing : border-box;
+}
+
+.wrap-list>ul>li {
+ margin-right : 0.5rem !important;
+ margin-top : 0.5rem !important;
+ box-sizing : border-box;
}
.art-tag {
+ display : inline-block;
background : #fafafa;
- padding : 0.2em 0.4em;
+ padding : 0.25rem 0.5rem;
+ font-family : sans-serif;
+ font-size : 90%;
+ line-height : 1.5;
+ border-radius : 0.25rem;
+ text-align : center;
+ vertical-align : middle;
+}
+
+.art-tag>span {
+ display : inline-block;
+ background : #444;
+ color : #fafafa;
+ padding : 0.25em 0.4em;
+ font-size : 65%;
+ font-weight : 700;
+ line-height : 1;
+ text-align : center;
+ white-space : nowrap;
+ vertical-align : middle;
+ border-radius : 0.25rem;
+}
+
+.art-tag:hover {
+ text-decoration : none;
+ background : #005386;
+ color : #fafafa;
+}
+
+.art-tag:hover>span {
+ background : #fafafa;
+ color : #444;
}
.spoiler {