Merge branch 'master' of https://git.sandpoints.org/UnionForNubianStudies/Dotawo
This commit is contained in:
commit
153afd5eab
34 changed files with 4882 additions and 2557 deletions
|
@ -90,18 +90,18 @@ th:not([align]) {
|
|||
src: url("../fonts/vollkorn-sc-v4-latin-ext_latin-regular.eot");
|
||||
/* IE9 Compat Modes */
|
||||
src: local(""),
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-regular.eot?#iefix")
|
||||
format("embedded-opentype"),
|
||||
/* IE6-IE8 */ url("../fonts/vollkorn-sc-v4-latin-ext_latin-regular.woff2")
|
||||
format("woff2"),
|
||||
/* Super Modern Browsers */
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-regular.woff") format("woff"),
|
||||
/* Modern Browsers */
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-regular.ttf")
|
||||
format("truetype"),
|
||||
/* Safari, Android, iOS */
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-regular.svg#VollkornSC")
|
||||
format("svg");
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-regular.eot?#iefix")
|
||||
format("embedded-opentype"),
|
||||
/* IE6-IE8 */ url("../fonts/vollkorn-sc-v4-latin-ext_latin-regular.woff2")
|
||||
format("woff2"),
|
||||
/* Super Modern Browsers */
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-regular.woff") format("woff"),
|
||||
/* Modern Browsers */
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-regular.ttf")
|
||||
format("truetype"),
|
||||
/* Safari, Android, iOS */
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-regular.svg#VollkornSC")
|
||||
format("svg");
|
||||
/* Legacy iOS */
|
||||
}
|
||||
|
||||
|
@ -114,17 +114,17 @@ th:not([align]) {
|
|||
src: url("../fonts/vollkorn-sc-v4-latin-ext_latin-600.eot");
|
||||
/* IE9 Compat Modes */
|
||||
src: local(""),
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-600.eot?#iefix")
|
||||
format("embedded-opentype"),
|
||||
/* IE6-IE8 */ url("../fonts/vollkorn-sc-v4-latin-ext_latin-600.woff2")
|
||||
format("woff2"),
|
||||
/* Super Modern Browsers */
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-600.woff") format("woff"),
|
||||
/* Modern Browsers */ url("../fonts/vollkorn-sc-v4-latin-ext_latin-600.ttf")
|
||||
format("truetype"),
|
||||
/* Safari, Android, iOS */
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-600.svg#VollkornSC")
|
||||
format("svg");
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-600.eot?#iefix")
|
||||
format("embedded-opentype"),
|
||||
/* IE6-IE8 */ url("../fonts/vollkorn-sc-v4-latin-ext_latin-600.woff2")
|
||||
format("woff2"),
|
||||
/* Super Modern Browsers */
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-600.woff") format("woff"),
|
||||
/* Modern Browsers */ url("../fonts/vollkorn-sc-v4-latin-ext_latin-600.ttf")
|
||||
format("truetype"),
|
||||
/* Safari, Android, iOS */
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-600.svg#VollkornSC")
|
||||
format("svg");
|
||||
/* Legacy iOS */
|
||||
}
|
||||
|
||||
|
@ -137,17 +137,17 @@ th:not([align]) {
|
|||
src: url("../fonts/vollkorn-sc-v4-latin-ext_latin-700.eot");
|
||||
/* IE9 Compat Modes */
|
||||
src: local(""),
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-700.eot?#iefix")
|
||||
format("embedded-opentype"),
|
||||
/* IE6-IE8 */ url("../fonts/vollkorn-sc-v4-latin-ext_latin-700.woff2")
|
||||
format("woff2"),
|
||||
/* Super Modern Browsers */
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-700.woff") format("woff"),
|
||||
/* Modern Browsers */ url("../fonts/vollkorn-sc-v4-latin-ext_latin-700.ttf")
|
||||
format("truetype"),
|
||||
/* Safari, Android, iOS */
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-700.svg#VollkornSC")
|
||||
format("svg");
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-700.eot?#iefix")
|
||||
format("embedded-opentype"),
|
||||
/* IE6-IE8 */ url("../fonts/vollkorn-sc-v4-latin-ext_latin-700.woff2")
|
||||
format("woff2"),
|
||||
/* Super Modern Browsers */
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-700.woff") format("woff"),
|
||||
/* Modern Browsers */ url("../fonts/vollkorn-sc-v4-latin-ext_latin-700.ttf")
|
||||
format("truetype"),
|
||||
/* Safari, Android, iOS */
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-700.svg#VollkornSC")
|
||||
format("svg");
|
||||
/* Legacy iOS */
|
||||
}
|
||||
|
||||
|
@ -160,17 +160,17 @@ th:not([align]) {
|
|||
src: url("../fonts/vollkorn-sc-v4-latin-ext_latin-900.eot");
|
||||
/* IE9 Compat Modes */
|
||||
src: local(""),
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-900.eot?#iefix")
|
||||
format("embedded-opentype"),
|
||||
/* IE6-IE8 */ url("../fonts/vollkorn-sc-v4-latin-ext_latin-900.woff2")
|
||||
format("woff2"),
|
||||
/* Super Modern Browsers */
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-900.woff") format("woff"),
|
||||
/* Modern Browsers */ url("../fonts/vollkorn-sc-v4-latin-ext_latin-900.ttf")
|
||||
format("truetype"),
|
||||
/* Safari, Android, iOS */
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-900.svg#VollkornSC")
|
||||
format("svg");
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-900.eot?#iefix")
|
||||
format("embedded-opentype"),
|
||||
/* IE6-IE8 */ url("../fonts/vollkorn-sc-v4-latin-ext_latin-900.woff2")
|
||||
format("woff2"),
|
||||
/* Super Modern Browsers */
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-900.woff") format("woff"),
|
||||
/* Modern Browsers */ url("../fonts/vollkorn-sc-v4-latin-ext_latin-900.ttf")
|
||||
format("truetype"),
|
||||
/* Safari, Android, iOS */
|
||||
url("../fonts/vollkorn-sc-v4-latin-ext_latin-900.svg#VollkornSC")
|
||||
format("svg");
|
||||
/* Legacy iOS */
|
||||
}
|
||||
|
||||
|
@ -183,18 +183,18 @@ th:not([align]) {
|
|||
src: url("../fonts/vollkorn-v12-latin-ext_latin-500italic.eot");
|
||||
/* IE9 Compat Modes */
|
||||
src: local(""),
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-500italic.eot?#iefix")
|
||||
format("embedded-opentype"),
|
||||
/* IE6-IE8 */ url("../fonts/vollkorn-v12-latin-ext_latin-500italic.woff2")
|
||||
format("woff2"),
|
||||
/* Super Modern Browsers */
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-500italic.woff") format("woff"),
|
||||
/* Modern Browsers */
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-500italic.ttf")
|
||||
format("truetype"),
|
||||
/* Safari, Android, iOS */
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-500italic.svg#Vollkorn")
|
||||
format("svg");
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-500italic.eot?#iefix")
|
||||
format("embedded-opentype"),
|
||||
/* IE6-IE8 */ url("../fonts/vollkorn-v12-latin-ext_latin-500italic.woff2")
|
||||
format("woff2"),
|
||||
/* Super Modern Browsers */
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-500italic.woff") format("woff"),
|
||||
/* Modern Browsers */
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-500italic.ttf")
|
||||
format("truetype"),
|
||||
/* Safari, Android, iOS */
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-500italic.svg#Vollkorn")
|
||||
format("svg");
|
||||
/* Legacy iOS */
|
||||
}
|
||||
|
||||
|
@ -207,18 +207,18 @@ th:not([align]) {
|
|||
src: url("../fonts/vollkorn-v12-latin-ext_latin-regular.eot");
|
||||
/* IE9 Compat Modes */
|
||||
src: local(""),
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-regular.eot?#iefix")
|
||||
format("embedded-opentype"),
|
||||
/* IE6-IE8 */ url("../fonts/vollkorn-v12-latin-ext_latin-regular.woff2")
|
||||
format("woff2"),
|
||||
/* Super Modern Browsers */
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-regular.woff") format("woff"),
|
||||
/* Modern Browsers */
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-regular.ttf")
|
||||
format("truetype"),
|
||||
/* Safari, Android, iOS */
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-regular.svg#Vollkorn")
|
||||
format("svg");
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-regular.eot?#iefix")
|
||||
format("embedded-opentype"),
|
||||
/* IE6-IE8 */ url("../fonts/vollkorn-v12-latin-ext_latin-regular.woff2")
|
||||
format("woff2"),
|
||||
/* Super Modern Browsers */
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-regular.woff") format("woff"),
|
||||
/* Modern Browsers */
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-regular.ttf")
|
||||
format("truetype"),
|
||||
/* Safari, Android, iOS */
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-regular.svg#Vollkorn")
|
||||
format("svg");
|
||||
/* Legacy iOS */
|
||||
}
|
||||
|
||||
|
@ -231,17 +231,17 @@ th:not([align]) {
|
|||
src: url("../fonts/vollkorn-v12-latin-ext_latin-500.eot");
|
||||
/* IE9 Compat Modes */
|
||||
src: local(""),
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-500.eot?#iefix")
|
||||
format("embedded-opentype"),
|
||||
/* IE6-IE8 */ url("../fonts/vollkorn-v12-latin-ext_latin-500.woff2")
|
||||
format("woff2"),
|
||||
/* Super Modern Browsers */
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-500.woff") format("woff"),
|
||||
/* Modern Browsers */ url("../fonts/vollkorn-v12-latin-ext_latin-500.ttf")
|
||||
format("truetype"),
|
||||
/* Safari, Android, iOS */
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-500.svg#Vollkorn")
|
||||
format("svg");
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-500.eot?#iefix")
|
||||
format("embedded-opentype"),
|
||||
/* IE6-IE8 */ url("../fonts/vollkorn-v12-latin-ext_latin-500.woff2")
|
||||
format("woff2"),
|
||||
/* Super Modern Browsers */
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-500.woff") format("woff"),
|
||||
/* Modern Browsers */ url("../fonts/vollkorn-v12-latin-ext_latin-500.ttf")
|
||||
format("truetype"),
|
||||
/* Safari, Android, iOS */
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-500.svg#Vollkorn")
|
||||
format("svg");
|
||||
/* Legacy iOS */
|
||||
}
|
||||
|
||||
|
@ -254,17 +254,17 @@ th:not([align]) {
|
|||
src: url("../fonts/vollkorn-v12-latin-ext_latin-italic.eot");
|
||||
/* IE9 Compat Modes */
|
||||
src: local(""),
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-italic.eot?#iefix")
|
||||
format("embedded-opentype"),
|
||||
/* IE6-IE8 */ url("../fonts/vollkorn-v12-latin-ext_latin-italic.woff2")
|
||||
format("woff2"),
|
||||
/* Super Modern Browsers */
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-italic.woff") format("woff"),
|
||||
/* Modern Browsers */
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-italic.ttf") format("truetype"),
|
||||
/* Safari, Android, iOS */
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-italic.svg#Vollkorn")
|
||||
format("svg");
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-italic.eot?#iefix")
|
||||
format("embedded-opentype"),
|
||||
/* IE6-IE8 */ url("../fonts/vollkorn-v12-latin-ext_latin-italic.woff2")
|
||||
format("woff2"),
|
||||
/* Super Modern Browsers */
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-italic.woff") format("woff"),
|
||||
/* Modern Browsers */
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-italic.ttf") format("truetype"),
|
||||
/* Safari, Android, iOS */
|
||||
url("../fonts/vollkorn-v12-latin-ext_latin-italic.svg#Vollkorn")
|
||||
format("svg");
|
||||
/* Legacy iOS */
|
||||
}
|
||||
|
||||
|
@ -277,18 +277,18 @@ th:not([align]) {
|
|||
src: url("../fonts/great-vibes-v7-latin-ext_latin-regular.eot");
|
||||
/* IE9 Compat Modes */
|
||||
src: local("Great Vibes"), local("GreatVibes-Regular"),
|
||||
url("../fonts/great-vibes-v7-latin-ext_latin-regular.eot?#iefix")
|
||||
format("embedded-opentype"),
|
||||
/* IE6-IE8 */ url("../fonts/great-vibes-v7-latin-ext_latin-regular.woff2")
|
||||
format("woff2"),
|
||||
/* Super Modern Browsers */
|
||||
url("../fonts/great-vibes-v7-latin-ext_latin-regular.woff") format("woff"),
|
||||
/* Modern Browsers */
|
||||
url("../fonts/great-vibes-v7-latin-ext_latin-regular.ttf")
|
||||
format("truetype"),
|
||||
/* Safari, Android, iOS */
|
||||
url("../fonts/great-vibes-v7-latin-ext_latin-regular.svg#GreatVibes")
|
||||
format("svg");
|
||||
url("../fonts/great-vibes-v7-latin-ext_latin-regular.eot?#iefix")
|
||||
format("embedded-opentype"),
|
||||
/* IE6-IE8 */ url("../fonts/great-vibes-v7-latin-ext_latin-regular.woff2")
|
||||
format("woff2"),
|
||||
/* Super Modern Browsers */
|
||||
url("../fonts/great-vibes-v7-latin-ext_latin-regular.woff") format("woff"),
|
||||
/* Modern Browsers */
|
||||
url("../fonts/great-vibes-v7-latin-ext_latin-regular.ttf")
|
||||
format("truetype"),
|
||||
/* Safari, Android, iOS */
|
||||
url("../fonts/great-vibes-v7-latin-ext_latin-regular.svg#GreatVibes")
|
||||
format("svg");
|
||||
/* Legacy iOS */
|
||||
}
|
||||
|
||||
|
@ -477,8 +477,11 @@ ol li {
|
|||
list-style-type: decimal;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
img, video {
|
||||
max-width: 100%;
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.supt {
|
||||
|
@ -575,9 +578,9 @@ img {
|
|||
|
||||
.rightcolumn {
|
||||
/* display: grid;
|
||||
grid-column: 2;
|
||||
grid-template-columns: auto 1fr;
|
||||
grid-auto-rows: max-content; */
|
||||
grid-column: 2;
|
||||
grid-template-columns: auto 1fr;
|
||||
grid-auto-rows: max-content; */
|
||||
padding-left: 0.5rem;
|
||||
}
|
||||
|
||||
|
@ -592,6 +595,7 @@ img {
|
|||
|
||||
.hasauthors {
|
||||
font-size: 1.6rem !important;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.hassup {
|
||||
|
@ -669,7 +673,7 @@ h6 {
|
|||
padding-top: 1.2rem;
|
||||
padding-bottom: 1.2rem;
|
||||
background-color: rgba(0, 0, 0, 0.05);
|
||||
max-width: 70ch;
|
||||
max-width: 45ch;
|
||||
}
|
||||
|
||||
.authors {
|
||||
|
@ -775,7 +779,7 @@ h6:before {
|
|||
color: rgba(0, 0, 0, 0.4);
|
||||
counter-increment: h6;
|
||||
content: counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) "."
|
||||
counter(h6) ". ";
|
||||
counter(h6) ". ";
|
||||
}
|
||||
|
||||
h2.nocount:before,
|
||||
|
@ -834,9 +838,9 @@ details {
|
|||
}
|
||||
|
||||
/* .glossline {
|
||||
border-bottom: lightgray solid 1px;
|
||||
border-top: lightgray solid 1px;
|
||||
} */
|
||||
border-bottom: lightgray solid 1px;
|
||||
border-top: lightgray solid 1px;
|
||||
} */
|
||||
|
||||
.glosswords {
|
||||
display: inline-block;
|
||||
|
@ -876,6 +880,11 @@ details {
|
|||
background-color: #fff9f9;
|
||||
}
|
||||
|
||||
.svedit {
|
||||
display: none;
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
html {
|
||||
box-sizing: border-box;
|
||||
|
|
|
@ -54,7 +54,48 @@ window.addEventListener("scroll", function (e) {
|
|||
}
|
||||
});
|
||||
|
||||
function editPage(repoJsId) {
|
||||
let relPath = "../".repeat(relPathDepth - 1);
|
||||
var el = document.createElement('script');
|
||||
el.onload = ()=> {
|
||||
console.log("loading...")
|
||||
console.log(repo)
|
||||
}
|
||||
el.src = `${relPath}js/repo/${repoJsId}.js`
|
||||
document.body.appendChild(el)
|
||||
document.location.href = `${relPath}edit/index.html?edit=${repoJsId}`
|
||||
ev}
|
||||
|
||||
window.addEventListener("keyup", (e)=> {
|
||||
if (e.key == "e" && location.protocol == "file:") {
|
||||
editPage(sandpointsPageId)
|
||||
} else if (e.key == "E" && location.protocol == "file:") {
|
||||
let preview = document.querySelector("#preview");
|
||||
if (preview.style.display == "flex") {
|
||||
preview.style.display = "none";
|
||||
} else {
|
||||
preview.style.display = "flex";
|
||||
}
|
||||
console.log("preview: ", preview);
|
||||
}
|
||||
})
|
||||
|
||||
window.addEventListener("DOMContentLoaded", (e) => {
|
||||
if (location.protocol == "file:") {
|
||||
document.querySelectorAll(".svedit").forEach((i) => {
|
||||
i.style.display = "inline";
|
||||
})
|
||||
}
|
||||
|
||||
document.querySelectorAll('.triadlink').forEach((i) => {
|
||||
i.addEventListener("click", (ev) => {
|
||||
if (ev.ctrlKey) {
|
||||
ev.preventDefault()
|
||||
editPage(ev.target.getAttribute("repoid"))
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
let preview = document.querySelector("#preview");
|
||||
if (
|
||||
location.pathname.split("/").includes("_preview") ||
|
||||
|
@ -66,15 +107,17 @@ window.addEventListener("DOMContentLoaded", (e) => {
|
|||
let par = document.querySelector(
|
||||
"#TableOfContents > ol:first-child > li:first-child"
|
||||
);
|
||||
let s = document.createElement("span");
|
||||
s.appendChild(par.cloneNode(true));
|
||||
par.remove();
|
||||
document
|
||||
.querySelector("#TableOfContents > ol:first-child")
|
||||
.insertBefore(
|
||||
s,
|
||||
document.querySelector("#TableOfContents > ol:first-child").firstChild
|
||||
);
|
||||
if (par) {
|
||||
let s = document.createElement("span");
|
||||
s.appendChild(par.cloneNode(true));
|
||||
par.remove();
|
||||
document
|
||||
.querySelector("#TableOfContents > ol:first-child")
|
||||
.insertBefore(
|
||||
s,
|
||||
document.querySelector("#TableOfContents > ol:first-child").firstChild
|
||||
);
|
||||
}
|
||||
|
||||
if (document.querySelector(".soundcite")) {
|
||||
let relPath = "../".repeat(relPathDepth - 1);
|
||||
|
|
|
@ -427,6 +427,7 @@ ol li {
|
|||
|
||||
.hasauthors {
|
||||
font-size: 1.6rem !important;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.hassup {
|
||||
|
|
|
@ -5,7 +5,17 @@
|
|||
{{ $_.Add "triads" $k }}
|
||||
{{- end -}}
|
||||
|
||||
{{- if strings.HasPrefix .Destination "bib:" -}}
|
||||
{{- if strings.HasPrefix .Destination "img:" -}}
|
||||
{{- $img_params := (substr .Destination 4) -}}
|
||||
{{- $img_src := index (split $img_params " ") 0 -}}
|
||||
{{- $img_attr := index (split $img_params $img_src) 1 -}}
|
||||
<img class="sandpoints-img" src="{{ $img_src }}" {{ $img_attr | safeHTMLAttr }} />
|
||||
{{- else if strings.HasPrefix .Destination "vid:" -}}
|
||||
{{- $vid_params := (substr .Destination 4) -}}
|
||||
{{- $vid_src := index (split $vid_params " ") 0 -}}
|
||||
{{- $vid_attr := index (split $vid_params $vid_src) 1 -}}
|
||||
<video class="sandpoints-vid" controls src="{{ $vid_src }}" {{ $vid_attr | safeHTMLAttr }}></video>
|
||||
{{- else if strings.HasPrefix .Destination "bib:" -}}
|
||||
{{- $destination := (substr .Destination 4) -}}
|
||||
{{- $c_prefix := .Page.Site.Params.sandpointsCatalogPrefix | default "/library/" -}}
|
||||
{{- if index $.Page.Site.Data.books.catalog $destination -}}
|
||||
|
@ -22,16 +32,16 @@
|
|||
<span class="sup">bib⁄</span><a href="{{- $c_prefix | safeURL -}}BROWSE_LIBRARY.html#/book/{{- $destination -}}"{{- with $b.title}} title="{{- . -}}"{{- end -}} target="_blank">{{- $text_link -}}</a>
|
||||
{{- end -}}
|
||||
{{- else -}}
|
||||
<a href="{{- $c_prefix | safeURL -}}BROWSE_LIBRARY.html#/book/{{- $destination -}}"{{- with .Title}} title="{{- . -}}"{{- end -}}>{{- $text_link -}}⦚<span class="text-xs font-bold p-1 bg-AuChico text-CoconutCream">bib:{{- $destination -}} not found</span></a>
|
||||
<a href="{{- $c_prefix | safeURL -}}BROWSE_LIBRARY.html#/book/{{- $destination -}}"{{- with .Title}} title="{{- . -}}"{{- end -}}>{{- $text_link -}}⦚<span>bib:{{- $destination -}} not found</span></a>
|
||||
{{- end -}}
|
||||
{{- else if in ($_.Get "triads") (index (split .Destination ":") 0) -}}
|
||||
{{- if $.Page.Site.GetPage (printf "/%s" (replace .Destination ":" "/")) -}}
|
||||
{{- $session := $.Page.Site.GetPage (printf "/%s" (replace .Destination ":" "/")) -}}
|
||||
{{ .Page.Scratch.Add "links" (slice $session) }}
|
||||
{{- if not $text_link -}}
|
||||
<a printhref="#ph-{{- $session.File.UniqueID -}}" href="{{- $session.RelPermalink -}}{{- if eq hugo.Environment "offline" -}}index.html{{- end -}}"{{- with $session.Title}} title="{{- $session.Title -}}"{{- end -}}><span class="sup">{{- index (split .Destination ":") 0 -}}⁄</span>{{- $session.Title -}}</a>
|
||||
<a class="triadlink" repoid="{{- $session.File.UniqueID -}}" printhref="#ph-{{- $session.File.UniqueID -}}" href="{{- $session.RelPermalink -}}{{- if eq hugo.Environment "offline" -}}index.html{{- end -}}"{{- with $session.Title}} title="{{- $session.Title -}}"{{- end -}}><span class="sup">{{- index (split .Destination ":") 0 -}}⁄</span>{{- $session.Title -}}</a>
|
||||
{{- else -}}
|
||||
<a printhref="#ph-{{- $session.File.UniqueID -}}" href="{{- $session.RelPermalink -}}{{- if eq hugo.Environment "offline" -}}index.html{{- end -}}"{{- with .Title}} title="{{- . -}}"{{- end -}}><span class="sup">{{- index (split .Destination ":") 0 -}}⁄</span>{{- $text_link -}}</a>
|
||||
<a class="triadlink" repoid="{{- $session.File.UniqueID -}}" printhref="#ph-{{- $session.File.UniqueID -}}" href="{{- $session.RelPermalink -}}{{- if eq hugo.Environment "offline" -}}index.html{{- end -}}"{{- with .Title}} title="{{- . -}}"{{- end -}}><span class="sup">{{- index (split .Destination ":") 0 -}}⁄</span>{{- $text_link -}}</a>
|
||||
{{- end -}}
|
||||
{{- else -}}
|
||||
<a href="{{- .Destination -}}/{{- if eq hugo.Environment "offline" -}}index.html{{- end -}}">{{- $text_link -}}⦚<span>{{- .Destination -}} not found</span></a>
|
||||
|
|
|
@ -33,9 +33,19 @@
|
|||
{{ with $scratch.mantle }}<a class="edit-button" target="_blank" href="{{ $.Site.Params.sandpointsGiteaUrl }}/_new/master/content/{{ index . 0 }}/">ADD_{{ index . 0 | upper }}</a>{{ end }}
|
||||
{{ with $scratch.crust }}<a class="edit-button" target="_blank" href="{{ $.Site.Params.sandpointsGiteaUrl }}/_new/master/content/{{ index . 0 }}/">ADD_{{ index . 0 | upper }}</a>{{ end }}
|
||||
{{ if not $scratch.core }}<a class="edit-button" target="_blank" href="{{ $.Site.Params.sandpointsGiteaUrl }}/_new/master/content/{{ $currentDir }}">ADD_{{ substr $currentDir 0 -1 | upper }}</a>{{ end }}
|
||||
<a class="edit-button" target="_blank" href="{{ $.Site.Params.sandpointsGiteaUrl }}/_edit/master/PUBLISH.trigger.md">PUBLISH</a>
|
||||
<a class="edit-button" target="_blank" href="{{ $.Site.Params.sandpointsGiteaUrl }}/_edit/master/PUBLISH.trigger.mkd">PUBLISH</a>
|
||||
<a class="edit-button" target="_blank" href="{{ $.Site.Params.sandpointsGiteaUrl }}"> ? </a>
|
||||
</div>
|
||||
{{ else }}
|
||||
{{ $editPage := $.Site.GetPage "/edit" }}
|
||||
<div class="headiter" id="preview">
|
||||
<a class="edit-button" href="{{ $editPage.RelPermalink }}index.html?edit={{ .File.UniqueID }}">EDIT_THIS</a>
|
||||
{{ with $scratch.core }}<a class="edit-button" href="{{ $editPage.RelPermalink }}index.html?new={{ index . 0 }}">ADD_{{ index . 0 | upper }}</a>{{ end }}
|
||||
{{ with $scratch.mantle }}<a class="edit-button" href="{{ $editPage.RelPermalink }}index.html?new={{ index . 0 }}">ADD_{{ index . 0 | upper }}</a>{{ end }}
|
||||
{{ with $scratch.crust }}<a class="edit-button" href="{{ $editPage.RelPermalink }}index.html?new={{ index . 0 }}">ADD_{{ index . 0 | upper }}</a>{{ end }}
|
||||
{{ if not $scratch.core }}<a class="edit-button" href="{{ $editPage.RelPermalink }}index.html?new={{ $currentDir }}">ADD_{{ substr $currentDir 0 -1 | upper }}</a>{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
<div class="header">
|
||||
|
@ -43,6 +53,9 @@
|
|||
<img src="/images/bibliotheke.svg" />
|
||||
</a>
|
||||
<div class="breadcrumbs">
|
||||
{{ if and (not $scratch.depth) $.Site.Params.sandpointsHome }}
|
||||
<a href="{{ with $.GetPage $.Site.Params.sandpointsHome }}{{ .RelPermalink }}{{ end }}{{ if eq hugo.Environment "offline" }}index.html{{ end }}"><span class="supt">{{ with $.GetPage $.Site.Params.sandpointsHome }}{{ substr .Title 0 1 }}</span><i>{{ substr .Title 1 }}</i></a>{{ end }}
|
||||
{{ end }}
|
||||
{{ if eq $scratch.depth "mantle" }}
|
||||
{{ with gt (len $scratch.is_in) 1 }}
|
||||
<div class="ddmenu">
|
||||
|
|
|
@ -9,6 +9,8 @@
|
|||
{{ $scratch := $s.Get $currentFile }}
|
||||
|
||||
{{ $sandnamePlural := (slice) }}
|
||||
{{ $sandnameSingular := "" }}
|
||||
{{ $mentionLink := "" }}
|
||||
|
||||
<div class="{{ $scratch.depth | default "crust" }}title"><span class="supt">{{ substr $currentDir 0 -1 }}⁄</span>{{ .Title }}</div>
|
||||
|
||||
|
@ -31,12 +33,17 @@
|
|||
{{ $mentions := intersect $paramsKeys $sandnamePlural }}
|
||||
{{ range $mention := $mentions }}
|
||||
{{ range $k, $m := index $currentNode.Params $mention }}
|
||||
{{ $mentionLink := printf "/%s/%s" (substr $mention 0 -1) $m }}
|
||||
{{ range $k, $v := $.Site.Data.sandpointsnamegraph }}
|
||||
{{ if eq $v $mention }}
|
||||
{{ $mentionLink = printf "/%s/%s" $k $m }}
|
||||
{{ $sandnameSingular = $k }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{- with $.GetPage $mentionLink -}}
|
||||
{{- with not $k -}}
|
||||
{{ $closeDivs = true }}
|
||||
<div class="has hasauthors">
|
||||
<div class="hassup">{{ with (index $currentNode.Params $mention) }}{{ if gt (len (index $currentNode.Params $mention)) 1 }}{{ $mention }}{{ else }}{{ substr $mention 0 -1 }}{{ end }}{{ end }}⁄</div>
|
||||
<div class="hassup">{{ with (index $currentNode.Params $mention) }}{{ if gt (len (index $currentNode.Params $mention)) 1 }}{{ $mention }}{{ else }}{{ $sandnameSingular }}{{ end }}{{ end }}⁄</div>
|
||||
<div class="afterhas">
|
||||
{{- end -}}
|
||||
<div class="crust">
|
||||
|
@ -44,8 +51,8 @@
|
|||
</div>
|
||||
{{- end -}}
|
||||
{{ end }}
|
||||
{{- with $closeDivs -}}</div></div>{{ end }}
|
||||
{{ end }}
|
||||
{{- with $closeDivs -}}</div></div>{{ end }}
|
||||
|
||||
{{ if in .Page.Site.Params.sandpointsMentionedIn (substr $currentDir 0 -1) }}
|
||||
<div class="has hasmentionedin">
|
||||
|
@ -92,4 +99,7 @@
|
|||
|
||||
{{ with .Page.Params.abstract }}<div class="abstract"><span class="supt">abstract⁄</span>{{ . | $.Page.RenderString | htmlUnescape | safeHTML }}</div>{{ end }}
|
||||
|
||||
{{- $vld := false -}}{{- range $k, $v := .Page.Params.keywords -}}{{- if eq $k 0 -}}{{- $vld = true -}}<div class="keywords"><span class="sup">keywords⁄</span>{{- $v -}}{{- else -}}, {{- $v -}}{{- end -}}{{- end -}}{{- with $vld -}}</div>{{- end -}}
|
||||
{{- $vld := false -}}{{- range $k, $v := .Page.Params.keywords -}}{{- if eq $k 0 -}}{{- $vld = true -}}<div class="keywords"><span class="sup">keywords⁄</span><a href="/keywords/{{ urlize $v }}/{{ if eq hugo.Environment "offline" }}index.html{{ end }}">{{- $v -}}</a>{{- else -}}, <a href="/keywords/{{ urlize $v }}/{{ if eq hugo.Environment "offline" }}index.html{{ end }}">{{- $v -}}</a>{{- end -}}{{- end -}}{{- with $vld -}}</div>{{- end -}}
|
||||
|
||||
{{ $var := printf "repo={\"frontmatter\": %s, \"content\": %s, \"path\": \"%s\", \"relpermalink\": \"%s\" }" (jsonify .Params) (jsonify .RawContent) .File.Path .RelPermalink | resources.FromString (printf "js/repo/%s.js" .File.UniqueID) }}
|
||||
{{ $dummy := $var.Permalink }}
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,20 +1,61 @@
|
|||
{
|
||||
"syllabus": "syllabi",
|
||||
"curriculum": "curriculums",
|
||||
"notebook": "notebooks",
|
||||
"book": "books",
|
||||
"journal": "journals",
|
||||
"topic": "topics",
|
||||
"part": "parts",
|
||||
"issue": "issues",
|
||||
"tab": "tabs",
|
||||
"experiment": "experiments",
|
||||
"session": "sessions",
|
||||
"chapter": "chapters",
|
||||
"article": "articles",
|
||||
"note": "notes",
|
||||
"annex": "annexes",
|
||||
"article": "articles",
|
||||
"atlas": "atlases",
|
||||
"author": "authors",
|
||||
"book": "books",
|
||||
"bundle": "bundles",
|
||||
"cabin": "cabins",
|
||||
"chapter": "chapters",
|
||||
"compartment": "compartments",
|
||||
"contributor": "contributors",
|
||||
"curriculum": "curriculums",
|
||||
"deck": "decks",
|
||||
"doc": "docs",
|
||||
"document": "documents",
|
||||
"editor": "editors",
|
||||
"contributor": "contributors"
|
||||
"entry": "entries",
|
||||
"experiment": "experiments",
|
||||
"factor": "factors",
|
||||
"floor": "floors",
|
||||
"fragment": "fragments",
|
||||
"glossary": "glossaries",
|
||||
"highlight": "highlights",
|
||||
"house": "houses",
|
||||
"issue": "issues",
|
||||
"item": "items",
|
||||
"journal": "journals",
|
||||
"library": "libraries",
|
||||
"librarian": "librarians",
|
||||
"logbook": "logbooks",
|
||||
"glassblower": "glassblowers",
|
||||
"map": "maps",
|
||||
"mirror": "mirrors",
|
||||
"memory": "memories",
|
||||
"note": "notes",
|
||||
"notebook": "notebooks",
|
||||
"part": "parts",
|
||||
"person": "people",
|
||||
"pin": "pins",
|
||||
"print": "prints",
|
||||
"record": "records",
|
||||
"reflection": "reflections",
|
||||
"repertorium": "repertoriums",
|
||||
"research": "researches",
|
||||
"room": "rooms",
|
||||
"scribe": "scribes",
|
||||
"section": "sections",
|
||||
"series": "series",
|
||||
"session": "sessions",
|
||||
"shard": "shards",
|
||||
"ship": "ships",
|
||||
"spectre": "spectres",
|
||||
"struggle": "struggles",
|
||||
"syllabus": "syllabi",
|
||||
"tab": "tabs",
|
||||
"term":"terms",
|
||||
"thing": "things",
|
||||
"topic": "topics",
|
||||
"toponym": "toponyms",
|
||||
"voice": "voices"
|
||||
}
|
||||
|
|
|
@ -5,7 +5,17 @@
|
|||
{{ $_.Add "triads" $k }}
|
||||
{{- end -}}
|
||||
|
||||
{{- if strings.HasPrefix .Destination "bib:" -}}
|
||||
{{- if strings.HasPrefix .Destination "img:" -}}
|
||||
{{- $img_params := (substr .Destination 4) -}}
|
||||
{{- $img_src := index (split $img_params " ") 0 -}}
|
||||
{{- $img_attr := index (split $img_params $img_src) 1 -}}
|
||||
<img class="sandpoints-img" src="{{ $img_src }}" {{ $img_attr | safeHTMLAttr }} />
|
||||
{{- else if strings.HasPrefix .Destination "vid:" -}}
|
||||
{{- $vid_params := (substr .Destination 4) -}}
|
||||
{{- $vid_src := index (split $vid_params " ") 0 -}}
|
||||
{{- $vid_attr := index (split $vid_params $vid_src) 1 -}}
|
||||
<video class="sandpoints-vid" controls src="{{ $vid_src }}" {{ $vid_attr | safeHTMLAttr }}></video>
|
||||
{{- else if strings.HasPrefix .Destination "bib:" -}}
|
||||
{{- $destination := (substr .Destination 4) -}}
|
||||
{{- $c_prefix := .Page.Site.Params.sandpointsCatalogPrefix | default "/library/" -}}
|
||||
{{- if index $.Page.Site.Data.books.catalog $destination -}}
|
||||
|
@ -17,21 +27,21 @@
|
|||
{{ end }}
|
||||
{{ .Page.Scratch.Add "bibs" (slice (slice $bibhref $bibtitle)) }}
|
||||
{{- if not $text_link -}}
|
||||
<span>{{- delimit $b.authors ", " " & " -}}{{- with $b.pubdate -}}, {{- substr . 0 4}}{{- end -}}.<a href="{{- $c_prefix | safeURL -}}BROWSE_LIBRARY.html#/book/{{- $destination -}}"{{- with $b.title}} title="{{- . -}}"{{- end -}} target="_blank"><span class="sup">bib⁄</span><i>‘{{- $b.title -}}’</i></a>. {{- with $b.publisher -}}{{- . -}}.{{- end -}}</span>
|
||||
{{- else -}}
|
||||
<span class="sup">bib⁄</span><a href="{{- $c_prefix | safeURL -}}BROWSE_LIBRARY.html#/book/{{- $destination -}}"{{- with $b.title}} title="{{- . -}}"{{- end -}} target="_blank">{{- $text_link -}}</a>
|
||||
<span>{{- delimit $b.authors ", " " & " -}}{{- with $b.pubdate -}}, {{- substr . 0 4}}{{- end -}}. <a href="{{- $c_prefix | safeURL -}}BROWSE_LIBRARY.html#/book/{{- $destination -}}"{{- with $b.title}} title="{{- . -}}"{{- end -}} target="_blank"><span class="sup">bib⁄</span><i>{{- $b.title -}}</i></a>. {{- with $b.publisher -}}{{- . -}}.{{- end -}}</span>
|
||||
{{- else -}}
|
||||
<span class="sup">bib⁄</span><a href="{{- $c_prefix | safeURL -}}BROWSE_LIBRARY.html#/book/{{- $destination -}}"{{- with $b.title}} title="{{- . -}}"{{- end -}} target="_blank">{{- $text_link -}}</a>
|
||||
{{- end -}}
|
||||
{{- else -}}
|
||||
<a href="{{- $c_prefix | safeURL -}}BROWSE_LIBRARY.html#/book/{{- $destination -}}"{{- with .Title}} title="{{- . -}}"{{- end -}}>{{- $text_link -}}⦚<span class="text-xs font-bold p-1 bg-AuChico text-CoconutCream">bib:{{- $destination -}} not found</span></a>
|
||||
<a href="{{- $c_prefix | safeURL -}}BROWSE_LIBRARY.html#/book/{{- $destination -}}"{{- with .Title}} title="{{- . -}}"{{- end -}}>{{- $text_link -}}⦚<span>bib:{{- $destination -}} not found</span></a>
|
||||
{{- end -}}
|
||||
{{- else if in ($_.Get "triads") (index (split .Destination ":") 0) -}}
|
||||
{{- if $.Page.Site.GetPage (printf "/%s" (replace .Destination ":" "/")) -}}
|
||||
{{- $session := $.Page.Site.GetPage (printf "/%s" (replace .Destination ":" "/")) -}}
|
||||
{{ .Page.Scratch.Add "links" (slice $session) }}
|
||||
{{- if not $text_link -}}
|
||||
<a printhref="#ph-{{- $session.File.UniqueID -}}" href="{{- $session.RelPermalink -}}{{- if eq hugo.Environment "offline" -}}index.html{{- end -}}"{{- with $session.Title}} title="{{- $session.Title -}}"{{- end -}}><span class="sup">{{- index (split .Destination ":") 0 -}}⁄</span>{{- $session.Title -}}</a>
|
||||
<a class="triadlink" repoid="{{- $session.File.UniqueID -}}" printhref="#ph-{{- $session.File.UniqueID -}}" href="{{- $session.RelPermalink -}}{{- if eq hugo.Environment "offline" -}}index.html{{- end -}}"{{- with $session.Title}} title="{{- $session.Title -}}"{{- end -}}><span class="sup">{{- index (split .Destination ":") 0 -}}⁄</span>{{- $session.Title -}}</a>
|
||||
{{- else -}}
|
||||
<a printhref="#ph-{{- $session.File.UniqueID -}}" href="{{- $session.RelPermalink -}}{{- if eq hugo.Environment "offline" -}}index.html{{- end -}}"{{- with .Title}} title="{{- . -}}"{{- end -}}><span class="sup">{{- index (split .Destination ":") 0 -}}⁄</span>{{- $text_link -}}</a>
|
||||
<a class="triadlink" repoid="{{- $session.File.UniqueID -}}" printhref="#ph-{{- $session.File.UniqueID -}}" href="{{- $session.RelPermalink -}}{{- if eq hugo.Environment "offline" -}}index.html{{- end -}}"{{- with .Title}} title="{{- . -}}"{{- end -}}><span class="sup">{{- index (split .Destination ":") 0 -}}⁄</span>{{- $text_link -}}</a>
|
||||
{{- end -}}
|
||||
{{- else -}}
|
||||
<a href="{{- .Destination -}}/{{- if eq hugo.Environment "offline" -}}index.html{{- end -}}">{{- $text_link -}}⦚<span>{{- .Destination -}} not found</span></a>
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
<html lang="{{ with .Site.LanguageCode }}{{ . }}{{ else }}en-us{{ end }}">
|
||||
<head>
|
||||
{{- partialCached "head.html" . -}}
|
||||
{{- partial "head.html" . -}}
|
||||
<title>{{- .Title }} - {{ .Site.Title -}}</title>
|
||||
{{- partialCached "sandpointjs.html" . .RelPermalink -}}
|
||||
</head>
|
||||
<body>
|
||||
{{- block "singlebody" . }}{{- end }}
|
||||
{{- block "singlebody" . }}{{- end -}}
|
||||
{{- partialCached "footer.html" . -}}
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,6 +6,9 @@
|
|||
{{ $currentDir = .Dir }}
|
||||
{{ end }}
|
||||
{{ $currentFile := (printf "/%s" .File) }}
|
||||
{{ $editFile := $.Site.GetPage "/edit" }}
|
||||
{{ $editFilePath := $editFile.RelPermalink }}
|
||||
|
||||
|
||||
<div class="coretitle"><span class="supt">Sitemap⁄{{ substr $.Site.Title 0 1 }}</span>{{ substr $.Site.Title 1 }} {{with $currentDir}}({{ . }}){{ end }}</div>
|
||||
|
||||
|
@ -14,12 +17,12 @@
|
|||
{{ range $p := .Site.RegularPages }}
|
||||
{{ $scratch := $s.Get (printf "/%s" $p.File) }}
|
||||
{{ if eq $scratch.depth "core" }}
|
||||
<div class="sitemap" ><div class="{{ with $p.File }}{{ if eq $currentDir .Dir }}highline{{ end }}{{ end }}"><a href="{{- $p.RelPermalink -}}{{- if eq hugo.Environment "offline" -}}index.html{{- end -}}"{{- with $p.Title}} title="{{- $p.Title -}}"{{- end -}}><span class="sup">{{- substr $p.File.Dir 0 -1 -}}⁄</span>{{- $p.Title -}}</a></div>
|
||||
<div class="sitemap" ><div class="{{ with $p.File }}{{ if eq $currentDir .Dir }}highline{{ end }}{{ end }}"><a href="{{- $p.RelPermalink -}}{{- if eq hugo.Environment "offline" -}}index.html{{- end -}}"{{- with $p.Title}} title="{{- $p.Title -}}"{{- end -}}><span class="sup">{{- substr $p.File.Dir 0 -1 -}}⁄</span>{{- $p.Title -}}</a><a class="svedit" href="{{- printf "%sindex.html#%s" $editFilePath $p.File.UniqueID -}}">[EDIT]</a></div>
|
||||
{{ range $coreKid := $scratch.has_children }}
|
||||
<div class="sitemap"><a href="{{- $coreKid.RelPermalink -}}{{- if eq hugo.Environment "offline" -}}index.html{{- end -}}"{{- with $coreKid.Title}} title="{{- $coreKid.Title -}}"{{- end -}}><div class="{{ with $coreKid.File }}{{ if eq $currentDir .Dir }}highline{{ end }}{{ end }}"><span class="sup">{{- substr $coreKid.File.Dir 0 -1 -}}⁄</span>{{- $coreKid.Title -}}</a></div>
|
||||
<div class="sitemap"><a href="{{- $coreKid.RelPermalink -}}{{- if eq hugo.Environment "offline" -}}index.html{{- end -}}"{{- with $coreKid.Title}} title="{{- $coreKid.Title -}}"{{- end -}}><div class="{{ with $coreKid.File }}{{ if eq $currentDir .Dir }}highline{{ end }}{{ end }}"><span class="sup">{{- substr $coreKid.File.Dir 0 -1 -}}⁄</span>{{- $coreKid.Title -}}</a><a class="svedit" href="{{- printf "%sindex.html#%s" $editFilePath $coreKid.File.UniqueID -}}">[EDIT]</a></div>
|
||||
{{ $scratchCKid := $s.Get (printf "/%s" $coreKid.File) }}
|
||||
{{ range $mantleKid := $scratchCKid.has_children }}
|
||||
<div class="sitemap"><div class="{{ with $mantleKid.File }}{{ if eq $currentDir .Dir }} highline{{ end }}{{ end }}"><a href="{{- $mantleKid.RelPermalink -}}{{- if eq hugo.Environment "offline" -}}index.html{{- end -}}"{{- with $mantleKid.Title}} title="{{- $mantleKid.Title -}}"{{- end -}}><span class="sup">{{ with $mantleKid.File }}{{substr .Dir 0 -1 -}}⁄{{ end }}</span>{{- $mantleKid.Title -}}</a></div></div>
|
||||
<div class="sitemap"><div class="{{ with $mantleKid.File }}{{ if eq $currentDir .Dir }} highline{{ end }}{{ end }}"><a href="{{- $mantleKid.RelPermalink -}}{{- if eq hugo.Environment "offline" -}}index.html{{- end -}}"{{- with $mantleKid.Title}} title="{{- $mantleKid.Title -}}"{{- end -}}><span class="sup">{{ with $mantleKid.File }}{{substr .Dir 0 -1 -}}⁄{{ end }}</span>{{- $mantleKid.Title -}}</a><a class="svedit" href="{{- printf "%sindex.html#%s" $editFilePath $mantleKid.File.UniqueID -}}">[EDIT]</a></div></div>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
@ -30,6 +33,6 @@
|
|||
{{ end }}
|
||||
{{ end }}
|
||||
{{ range $noTriad }}
|
||||
<div class="sitemap {{ with .File }}{{ if eq $currentDir .Dir }} highline{{ end }}{{ end }}"><a href="{{- .RelPermalink -}}{{- if eq hugo.Environment "offline" -}}index.html{{- end -}}"{{- with .Title }} title="{{- . -}}"{{- end -}}><span class="sup">{{- substr .File.Dir 0 -1 -}}⁄</span>{{- .Title -}}</a></div>
|
||||
<div class="sitemap {{ with .File }}{{ if eq $currentDir .Dir }} highline{{ end }}{{ end }}"><a href="{{- .RelPermalink -}}{{- if eq hugo.Environment "offline" -}}index.html{{- end -}}"{{- with .Title }} title="{{- . -}}"{{- end -}}><span class="sup">{{- substr .File.Dir 0 -1 -}}⁄</span>{{- .Title -}}</a>{{ if not (or (hasPrefix .File.Dir "edit") (hasPrefix .File.Dir "print")) }}<a class="svedit" href="{{- printf "%sindex.html#%s" $editFilePath .File.UniqueID -}}">[EDIT]</a>{{ end }}</div>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
|
|
@ -1,9 +1,14 @@
|
|||
<!DOCTYPE html>
|
||||
|
||||
<html lang="{{ with .Site.LanguageCode }}{{ . }}{{ else }}en-us{{ end }}">
|
||||
<head>
|
||||
<title>{{- .Title }} - {{ .Site.Title -}}</title>
|
||||
<meta charset='utf-8'>
|
||||
<meta name='viewport' content='width=device-width,initial-scale=1'>
|
||||
<link rel='stylesheet' href='build/global.css'>
|
||||
<!-- <link rel='stylesheet' href='build/bundle.css'> -->
|
||||
<script defer src='../metadata/index.js'></script>
|
||||
<script defer src='build/bundle.js'></script>
|
||||
<title>edit⁄{{- .Site.Title -}}</title>
|
||||
</head>
|
||||
<body>
|
||||
{{ block "edit" . }}{{ end }}
|
||||
</body>
|
||||
<body>{{- block "main" . -}}{{- end -}}</body>
|
||||
</html>
|
||||
|
|
|
@ -1,10 +1,2 @@
|
|||
{{ define "edit" }}
|
||||
{{ range (readDir ".") }}
|
||||
{{ if .IsDir }}
|
||||
<p>Dir: {{ .Name }}</p>
|
||||
{{ partial "readdir.html" .Name }}
|
||||
{{ else }}
|
||||
<p>File: {{ .Name }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ define "main" }}
|
||||
{{ end }}
|
||||
|
|
1
_vendor/git.sandpoints.org/Drawwell/SandpointsTheme/layouts/edit/single.html
generated
Normal file
1
_vendor/git.sandpoints.org/Drawwell/SandpointsTheme/layouts/edit/single.html
generated
Normal file
|
@ -0,0 +1 @@
|
|||
{{- define "main" -}}{{- end -}}
|
|
@ -1 +1,20 @@
|
|||
{{ define "main" }}SECTIONS=[{{ range .Site.Sections }}{"section": "{{ with .File }}{{ trim .Dir "/" }}{{ end }}", "items": [{{ range .Pages }}"{{ .File.BaseFileName }}", {{ end }}]}, {{ end }}];{{ end }}
|
||||
{{- define "main" -}}
|
||||
{{ $sections := (slice) }}
|
||||
{{ $tiers := (slice) }}
|
||||
{{ range $.Site.Sections }}
|
||||
{{ with .File }}
|
||||
{{ $sections = $sections | append (strings.TrimSuffix "/" .Dir) }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ $metasp := (dict) }}
|
||||
{{ range $k, $v := $.Site.Data.sandpointsnamegraph }}
|
||||
{{ if in $sections $k }}
|
||||
{{ $tiers = (slice) }}
|
||||
{{ range where $.Site.RegularPages "Section" $k }}
|
||||
{{ $tiers = $tiers | append (merge (dict "file" .File.LogicalName) (dict "title" .Title)) }}
|
||||
{{ end }}
|
||||
{{ $metasp = merge $metasp (dict $v (merge (dict "singular" $k) (dict "tiers" $tiers))) }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ printf "METASP=%s;" (jsonify $metasp) }}
|
||||
{{ end }}
|
||||
|
|
|
@ -11,10 +11,21 @@
|
|||
<meta name="keywords" content="{{ delimit .Keywords "," }}" />
|
||||
{{ end }}
|
||||
|
||||
{{ if .Params.Author }}
|
||||
<meta name="author" content="{{ .Params.Author }}" />
|
||||
{{ if .Params.editors }}
|
||||
{{ range .Params.editors }}
|
||||
{{ $e := $.GetPage (printf "editor/%s" .) }}
|
||||
<meta name="editor" content="{{ $e.Title }}" />
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{ if .Params.authors }}
|
||||
{{ range .Params.authors }}
|
||||
{{ $e := $.GetPage (printf "author/%s" .) }}
|
||||
<meta name="author" content="{{ $e.Title }}" />
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
|
||||
{{ template "_internal/opengraph.html" . }}
|
||||
{{ template "_internal/twitter_cards.html" . }}
|
||||
|
||||
|
@ -27,9 +38,9 @@
|
|||
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#996561">
|
||||
|
||||
{{ if eq hugo.Environment "dev" }}
|
||||
{{ $style := resources.Get "css/site.css" | postCSS (dict "config" "assets/css/postcss.config.js") | minify }}
|
||||
{{ $style := resources.Get "css/site.css" | resources.PostCSS (dict "config" "assets/css/postcss.config.js") | minify }}
|
||||
<link rel="stylesheet" href="{{ $style.RelPermalink }}" />
|
||||
{{ $style := resources.Get "css/player.css" | postCSS (dict "config" "assets/css/postcss.config.js") | minify }}
|
||||
{{ $style := resources.Get "css/player.css" | resources.PostCSS (dict "config" "assets/css/postcss.config.js") | minify }}
|
||||
<link rel="stylesheet" href="{{ $style.RelPermalink }}" />
|
||||
{{ else }}
|
||||
<link rel="stylesheet" href="/css/site.min.css" />
|
||||
|
|
|
@ -33,9 +33,19 @@
|
|||
{{ with $scratch.mantle }}<a class="edit-button" target="_blank" href="{{ $.Site.Params.sandpointsGiteaUrl }}/_new/master/content/{{ index . 0 }}/">ADD_{{ index . 0 | upper }}</a>{{ end }}
|
||||
{{ with $scratch.crust }}<a class="edit-button" target="_blank" href="{{ $.Site.Params.sandpointsGiteaUrl }}/_new/master/content/{{ index . 0 }}/">ADD_{{ index . 0 | upper }}</a>{{ end }}
|
||||
{{ if not $scratch.core }}<a class="edit-button" target="_blank" href="{{ $.Site.Params.sandpointsGiteaUrl }}/_new/master/content/{{ $currentDir }}">ADD_{{ substr $currentDir 0 -1 | upper }}</a>{{ end }}
|
||||
<a class="edit-button" target="_blank" href="{{ $.Site.Params.sandpointsGiteaUrl }}/_edit/master/PUBLISH.trigger.md">PUBLISH</a>
|
||||
<a class="edit-button" target="_blank" href="{{ $.Site.Params.sandpointsGiteaUrl }}/_edit/master/PUBLISH.trigger.mkd">PUBLISH</a>
|
||||
<a class="edit-button" target="_blank" href="{{ $.Site.Params.sandpointsGiteaUrl }}"> ? </a>
|
||||
</div>
|
||||
{{ else }}
|
||||
{{ $editPage := $.Site.GetPage "/edit" }}
|
||||
<div class="headiter" id="preview">
|
||||
<a class="edit-button" href="{{ $editPage.RelPermalink }}index.html?edit={{ .File.UniqueID }}">EDIT_THIS</a>
|
||||
{{ with $scratch.core }}<a class="edit-button" href="{{ $editPage.RelPermalink }}index.html?new={{ index . 0 }}">ADD_{{ index . 0 | upper }}</a>{{ end }}
|
||||
{{ with $scratch.mantle }}<a class="edit-button" href="{{ $editPage.RelPermalink }}index.html?new={{ index . 0 }}">ADD_{{ index . 0 | upper }}</a>{{ end }}
|
||||
{{ with $scratch.crust }}<a class="edit-button" href="{{ $editPage.RelPermalink }}index.html?new={{ index . 0 }}">ADD_{{ index . 0 | upper }}</a>{{ end }}
|
||||
{{ if not $scratch.core }}<a class="edit-button" href="{{ $editPage.RelPermalink }}index.html?new={{ $currentDir }}">ADD_{{ substr $currentDir 0 -1 | upper }}</a>{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
<div class="header">
|
||||
|
@ -43,6 +53,9 @@
|
|||
<img src="/images/bibliotheke.svg" />
|
||||
</a>
|
||||
<div class="breadcrumbs">
|
||||
{{ if and (not $scratch.depth) $.Site.Params.sandpointsHome }}
|
||||
<a href="{{ with $.GetPage $.Site.Params.sandpointsHome }}{{ .RelPermalink }}{{ end }}{{ if eq hugo.Environment "offline" }}index.html{{ end }}"><span class="supt">{{ with $.GetPage $.Site.Params.sandpointsHome }}{{ substr .Title 0 1 }}</span><i>{{ substr .Title 1 }}</i></a>{{ end }}
|
||||
{{ end }}
|
||||
{{ if eq $scratch.depth "mantle" }}
|
||||
{{ with gt (len $scratch.is_in) 1 }}
|
||||
<div class="ddmenu">
|
||||
|
|
|
@ -8,6 +8,8 @@
|
|||
{{ $currentFile := (printf "/%s" .File) }}
|
||||
{{ $scratch := $s.Get $currentFile }}
|
||||
|
||||
{{ $longestTitle := "" }}
|
||||
|
||||
<div id="ph-{{ .File.UniqueID }}" class="{{ $scratch.depth | default "crust" }}title"><span class="supt">{{ substr $currentDir 0 -1 }}⁄</span>{{ .Title }}</div>
|
||||
|
||||
<div class="grid">
|
||||
|
@ -64,7 +66,13 @@
|
|||
<div class="{{ $scratch.child_depth }} crustoc">
|
||||
<a class="toc" href="#ph-{{ .File.UniqueID }}"><span><span class="back">{{ .Title }} {{with $authors}}({{ $authors }}){{ end }}</span></span></a>
|
||||
</div>
|
||||
{{ if gt (len .Title) (len $longestTitle) }}
|
||||
{{ $longestTitle = .Title }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
<div class="{{ $scratch.child_depth }} crustoc longesttitle">
|
||||
<a class="toc" href="javascript:;"><span><span class="back">{{ $longestTitle }}.....</span></span></a>
|
||||
</div>
|
||||
</div></div>
|
||||
{{ end }}
|
||||
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
<p>_Dir: {{ $currentName }}</p>
|
||||
{{ partial "readdir.html" $currentName }}
|
||||
{{ else }}
|
||||
<p>_File: {{ $currentName }}
|
||||
{{ if eq (path.Ext .Name) ".md" }}
|
||||
{{ $f := readFile $currentName }}
|
||||
<textarea wrap="off" col="108" row="48 ">{{ $f }}</textarea>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<script type="text/javascript">var relPathDepth = {{- .RelPermalink | strings.Count "/" -}};</script>
|
||||
<script type="text/javascript">var relPathDepth = {{- .RelPermalink | strings.Count "/" -}};var sandpointsPageId = "{{- with .File -}}{{- .UniqueID -}}{{- end -}}";</script>
|
||||
{{ $sjsopts := dict "targetPath" "js/sandpoints.js" "minify" "true"}}
|
||||
{{ $sjs := resources.Get "js/sandpoints.js" | js.Build $sjsopts }}
|
||||
<script defer src='{{ $sjs.RelPermalink }}' type="application/javascript"></script>
|
||||
|
|
|
@ -9,6 +9,8 @@
|
|||
{{ $scratch := $s.Get $currentFile }}
|
||||
|
||||
{{ $sandnamePlural := (slice) }}
|
||||
{{ $sandnameSingular := "" }}
|
||||
{{ $mentionLink := "" }}
|
||||
|
||||
<div class="{{ $scratch.depth | default "crust" }}title"><span class="supt">{{ substr $currentDir 0 -1 }}⁄{{ substr .Title 0 1 }}</span>{{ substr .Title 1 }}</div></div>
|
||||
|
||||
|
@ -31,12 +33,17 @@
|
|||
{{ $mentions := intersect $paramsKeys $sandnamePlural }}
|
||||
{{ range $mention := $mentions }}
|
||||
{{ range $k, $m := index $currentNode.Params $mention }}
|
||||
{{ $mentionLink := printf "/%s/%s" (substr $mention 0 -1) $m }}
|
||||
{{ range $k, $v := $.Site.Data.sandpointsnamegraph }}
|
||||
{{ if eq $v $mention }}
|
||||
{{ $mentionLink = printf "/%s/%s" $k $m }}
|
||||
{{ $sandnameSingular = $k }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{- with $.GetPage $mentionLink -}}
|
||||
{{- with not $k -}}
|
||||
{{ $closeDivs = true }}
|
||||
<div class="has hasauthors">
|
||||
<div class="hassup">{{ with (index $currentNode.Params $mention) }}{{ if gt (len (index $currentNode.Params $mention)) 1 }}{{ $mention }}{{ else }}{{ substr $mention 0 -1 }}{{ end }}{{ end }}⁄</div>
|
||||
<div class="hassup">{{ with (index $currentNode.Params $mention) }}{{ if gt (len (index $currentNode.Params $mention)) 1 }}{{ $mention }}{{ else }}{{ $sandnameSingular }}{{ end }}{{ end }}⁄</div>
|
||||
<div class="afterhas">
|
||||
{{- end -}}
|
||||
<div class="crust">
|
||||
|
@ -44,8 +51,8 @@
|
|||
</div>
|
||||
{{- end -}}
|
||||
{{ end }}
|
||||
{{- with $closeDivs -}}</div></div>{{ end }}
|
||||
{{ end }}
|
||||
{{- with $closeDivs -}}</div></div>{{ end }}
|
||||
|
||||
{{ if in .Page.Site.Params.sandpointsMentionedIn (substr $currentDir 0 -1) }}
|
||||
<div class="has hasmentionedin">
|
||||
|
@ -92,4 +99,7 @@
|
|||
|
||||
{{ with .Page.Params.abstract }}<div class="abstract"><span class="supt">abstract⁄</span>{{ . | $.Page.RenderString | htmlUnescape | safeHTML }}</div>{{ end }}
|
||||
|
||||
{{- $vld := false -}}{{- range $k, $v := .Page.Params.keywords -}}{{- if eq $k 0 -}}{{- $vld = true -}}<div class="keywords"><span class="sup">keywords⁄</span>{{- $v -}}{{- else -}}, {{- $v -}}{{- end -}}{{- end -}}{{- with $vld -}}</div>{{- end -}}
|
||||
{{- $vld := false -}}{{- range $k, $v := .Page.Params.keywords -}}{{- if eq $k 0 -}}{{- $vld = true -}}<div class="keywords"><span class="sup">keywords⁄</span><a href="/keywords/{{ urlize $v }}/{{ if eq hugo.Environment "offline" }}index.html{{ end }}">{{- $v -}}</a>{{- else -}}, <a href="/keywords/{{ urlize $v }}/{{ if eq hugo.Environment "offline" }}index.html{{ end }}">{{- $v -}}</a>{{- end -}}{{- end -}}{{- with $vld -}}</div>{{- end -}}
|
||||
|
||||
{{ $var := printf "repo={\"frontmatter\": %s, \"content\": %s, \"path\": \"%s\", \"relpermalink\": \"%s\" }" (jsonify .Params) (jsonify .RawContent) .File.Path .RelPermalink | resources.FromString (printf "js/repo/%s.js" .File.UniqueID) }}
|
||||
{{ $dummy := $var.Permalink }}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
<html lang="{{ with .Site.LanguageCode }}{{ . }}{{- else -}}en-us{{- end -}}">
|
||||
<head>
|
||||
{{- partialCached "head.html" . -}}
|
||||
{{- partial "head.html" . -}}
|
||||
{{- partial "pagedjs.html" . -}}
|
||||
</head>
|
||||
<body>
|
||||
|
|
12
_vendor/git.sandpoints.org/Drawwell/SandpointsTheme/layouts/taxonomy/baseof.html
generated
Normal file
12
_vendor/git.sandpoints.org/Drawwell/SandpointsTheme/layouts/taxonomy/baseof.html
generated
Normal file
|
@ -0,0 +1,12 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="{{ with .Site.LanguageCode }}{{ . }}{{ else }}en-us{{ end }}">
|
||||
<head>
|
||||
{{- partialCached "head.html" . -}}
|
||||
<title>{{- .Title }} - {{ .Site.Title -}}</title>
|
||||
{{- partialCached "sandpointjs.html" . .RelPermalink -}}
|
||||
</head>
|
||||
<body>
|
||||
{{- block "keywords" . -}}{{- end -}}
|
||||
{{- partialCached "footer.html" . -}}
|
||||
</body>
|
||||
</html>
|
23
_vendor/git.sandpoints.org/Drawwell/SandpointsTheme/layouts/taxonomy/list.html
generated
Normal file
23
_vendor/git.sandpoints.org/Drawwell/SandpointsTheme/layouts/taxonomy/list.html
generated
Normal file
|
@ -0,0 +1,23 @@
|
|||
{{ define "keywords" }}
|
||||
{{ $p := split (trim .RelPermalink "/") "/" }}
|
||||
{{ if eq (len $p) 1 }}
|
||||
<div class="coretitle"><span class="supt">{{ index $p 0 }}⁄</span>All</div>
|
||||
{{ range $taxonomyname, $taxonomy := .Site.Taxonomies }}
|
||||
{{ if eq (index $p 0) $taxonomyname }}
|
||||
{{ range $key, $value := $taxonomy }}
|
||||
<span> <a href="/{{ index $p 0 }}/{{ $key }}/{{ if eq hugo.Environment "offline" }}index.html{{ end }}">{{ $key }}</a>({{ len (index (index $.Site.Taxonomies $taxonomyname) $key) }})</span>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
<div class="coretitle"><span class="supt">{{ index $p 0 }}⁄</span>{{ index $p 1 }}</div>
|
||||
{{ range .Pages.ByDate.Reverse }}
|
||||
<div class="blog-date">{{ .Date.Format "Jan 2, 2006" }}</div>
|
||||
<div class="blog-title"><a href="{{ .RelPermalink }}{{ if eq hugo.Environment "offline" }}index.html{{ end }}">{{ .Title }}</a></div>
|
||||
{{ range $n, $authorFile := .Params.authors }}
|
||||
{{ $author := $.GetPage (printf "/author/%s" $authorFile) }}
|
||||
<span class="blog-author"><a href="{{ $author.RelPermalink }}">{{ $author.Title }}</a></span>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
|
@ -200,7 +200,8 @@
|
|||
bottom: 0
|
||||
}
|
||||
|
||||
.crustoc::after {
|
||||
a.toc::before {
|
||||
direction: rtl;
|
||||
content: " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . "" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ";
|
||||
line-height: 0;
|
||||
height: 1px;
|
||||
|
@ -233,4 +234,9 @@
|
|||
ol[data-split-from] {
|
||||
padding-left: 0.5rem;
|
||||
}
|
||||
|
||||
.longesttitle {
|
||||
visibility: hidden;
|
||||
cursor: default;
|
||||
}
|
||||
}
|
||||
|
|
2
_vendor/git.sandpoints.org/Drawwell/SandpointsTheme/static/css/site.min.css
generated
vendored
2
_vendor/git.sandpoints.org/Drawwell/SandpointsTheme/static/css/site.min.css
generated
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
BIN
_vendor/git.sandpoints.org/Drawwell/SandpointsTheme/static/logo/800x418.png
generated
Normal file
BIN
_vendor/git.sandpoints.org/Drawwell/SandpointsTheme/static/logo/800x418.png
generated
Normal file
Binary file not shown.
After Width: | Height: | Size: 21 KiB |
BIN
_vendor/git.sandpoints.org/Drawwell/SandpointsTheme/static/logo/800x800.png
generated
Normal file
BIN
_vendor/git.sandpoints.org/Drawwell/SandpointsTheme/static/logo/800x800.png
generated
Normal file
Binary file not shown.
After Width: | Height: | Size: 37 KiB |
145
_vendor/git.sandpoints.org/Drawwell/SandpointsTheme/static/logo/index.html
generated
Normal file
145
_vendor/git.sandpoints.org/Drawwell/SandpointsTheme/static/logo/index.html
generated
Normal file
|
@ -0,0 +1,145 @@
|
|||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
<head><meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="msapplication-TileColor" content="#da532c">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
<html class="no-js" lang="">
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: "Great Vibes";
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url("../fonts/great-vibes-v7-latin-ext_latin-regular.eot");
|
||||
/* IE9 Compat Modes */
|
||||
src: local("Great Vibes"), local("GreatVibes-Regular"),
|
||||
url("../fonts/great-vibes-v7-latin-ext_latin-regular.eot?#iefix")
|
||||
format("embedded-opentype"),
|
||||
/* IE6-IE8 */ url("great-vibes-v7-latin-ext_latin-regular.woff2")
|
||||
format("woff2"),
|
||||
/* Super Modern Browsers */
|
||||
url("../fonts/great-vibes-v7-latin-ext_latin-regular.woff") format("woff"),
|
||||
/* Modern Browsers */
|
||||
url("../fonts/great-vibes-v7-latin-ext_latin-regular.ttf")
|
||||
format("truetype"),
|
||||
/* Safari, Android, iOS */
|
||||
url("../fonts/great-vibes-v7-latin-ext_latin-regular.svg#GreatVibes")
|
||||
format("svg");
|
||||
/* Legacy iOS */
|
||||
}
|
||||
|
||||
.content {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
.sandpointslogosize {
|
||||
font-size: 15rem;
|
||||
}
|
||||
|
||||
.sandpointlogo {
|
||||
border-radius: 50%;
|
||||
border: 0.3em solid red;
|
||||
display: inline-flex;
|
||||
font-family: "Great Vibes", cursive;
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
color: white;
|
||||
background-color: red;
|
||||
position: relative;
|
||||
padding-left: 1em;
|
||||
padding-right: 0.2em;
|
||||
padding-bottom: 1.2em;
|
||||
max-width: 0em;
|
||||
max-height: 0em;
|
||||
}
|
||||
|
||||
.sandpointF {
|
||||
position: absolute;
|
||||
font-size: 1.2em;
|
||||
margin-top: -0.2em;
|
||||
margin-left: -0.44em;
|
||||
}
|
||||
|
||||
.sandpointN {
|
||||
position: absolute;
|
||||
font-size: 0.9em;
|
||||
margin-top: 0.2em;
|
||||
color: red;
|
||||
margin-left: -0.45em;
|
||||
}
|
||||
|
||||
.sandpointC {
|
||||
position: absolute;
|
||||
font-size: 1em;
|
||||
margin-left: -0.4em;
|
||||
margin-top: -0.04em;
|
||||
padding-bottom: 2;
|
||||
}
|
||||
|
||||
@media print {
|
||||
.sandpointlogo {
|
||||
border-radius: 50%;
|
||||
border: 0.3em solid red;
|
||||
display: inline-flex;
|
||||
font-family: "Great Vibes", cursive;
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
color: white;
|
||||
background-color: red;
|
||||
position: relative;
|
||||
padding-left: 1em;
|
||||
padding-right: 0.2em;
|
||||
padding-bottom: 1.2em;
|
||||
max-width: 0em;
|
||||
max-height: 0em;
|
||||
}
|
||||
|
||||
.sandpointF {
|
||||
position: absolute;
|
||||
font-size: 1.2em;
|
||||
margin-top: -0.2em;
|
||||
margin-left: -0.44em;
|
||||
}
|
||||
|
||||
.sandpointN {
|
||||
position: absolute;
|
||||
font-size: 0.9em;
|
||||
margin-top: 0.2em;
|
||||
color: red;
|
||||
margin-left: -0.45em;
|
||||
}
|
||||
|
||||
.sandpointC {
|
||||
position: absolute;
|
||||
font-size: 1em;
|
||||
margin-left: -0.4em;
|
||||
margin-top: -0.04em;
|
||||
padding-bottom: 2;
|
||||
}
|
||||
|
||||
.content {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.sandpointslogosize {
|
||||
font-size: 15rem;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="content">
|
||||
<div class="sandpointslogosize">
|
||||
<div class="sandpointlogo">
|
||||
<span class="sandpointF">ß</span>
|
||||
<span class="sandpointN">•</span>
|
||||
<span class="sandpointC">:</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1 +1 @@
|
|||
# git.sandpoints.org/Drawwell/SandpointsTheme v0.0.0-20210314123921-28595383157a
|
||||
# git.sandpoints.org/Drawwell/SandpointsTheme v0.0.0-20221212163146-fea2002f3205
|
||||
|
|
117
config.toml
117
config.toml
|
@ -5,38 +5,37 @@ relativeurls = true
|
|||
disableKinds = ["RSS", "sitemap"]
|
||||
|
||||
[taxonomies]
|
||||
keyword = "keywords"
|
||||
keyword = "keywords"
|
||||
|
||||
[params]
|
||||
description = "Some description should land here..."
|
||||
images = ["/UNS-logo.png"]
|
||||
title = "Dotawo Journal"
|
||||
sandpointsGiteaUrl = "https://git.sandpoints.org/UnionForNubianStudies/Dotawo"
|
||||
sandpointsCatalogPrefix = "/library/"
|
||||
sandpointsCatalogName = "dotawo"
|
||||
sandpointsMentionedIn = ["annex", "author", "editor"]
|
||||
description = "Some description should land here..."
|
||||
images = ["/UNS-logo.png"]
|
||||
sandpointsGiteaUrl = "https://git.sandpoints.org/UnionForNubianStudies/Dotawo"
|
||||
sandpointsCatalogPrefix = "/library/"
|
||||
sandpointsCatalogName = "dotawo"
|
||||
sandpointsMentionedIn = ["annex", "author", "editor"]
|
||||
|
||||
[outputFormats]
|
||||
[outputFormats.js]
|
||||
isPlainText = true
|
||||
mediaType = "application/javascript"
|
||||
[outputFormats.js]
|
||||
isPlainText = true
|
||||
mediaType = "text/javascript"
|
||||
|
||||
[outputs]
|
||||
list = ["html", "js"]
|
||||
list = ["html", "js"]
|
||||
|
||||
[markup]
|
||||
[markup.tableOfContents]
|
||||
endLevel=4
|
||||
ordered = true
|
||||
startLevel = 1
|
||||
[markup.tableOfContents]
|
||||
endLevel=4
|
||||
ordered = true
|
||||
startLevel = 1
|
||||
|
||||
[markup.goldmark.renderer]
|
||||
unsafe = true
|
||||
unsafe = true
|
||||
|
||||
[module]
|
||||
# replacements = "git.sandpoints.org/Drawwell/SandpointsTheme -> /home/m/devel/SandpointsTheme"
|
||||
[[module.imports]]
|
||||
path = "git.sandpoints.org/Drawwell/SandpointsTheme"
|
||||
# replacements = "git.sandpoints.org/Drawwell/SandpointsTheme -> /home/m/devel/SandpointsTheme"
|
||||
[[module.imports]]
|
||||
path = "git.sandpoints.org/Drawwell/SandpointsTheme"
|
||||
|
||||
# if only [[module.imports]]'s path is provided
|
||||
# and repo is made into hugo module (hugo mod init repo_name)
|
||||
|
@ -45,42 +44,42 @@ disableKinds = ["RSS", "sitemap"]
|
|||
# if repo needs some specific customization the rest of the
|
||||
# mounts below should be added respectively
|
||||
#
|
||||
[[module.imports.mounts]]
|
||||
source = "archetypes"
|
||||
target = "archetypes"
|
||||
[[module.imports.mounts]]
|
||||
source = "assets"
|
||||
target = "assets"
|
||||
[[module.imports.mounts]]
|
||||
source = "data"
|
||||
target = "data"
|
||||
[[module.imports.mounts]]
|
||||
source = "layouts"
|
||||
target = "layouts"
|
||||
[[module.imports.mounts]]
|
||||
source = "static"
|
||||
target = "static"
|
||||
[[module.imports.mounts]]
|
||||
source = "customizations/Dotawo/static/fonts"
|
||||
target = "static/fonts"
|
||||
[[module.imports.mounts]]
|
||||
source = "customizations/Dotawo/assets/css/site.css"
|
||||
target = "assets/css/site.css"
|
||||
[[module.imports.mounts]]
|
||||
source = "customizations/Dotawo/static/css/site.min.css"
|
||||
target = "static/css/site.min.css"
|
||||
[[module.imports.mounts]]
|
||||
source = "customizations/Dotawo/static/css/dyn.css"
|
||||
target = "static/css/dyn.css"
|
||||
[[module.imports.mounts]]
|
||||
source = "customizations/Dotawo/layouts/partials/header.html"
|
||||
target = "layouts/partials/header.html"
|
||||
[[module.imports.mounts]]
|
||||
source = "customizations/Dotawo/layouts/partials/singlebody.html"
|
||||
target = "layouts/partials/singlebody.html"
|
||||
[[module.imports.mounts]]
|
||||
source = "customizations/Dotawo/layouts/_default/_markup/render-image.html"
|
||||
target = "layouts/_default/_markup/render-image.html"
|
||||
[[module.imports.mounts]]
|
||||
source = "customizations/Dotawo/layouts/_default/_markup/render-link.html"
|
||||
target = "layouts/_default/_markup/render-link.html"
|
||||
[[module.imports.mounts]]
|
||||
source = "archetypes"
|
||||
target = "archetypes"
|
||||
[[module.imports.mounts]]
|
||||
source = "assets"
|
||||
target = "assets"
|
||||
[[module.imports.mounts]]
|
||||
source = "data"
|
||||
target = "data"
|
||||
[[module.imports.mounts]]
|
||||
source = "layouts"
|
||||
target = "layouts"
|
||||
[[module.imports.mounts]]
|
||||
source = "static"
|
||||
target = "static"
|
||||
[[module.imports.mounts]]
|
||||
source = "customizations/Dotawo/static/fonts"
|
||||
target = "static/fonts"
|
||||
[[module.imports.mounts]]
|
||||
source = "customizations/Dotawo/assets/css/site.css"
|
||||
target = "assets/css/site.css"
|
||||
[[module.imports.mounts]]
|
||||
source = "customizations/Dotawo/static/css/site.min.css"
|
||||
target = "static/css/site.min.css"
|
||||
[[module.imports.mounts]]
|
||||
source = "customizations/Dotawo/static/css/dyn.css"
|
||||
target = "static/css/dyn.css"
|
||||
[[module.imports.mounts]]
|
||||
source = "customizations/Dotawo/layouts/partials/header.html"
|
||||
target = "layouts/partials/header.html"
|
||||
[[module.imports.mounts]]
|
||||
source = "customizations/Dotawo/layouts/partials/singlebody.html"
|
||||
target = "layouts/partials/singlebody.html"
|
||||
[[module.imports.mounts]]
|
||||
source = "customizations/Dotawo/layouts/_default/_markup/render-image.html"
|
||||
target = "layouts/_default/_markup/render-image.html"
|
||||
[[module.imports.mounts]]
|
||||
source = "customizations/Dotawo/layouts/_default/_markup/render-link.html"
|
||||
target = "layouts/_default/_markup/render-link.html"
|
||||
|
|
|
@ -47,27 +47,27 @@ with the sole focus on men. The participation of women and their
|
|||
experiences are rarely addressed.[^11] War and violence in ancient Sudan
|
||||
are fields still largely dominated by male authors.[^12] This
|
||||
androcentric perspective rarely takes into account gender as a social
|
||||
category, and tends to implicitly a focus only on combatant men. As a
|
||||
category and tends to implicitly focus only on combatant men. As a
|
||||
result, we are left with numerous valuable contributions on Kushite
|
||||
representations of war, enemies, weaponry etc. However, a gender
|
||||
perspective is lacking in almost all of them. This does not mean that
|
||||
the effort to find women in such contexts or to relate them to women is
|
||||
that which is lacking, although this is true too. What is missing is a
|
||||
the effort to find women in such contexts or to relate these contexts to women is
|
||||
that which is lacking, although this is true too. What is missing, is a
|
||||
perspective on both masculinity and femininity as socio-culturally
|
||||
determined categories coming from a specific gender system. Until
|
||||
recently, this was also the case in Egyptology. However, some recent
|
||||
studies focusing on war in ancient Egypt have shown the potential of
|
||||
implementing ideas and concepts coming from gender studies.[^13] One of
|
||||
these concepts is the frames of war. The concept of the frames of war
|
||||
these concepts is the 'frames of war'. The concept of the frames of war
|
||||
was developed by American philosopher Judith Butler, who demonstrated
|
||||
the way some political forces frame violence in the modern media. Frames
|
||||
the way some political forces frame violence in modern media. Frames
|
||||
of war are operations of power which seek to contain, convey, and
|
||||
determine what is seen and what is real.[^14] They are the ways of
|
||||
selectively carving up experience as essential to the conduct of
|
||||
war.[^15] Butler argues that, by regulating perspective in addition to
|
||||
content, state authorities are clearly interested in controlling the
|
||||
visual modes of participation in war.[^16] The study by Butler on frames
|
||||
of war is essential for our understanding of how the modern media
|
||||
of war is essential for our understanding of how modern media
|
||||
creates the experience of war, whether and where they find a place for
|
||||
non-combatants, and how victory and defeat are presented. In this
|
||||
process, different genders are represented as differently positioned,
|
||||
|
@ -81,10 +81,10 @@ Napatan and Meroitic periods. I will first focus on non-combatants in
|
|||
texts, by analysing the attestations of prisoners of war of differing
|
||||
ages and genders. The lists of spoils of war demonstrate a structure
|
||||
based on a hierarchy based on status, age, and gender intersectionality.
|
||||
The term intersectionality is one of the central tenets of black
|
||||
Intersectionality is one of the central tenets of black
|
||||
feminist theory. It is based on the fact that oppression is not
|
||||
monocausal, as for example in the USA it is not based either on race or
|
||||
on gender. Rather, an intersection of race and gender makes some more
|
||||
on gender. Rather, an intersection of race and gender makes some individuals more
|
||||
oppressed or oppressed in a different way than others.[^18] This
|
||||
analysis of the attestations of non-combatants is followed by an
|
||||
analysis of a currently unique representation of women and children as
|
||||
|
@ -94,12 +94,12 @@ texts in order to demonstrate how gender was used to structure hierarchy
|
|||
and to position the Kushite king as masculine and his enemies as
|
||||
feminine. I argue that, in this way, gender framed both relations in war
|
||||
and hierarchies within the society of ancient Sudan. I also discuss
|
||||
evidence for the participation of Kushite royal women in war, and stress
|
||||
evidence for the participation of Kushite royal women in war and stress
|
||||
that the sources at our disposal are providing us with an outsider
|
||||
(Graeco-Roman) perspective, rather than a local perspective. Finally, I
|
||||
(Graeco-Roman) perspective rather than a local perspective. Finally, I
|
||||
discuss the specifics of scenes in which Meroitic royal women are
|
||||
smiting enemies by comparing these scenes to others from ancient Egypt.
|
||||
I argue that the observed differences are related to a different
|
||||
I argue that the observed differences relate to a different
|
||||
understanding of the relation between kingship and queenship in these
|
||||
two societies.
|
||||
|
||||
|
@ -107,7 +107,7 @@ two societies.
|
|||
|
||||
## Textual Evidence
|
||||
|
||||
The taking of prisoners of war is a well attested ancient war
|
||||
The taking of prisoners of war is a well-attested ancient war
|
||||
practice.[^19] Enemies of different gender, age, and status were also
|
||||
imprisoned during war in ancient Nubia. Although the practice surely
|
||||
must have been older, the first textual attestations come from the reign
|
||||
|
@ -128,8 +128,8 @@ land.[^22] A granite stela from Karnak (line 3), attributed to Taharqa
|
|||
by Donald B. Redford, also mentions children of rulers, and later (lines
|
||||
11-13) refers to the settling of a population with its cattle in
|
||||
villages. This possibly refers to the settlement of the prisoners of
|
||||
war, among which were the above-mentioned children.[^23] A more
|
||||
securely-dated example of men and women (total: 544) seemingly presented
|
||||
war among which the above-mentioned children.[^23] A more
|
||||
securely-dated example of men and women (total: 544), seemingly presented
|
||||
as spoils of war during the reign of Taharqa, and enumerated according
|
||||
to ethnonyms or toponyms, can be found in his long inscription from
|
||||
Sanam.[^24]
|
||||
|
@ -153,10 +153,10 @@ BC, the king states that he gave a total of 110 men and women to Amun of
|
|||
Napata.[^29] As noted by Jeremy Pope, there is no reason to impose here
|
||||
an artificial distinction between a donation text and a record of
|
||||
war.[^30] In fact, there is also no such division in ancient Egyptian
|
||||
records of war, and the Kushite records of war bear many similarities to
|
||||
records of war and the Kushite records of war bear many similarities to
|
||||
those of ancient Egypt, especially when lists of spoils of war are
|
||||
concerned. Nastasen also claims (lines 46-49) that he captured Ayonku,
|
||||
the ruler connected to the rebels, and that he took all the women, all
|
||||
the ruler connected to the rebels and that he took all the women, all
|
||||
the cattle, and much gold. The list mentions 2,236 women.[^31] Compared
|
||||
to the number of men and women given to the temple of Amun at Napata,
|
||||
this is a significantly larger number, which indicates that a majority
|
||||
|
@ -178,10 +178,10 @@ men, women and children. No difference is made between male and female
|
|||
children. This demonstrates an intersectional hierarchy based on status,
|
||||
gender, and age. The enemy ruler was the most valued, then came enemy
|
||||
men, women and children, in that same order. An interesting question is
|
||||
if this intersectional hierarchy mirrors that of the ancient Sudanese
|
||||
society, or if it was only imposed on its enemies. That male and female
|
||||
prisoners of war together with children, including even those of the
|
||||
foreign rulers, were donated to the temples, comes as no surprise. The
|
||||
if this intersectional hierarchy mirrors that of ancient Sudanese
|
||||
society or if it was only imposed on its enemies. That male and female
|
||||
prisoners of war feature together with children, including even those of
|
||||
foreign rulers donated to temples, comes as no surprise. The
|
||||
individual temples of Amun in Kush also functioned as centres of
|
||||
territorial government and redistribution.[^37] Some lines in the Annals
|
||||
of Nastasen refer to imprisoned women in a rhetorical manner, stating
|
||||
|
@ -190,7 +190,7 @@ providing a number like in earlier sources.
|
|||
|
||||
Currently, the textual evidence written in Merotic script is very
|
||||
scarce, and our current understanding of the language is not on a level
|
||||
which would allow a detailed reading of most of the preserved texts.
|
||||
which allows for a detailed reading for most preserved texts.
|
||||
Nevertheless, several experts in Meroitic language and script have
|
||||
recognized the mentioning of prisoners of war in the Hamadab Stela of
|
||||
Amanirenas and Akinidad (British Museum 1650) from the late 1st
|
||||
|
@ -201,8 +201,8 @@ Aswan (Meroitic "Sewane"), Qasr Ibrim (Meroitic "Pedeme"), and Napata
|
|||
("Npte"). According to Rilly, the stela also mentions the beginning of
|
||||
the war in its 3rd and 4th lines: "the Tmey have enslaved all the men,
|
||||
all the women, all the girls and all the boys".[^39] Interestingly, if
|
||||
Rilly´s reading is correct, this would mean that when Meroitic folk are
|
||||
taken as prisoners by enemies, a gender differentiation is made even for
|
||||
Rilly´s reading is correct, this would mean that when Meroitic folk were
|
||||
taken as prisoners by enemies, a gender differentiation was made among
|
||||
children and/or adolescents. The following discussion will focus on the
|
||||
possible iconographic evidence of the conflict between Meroe and Rome.
|
||||
|
||||
|
@ -219,76 +219,76 @@ Garstang first investigated the temple in 1910-1911 together with
|
|||
Archibald H. Sayce. The temple M250 was investigated further by
|
||||
Friedrich Hinkel from 1984 to 1985. He dated it to the late 1st century
|
||||
BC and early 1st century AD because of the royal cartouches of Akinidad
|
||||
found on fallen blocks of the cella north wall.[^40] The earliest temple
|
||||
found on fallen blocks of the cella's north wall.[^40] The earliest temple
|
||||
on the site, which is northwest of M250, had probably already been built
|
||||
in Aspelta's reign (the beginning of the 6th century BC) in the form of
|
||||
a cella on the top of a podium.[^41] According to László Török, the
|
||||
a cella on top of a podium.[^41] According to László Török, the
|
||||
temple was dedicated in its later form to the cult of Re or, more
|
||||
precisely, to the unification of Amun with Re.[^42] Hinkel interpreted
|
||||
it more carefully as a temple of Amun.[^43]
|
||||
|
||||
So far, the battle reliefs of M250 were analyzed by several authors. It
|
||||
is Hinkel who published the temple and gave the most detailed
|
||||
description and analysis of the relief blocks to-date.[^44] According to
|
||||
Török, the decoration of the facades had a "historically" formulated
|
||||
description and analysis of the relief blocks to date.[^44] According to
|
||||
Török, the decoration of the façades had a "historically" formulated
|
||||
triumphal aspect.[^45]. Before the publication of the temple by Hinkel,
|
||||
Steffen Wenig assigned them to the reign of Aspelta because his stela
|
||||
was found on the site. Wenig related the reliefs to the ones from the
|
||||
B500 temple of Amun at Gebel Barkal, not knowing at that time that they
|
||||
predate M250.[^46] Inge Hofmann analysed the war reliefs in detail
|
||||
predate M250.[^46] Inge Hofmann analyzed the war reliefs in detail
|
||||
regarding the weapons and equipment worn by the Meroites and emphasized
|
||||
that the weapons they use are post-Napatan. Based on the kilts and hair
|
||||
feathers worn by some of the enemies of Meroites in these scenes, she
|
||||
concluded that they are southerners but that they cannot be identified
|
||||
with any specific Sudanese tribe.[^47] This type of enemy wearing a kilt
|
||||
concluded that they are southerners, but that they cannot be associated
|
||||
with any specific Sudanese community.[^47] This type of enemy wearing a kilt
|
||||
and feathers is also found as a bound prisoner on the pylon of the tomb
|
||||
chapel of Begrawiya North 6 (the tomb of Amanishakheto).[^48] It is also
|
||||
depicted on the east wall painting from the small temple M292, better
|
||||
known because of the head of a statue of Augustus which was buried in
|
||||
front of its entrance, as well as a representation of the so called
|
||||
known because of the head of a statue of Augustus, which was buried in
|
||||
front of its entrance, as well as a representation of the so-called
|
||||
Roman prisoner on the same wall painting.[^49] According to Florian Wöß,
|
||||
this type of enemy can be classified as an Inner African Type. It is
|
||||
most numerous among Meroitic depictions of enemies, and Wöß argues that
|
||||
most numerous among Meroitic depictions of enemies and Wöß argues that
|
||||
it could have therefore represented a real threat to the Meroites.[^50]
|
||||
This conclusion corresponds well with the interpretation of the Meroitic
|
||||
kingdom having a heartland in the Nile Valley, at Keraba, and perhaps
|
||||
also the southland, Meroitic kingdom was surrounded by various
|
||||
neighbouring communities that could have made a real threat and were
|
||||
This conclusion resonates well with the interpretation of the Meroitic
|
||||
kingdom as having a heartland in the Nile Valley, at Keraba, and perhaps
|
||||
also the southland. The Meroitic kingdom was surrounded by various
|
||||
neighbouring communities that could have posed a real threat and were
|
||||
only occasionally under Kushite control.[^51] As we have already seen,
|
||||
numerous texts refer to conflicts with these communities outside the
|
||||
realm of the Kushite kingdom.
|
||||
|
||||
Hinkel has already concluded that the north wall of M250 depicts women
|
||||
and children taken by the Meroites in their raid of the first cataract,
|
||||
as reported by Strabo in *Geography* (17. I. 54),[^52] and that the
|
||||
and children taken by the Meroites in their raid of the First Cataract,
|
||||
as reported by Strabo in *Geography* (17. I. 54),[^52], and that the
|
||||
south wall depicts a conflict with some southern population that the
|
||||
Meroites encountered in Lower Nubia.[^53] However, if Meroe is
|
||||
understood as the centre of the axis, then the enemies depicted on the
|
||||
south wall are unlikely to depict Lower Nubians. We know that during the
|
||||
last decades of the 1st century BC, Lower Nubia was not hostile to
|
||||
Meroe, and that, rather the contrary, it rebelled against Rome. Gaius
|
||||
Cornelius Gallus reports in his trilingual stela from Philae erected in
|
||||
29 BC that he placed a local tyrant to govern Triakontaschoinos (Lower
|
||||
southern wall are unlikely to depict Lower Nubians. We know that during the
|
||||
last decades of the 1st century BC Lower Nubia was not hostile to
|
||||
Meroe, but on contrary, that it rebelled against Rome. Gaius
|
||||
Cornelius Gallus reports in his trilingual stela from Philae, erected in
|
||||
29 BC, that he placed a local tyrant to govern Triakontaschoinos (Lower
|
||||
Nubia), which became part of the province of Egypt and established a
|
||||
personal patron/client relationship with the king of Meroe.[^54] This
|
||||
arrangement obliged inhabitants of Triakontaschoinos to pay taxes.[^55]
|
||||
Roman emperor Augustus then ordered Lucius Aelius Gallus, the second
|
||||
prefect of Egypt, to prepare a military expedition against province
|
||||
Arabia Felix. Aelius Gallus regrouped the forces stationed in Egypt and
|
||||
took c. 8000 of the 16.800 men in three legions and 5500 of the
|
||||
took c. 8000 of the 16800 men in three legions and 5500 of the
|
||||
auxiliary forces. The expedition was carried out in 26-25 BC and ended
|
||||
with Roman defeat. The inhabitants of Triakontaschoinos received the
|
||||
news of Aelius Gallus' failure in Arabia and revolted in the summer of
|
||||
25 BC. The aim of the revolt was to end the previously established
|
||||
status of Triakontaschoinos and the obligation of paying tax to Rome.
|
||||
Concurrently with this revolt, there were local rebellions against the
|
||||
Concurrent with this revolt, there were local rebellions against the
|
||||
pressure of taxation in Upper Egypt.[^56] The rebels might also have
|
||||
received help from the king of Meroe. Meroe probably tried to use the
|
||||
opportunity presented by the revolt in Triakontaschoinos and Upper Egypt
|
||||
to establish the northern frontier in the region of the First
|
||||
Cataract.[^57] Therefore, it is unlikely that the southern enemy
|
||||
depicted on the walls of temple M250 represents Lower Nubians. They were
|
||||
not hostile to Meroe at the time before the building of the temple M250
|
||||
not hostile toward Meroe at the time before the building of the temple M250
|
||||
under Akinidad. On the contrary, they were its allies in war with Rome.
|
||||
|
||||
Regarding the representations of women and children as prisoners of war,
|
||||
|
@ -323,26 +323,26 @@ in front of them, after which comes one more group of nude women and
|
|||
children. They are approached by oppositely-oriented men, probably in a
|
||||
battle. After them, the register continues in an east-west orientation
|
||||
towards a columned building, which is presumably a representation of a
|
||||
temple.[^61] Behind this columned building in the continuation of the
|
||||
register. There is a break here, after which comes poorly preserved
|
||||
temple.[^61] The register continues behind this columned building and
|
||||
there is a break here, after which comes poorly preserved
|
||||
representations of round huts and trees.[^62] Only the lower parts of
|
||||
the figures of women and children are preserved on the north wall, so it
|
||||
is hard to say more about them. However, the women and children seem to
|
||||
be nude. The gender of the children cannot be identified because the
|
||||
representations were later damaged in the genital area. There are two
|
||||
groups and in-between them there are cattle. The groups are flanked with
|
||||
groups and in between them there are cattle. The groups are flanked with
|
||||
men who lead them forward.
|
||||
|
||||
The south wall blocks with representations of women and children are not
|
||||
found *in situ,* but rather in the vicinity of the south wall. Some of
|
||||
them can be joined, and some of these joints present evidence for at
|
||||
The blocks of the southern wall, with representations of women and children, are not
|
||||
found *in situ*, but rather in the vicinity of the south wall. Some of
|
||||
them can be joined and some of these joints present evidence for at
|
||||
least two registers. In one case, the upper register of the two depicts
|
||||
both women and children as prisoners of war, while the lower register
|
||||
depicts ship-fragments 198, 322, 323, 319 and 190.[^63] The figures in
|
||||
the two registers are differently oriented. Additionally, one more boat
|
||||
representation with a head of a ram possibly indicates a relation to
|
||||
Amun (fragments 113 and 106).[^64] It is oriented in the same direction
|
||||
as the previous boat. On the blocks of the south wall, both men and
|
||||
as the previous boat. On the blocks of the south wall both men and
|
||||
women are depicted as prisoners of war next to children (Figure 2).
|
||||
|
||||
 of the south wall of M250")
|
||||
|
@ -377,9 +377,9 @@ sacking of Philae, Elephantine, and Syene by the Meroites,[^66] as
|
|||
reported by Strabo in Geography, 17. I. 54.[^67] The context of the war
|
||||
reliefs on the northern wall of the temple indeed indicates a northern
|
||||
conflict. It is interesting that the oval name rings for the toponyms or
|
||||
ethnonyms of the defeated enemies are left blank on the northern part of
|
||||
ethnonyms of defeated enemies are left blank on the northern part of
|
||||
the temple pylon (Figure 3),[^68] and were only filled in with Meroitic
|
||||
hieroglyphs on the south part of the temple pylon, which have thus far
|
||||
hieroglyphs on the southern part of the temple pylon, which have thus far
|
||||
not been identified with certainty.[^69] In the light of Strabo's
|
||||
Geography 17. I. 54, in which he writes that when told that they should
|
||||
go to Augustus, the Meroites answered they do not know who that
|
||||
|
@ -388,16 +388,16 @@ province of Egypt was unknown or insufficiently known to the Meroites.
|
|||
This explains the empty oval name rings on the northern part of the
|
||||
temple pylon. Except for the generic *Arome* referring to Rome[^71] and
|
||||
*Tmey* referring to the north,[^72] we do not know of any other Roman
|
||||
toponyms from Meroe so far, and it is likely that in the first century
|
||||
BC and first century AD, the Meroites indeed did not know of any others.
|
||||
toponyms from Meroe so far and it is likely that in the first century
|
||||
BC and first century AD the Meroites indeed did not know of any others.
|
||||
If the reliefs on the northern walls of the temple depict a Meroitic
|
||||
raid on the First Cataract sites, then we have to take into account that
|
||||
they imprisoned the local population, consisting also of women and
|
||||
children, and not only of men. These women and children could also have
|
||||
been local and not necessarily incomers after the Roman taking of Egypt.
|
||||
children and not only of men. These women and children could also have
|
||||
been local and not necessarily immigrants after the Roman takeover of Egypt.
|
||||
The iconographic evidence from M250 corresponds well with the textual
|
||||
attestations for the taking of prisoners of war of different ages and
|
||||
genders and allocating them to temples of Amun. Interestingly, just like
|
||||
genders, and allocates them to temples of Amun. Interestingly, just like
|
||||
in ancient Egyptian iconography of the New Kingdom, there is an absence
|
||||
of violence against women and children.[^73] Bearing in mind the idea
|
||||
that frames of war regulate what is reported and represented in various
|
||||
|
@ -405,20 +405,20 @@ media, we can consider the possibility that some realities of war such
|
|||
as violence against non-combatants were censured due to socially
|
||||
determined taste. Hurting women and children was probably considered a
|
||||
form of illegitimate violence and although it probably occurred, it was
|
||||
not communicated to local audience.
|
||||
not communicated to local audiences.
|
||||
|
||||
# Feminization of Enemies in Texts
|
||||
|
||||
The feminization of enemies is a common cross-cultural motif of war
|
||||
discourses, both textual and visual. As anthropologist Marilyn Strathern
|
||||
The feminization of enemies is a common cross-cultural motif in war
|
||||
discourse, both textual and visual. As anthropologist Marilyn Strathern
|
||||
argued, "relations between political enemies stand for relations between
|
||||
men and women".[^74] Numerous examples are known for this from ancient
|
||||
Egypt and Neo-Assyria, and these are extensively dealt with
|
||||
Egypt and Neo-Assyria and these are extensively dealt with
|
||||
elsewhere.[^75] Here, the focus will be on the feminization of enemies
|
||||
in Kushite war discourse.
|
||||
|
||||
One attestation for the feminization of enemies, with, to the best of my
|
||||
knowledge, no parallels, is found on the Triumphal Stela of Piye (Cairo
|
||||
One attestation for the feminization of enemies without parallels, to the best of my
|
||||
knowledge, is found on the Triumphal Stela of Piye (Cairo
|
||||
JE 48862, 47086-47089, lines 149-150), the founder of the 25th Dynasty
|
||||
of Egypt, who ruled between 744-714 BC: "Now these kings and counts of
|
||||
Lower Egypt came to behold His Majesty's beauty, their legs being the
|
||||
|
@ -428,47 +428,47 @@ translated this part of the text in a way that suggests that the legs of
|
|||
the kings and counts of Lower Egypt trembled like those of women.[^77]
|
||||
One has to stress that the adjective *tremblant* (French trembling) is
|
||||
not written in the text, but is rather assumed by Grimal. On the other
|
||||
hand, Hans Goedicke translates the text so that instead of legs, he
|
||||
interprets it as knees.[^78] According to Robert K. Ritner, this means
|
||||
hand, Hans Goedicke's translates rdwj=sn not as legs, but knees
|
||||
instead.[^78] According to Robert K. Ritner, this means
|
||||
that they were trembling in fear,[^79] and similarly, according to Amr
|
||||
el Hawary, this could indicate that the enemies of Piye had their legs
|
||||
el Hawary, this could indicate that enemies of Piye had their legs
|
||||
bent at the knees from fear.[^80] However, David O'Connor and Stephen
|
||||
Quirke understand the text as a metaphor for the femininity of Piye's
|
||||
enemies, because the legs of women are smooth skinned.[^81] Yet,
|
||||
enemies, because the legs of women are smooth-skinned.[^81] Yet,
|
||||
although both men and women shaved in Egypt and Nubia, we cannot assume
|
||||
that body hair removal was restricted only to women. For Nubia at least
|
||||
that body hair removal was restricted only to women. For Nubia, at least,
|
||||
this is indicated by the description of Kushites in the Bible as tall
|
||||
and smooth-skinned people (Isaiah 18: 7).[^82] Later in the text, it is
|
||||
stated that three of these kings and counts stayed outside the palace
|
||||
"because of their legs" (*r rdwj=sn*), and only one entered. el Hawary
|
||||
"because of their legs" (*r rdwj=sn*), and only one entered. El Hawary
|
||||
postulates that this could be related to the previous comparison with
|
||||
the legs of women.[^83] Another case is possibly alluded to later in the
|
||||
same text, when it is stated "You return having conquered Lower Egypt;
|
||||
same text when it states "You return having conquered Lower Egypt;
|
||||
making bulls into women" (*jw=k jy.tw* *ḥ3q.n=k T3-mḥw* *jr=k k3.w m
|
||||
ḥm.wt*).[^84] Bearing in mind that in the Instructions of Ankhsheshonqy
|
||||
(X, 20), an Egyptian text of the Ptolemaic period (305-30 BC), bulls are
|
||||
contrasted to the vulvas which should receive them[^85], we can argue
|
||||
that, in both cases, bulls stand for men, or at least masculinity, in
|
||||
both the human and animal world. It is interesting that on the Triumphal
|
||||
stela of Piye, women of the palace of the Lower Egyptian king Nimlot did
|
||||
pay homage to Piye "after the manner of women" (*m* *ḫt* *ḥmwt*).[^86]
|
||||
stela of Piye women from the palace of the Lower Egyptian king Nimlot
|
||||
paid homage to Piye "after the manner of women" (*m* *ḫt* *ḥmwt*).[^86]
|
||||
Maybe this indicates that there was also a manner in which men are
|
||||
supposed to pay homage to the king, and that the defeated kings and
|
||||
counts of Lower Egypt failed to do this, or at least the text wants us
|
||||
to believe that. The failed masculinity of Nimlot in the text of the
|
||||
stela was extensively studied most recently by Mattias Karlsson. Next to
|
||||
the motives already mentioned, additional arguments are rich and
|
||||
complex. Piye (Piankhi) is representing ideal masculinity contrasted
|
||||
complex. Piye (Piankhi) is representing ideal masculinity, contrasted
|
||||
with failed masculinity of Nimlot. This can be observed both in the text
|
||||
and in the iconography of the stela. For example, Nimlot is holding a
|
||||
sistrum, a musical instrument usually linked to women (e.g., priestesses
|
||||
of Hathor), and he stands behind his wife and usually the men are
|
||||
frontal figures. His wife speaks for him and appears as the head of his
|
||||
household.[^87] To these arguments, one can also add the fact that the
|
||||
sistrum, a musical instrument usually linked to women (e.g. priestesses
|
||||
of Hathor), while he is standing behind his wife and not depicted in the
|
||||
usual front-facing manner. His wife speaks for him and appears as the head of his
|
||||
household.[^87] To these arguments one can also add the fact that the
|
||||
silhouette of the defeated Egyptian princes in proskynesis differs in
|
||||
shape from usual representations of men. Their bodies seem to be curvier
|
||||
as in Kushite depictions of women. An allusion of sexual domination is
|
||||
not directly communicated but it might be that it was implied.
|
||||
not directly communicated, but it might have been implied.
|
||||
|
||||
There are other attestations of the feminization of enemies in texts
|
||||
composed for the Kushite kings. In the Annals of Harsiyotef (Cairo JE
|
||||
|
@ -478,8 +478,8 @@ of Mededet was sent to Harsiyotef, saying: "You are my god. I am your
|
|||
servant. I am a woman. Come to me" (*ntk p(3)=j* *nṯr* *jnk p(3)=k b3k*
|
||||
*jnk* *sḥmt* *my j-r=j*).[^88] In this attestation, we have a direct
|
||||
speech of the enemy, who, according to the text, identifies himself with
|
||||
a woman. Of course, we are safe to assume that these words were put in
|
||||
his mouth by the composer of the text of the stela. el Hawary has
|
||||
a woman. Of course we are safe to assume that these words were put in
|
||||
his mouth by the composer of the text of the stela. El Hawary has
|
||||
already made a connection between the passage from the Annals of
|
||||
Harsiyotef and this passage from the Triumphal stela of Piye, describing
|
||||
the homage to Piye in a womanly manner. Interestingly, no such
|
||||
|
@ -501,11 +501,11 @@ participation of a Meroitic queen in war against Rome, describing Queen
|
|||
*Kandake* here as "a manly woman who had lost one of her eyes".[^92] We
|
||||
should be careful with crediting such descriptions much value. Not only
|
||||
did Strabo confuse a Meroitic royal title that probably indicated a
|
||||
mother of a king[^93], but there is also a tendency among Graeco-Roman
|
||||
authors to depict foreign women as masculine, thus creating an inverted
|
||||
mother of a king,[^93] but there is also a tendency among Graeco-Roman
|
||||
authors to depict foreign women as masculine thus creating an inverted
|
||||
image to gender expectations in their own society. Such inversions could
|
||||
have served the purpose of shocking their audience and enhancing the
|
||||
otherness of the foreign lands and peoples. This is evidently an example
|
||||
have served the purposes of shocking their audience and enhancing the
|
||||
otherness of foreign lands and peoples. This is evidently an example
|
||||
of ideological gender inversion used as a sign of barbarism, especially
|
||||
towards foreign women, in the works of Strabo.[^94]
|
||||
|
||||
|
@ -527,8 +527,8 @@ Hierakonpolis in Upper Egypt, dated to the Naqada IIC period, around
|
|||
3500 BC. In Egypt, the motif has remained in the decoration of temple
|
||||
pylons, private and royal stelae, and small finds for more than 3500
|
||||
years. Its latest known appearance is found on temple reliefs from the
|
||||
Roman period, where emperors Domitian, Titus, and Trajan are depicted
|
||||
smiting. Kushite kings are also depicted smiting enemies, and the motif
|
||||
Roman period when emperors Domitian, Titus, and Trajan are depicted
|
||||
smiting. Kushite kings are also depicted smiting enemies and the motif
|
||||
was adopted from ancient Egyptian art.[^96]
|
||||
|
||||
What differentiates the use of this motif in ancient Nubia during the
|
||||
|
@ -543,13 +543,13 @@ New Kingdom. The king always defeats the supposedly stronger enemy.[^98]
|
|||
Although the inclusion of queen Nefertiti smiting female enemies
|
||||
alongside scenes of Akhenaten smiting male enemies probably indicates
|
||||
the elevation of her status during the period of his rule[^99],
|
||||
Nefertiti is nevertheless not the dominant figure in such depictions.
|
||||
The dominant figure remains the smiting king because of the gender of
|
||||
Nefertiti is nevertheless not the dominant figure in such depictions;
|
||||
the dominant figure remains the smiting king because of the gender of
|
||||
the enemies he smites. Male enemies were considered more dangerous than
|
||||
female. When a female ruler like Hatshepsut (ca. 1479-1458 BC) of the
|
||||
18th Dynasty is depicted smiting or trampling male enemies, she
|
||||
herself is depicted as a king- a man- and her identity is indicated by
|
||||
the accompanying text containing her name and royal titles.[^100]
|
||||
herself is depicted as a king -a man- and her identity is indicated by
|
||||
the accompanying text that lists her name and royal titles.[^100]
|
||||
|
||||

|
||||
|
||||
|
@ -560,15 +560,15 @@ The Meroitic case is interesting precisely because certain royal women
|
|||
can be depicted smiting and spearing male enemies. Amanishakheto (1st
|
||||
century AD) is depicted spearing enemies on the pylon of her pyramid
|
||||
Begrawiya North 6 in Meroe, both to the left and right of the pylon
|
||||
entrance (Figure 4). On the left she holds a bow, an arrow, and a rope
|
||||
in her left hand, and a spear in her right hand. The rope in her left
|
||||
hand extends to the necks of the enemies, to which they are tied. Seven
|
||||
entrance (Figure 4). On the left, she holds a bow, arrow and rope
|
||||
in her left hand and a spear in her right hand. The rope in her left
|
||||
hand extends to the necks of the enemies to which it is tied. Seven
|
||||
enemies are depicted with rope tied around their necks and with their
|
||||
arms tied behind their backs. On the right, Amanishakheto holds a rope
|
||||
in her left hand, to which four enemies are bound around their necks.
|
||||
in her left hand which binds four enemies around their necks.
|
||||
Their arms are also bound behind their backs. In her right hand, she
|
||||
holds a spear with which she spears the enemies.[^101] On her stela from
|
||||
Naqa, she is depicted before the enthroned Lion God above a group of
|
||||
Naqa she is depicted before the enthroned Lion God above a group of
|
||||
bound enemies.[^102]
|
||||
|
||||

|
||||
|
@ -580,7 +580,7 @@ Bound enemies are additionally depicted under the throne of the queen on
|
|||
the north wall of pyramid Begrawiya North 11 attributed to
|
||||
Shanakdakheto, ca. 170-125 BC (Figure 5).[^103] Nine bows, the
|
||||
traditional symbol for enemies originating from ancient Egypt, are
|
||||
depicted under the throne of Amanitore, of the 1st century AD (Figure
|
||||
depicted under the throne of Amanitore of the 1st century AD (Figure
|
||||
6), just as they are depicted under the throne of Natakamani in the
|
||||
pyramid Begrawiya North 1 of queen Amanitore.[^104]
|
||||
|
||||
|
@ -598,18 +598,18 @@ pyramid Begrawiya North 1 of queen Amanitore.[^104]
|
|||
Amanitore is depicted smiting enemies on the pylon of the Lion Temple in
|
||||
Naga.[^105] There, she is paired with Natakamani, who is also depicted
|
||||
smiting enemies (Figure 7). Natalia Pomerantseva interpreted this as
|
||||
"hero worshiping of the woman-image" adding that "it is impossible to
|
||||
"hero worshiping of the woman-image", adding that "it is impossible to
|
||||
imagine the frail Egyptian woman's figure in the part of chastisement of
|
||||
enemies".[^106] Yet, as we have seen, some Egyptian royal women are
|
||||
depicted in violent acts such as the smiting and trampling of female
|
||||
enemies, and the reason they are not depicted doing the same to male
|
||||
enemies is status related. If they would be depicted as women smiting or
|
||||
enemies and the reason they are not depicted doing the same to male
|
||||
enemies is status-related. If they would be depicted as women smiting or
|
||||
trampling male enemies, this would elevate their status to the one of
|
||||
kings. Clearly, attention was paid to avoid this. In the case of the
|
||||
kings; clearly, attention was paid to avoid this. In the case of the
|
||||
Meroitic queens, the gender of the enemy was not an issue. Jacke
|
||||
Phillips has also emphasized that the smiting of the enemies by Merotic
|
||||
queens is among the corpus of scenes which were formerly restricted to
|
||||
kings, but did not take the argument further. The reason for the
|
||||
Phillips has also emphasized that the smiting of enemies by Merotic
|
||||
queens is among the corpus of scenes, which were formerly restricted to
|
||||
kings, but Phillips did not take the argument further. The reason for the
|
||||
creation of these scenes can be seen in the specific status of royal
|
||||
women in Meroitic ideology.[^107] However, we also have to bear in mind
|
||||
that, considering the number of known Napatan and Meroitic royal women,
|
||||
|
@ -626,26 +626,26 @@ times certain exceptional women rose to unparalleled positions.[^109]
|
|||
# Conclusion
|
||||
|
||||
Gender as a frame of war has structured both Napatan and Meroitic texts,
|
||||
from lists of the spoils of war to texts dealing with military
|
||||
from lists enumerating the spoils of war to texts dealing with military
|
||||
campaigns. In the first case, this is observable in the order that
|
||||
different categories of prisoners of war are listed, namely enemy rulers
|
||||
(men), then enemy men, women and children. This same structure for
|
||||
prisoners of wars is found with only slight differences in ancient
|
||||
Egyptian spoils of war examples,[^110] which is hardly a coincidence.
|
||||
Egyptian spoils of war examples,[^110] which can hardly be taken as a coincidence.
|
||||
Since the earlier Napatan texts were written in Egyptian, their
|
||||
structure, at least when lists of spoils of war are concerned, could
|
||||
have been based on an Egyptian pattern. This then continued into the
|
||||
have been based on an Egyptian pattern. This, then, continued into the
|
||||
Meroitic period. In the second case, namely the texts dealing with
|
||||
military campaigns, the working of gender as a frame of war is
|
||||
observable in the discursive feminization of enemies in Napatan texts.
|
||||
military campaigns, how gender as a frame of war operates can be
|
||||
observed in the discursive feminization of enemies in Napatan texts.
|
||||
Just like in ancient Egyptian and Neo-Assyrian texts[^111], enemies are
|
||||
discursively framed as women, or as being feminine. This is in fact a
|
||||
discursively framed as women or effemininate. This is in fact a
|
||||
metaphor found in many cultures in which strength is associated with men
|
||||
and weakness is associated with women. Rather than just framing the
|
||||
power relations between the Kushite kings and their enemies, such
|
||||
metaphors strengthen the gender structure of the society itself,
|
||||
privileging the men and masculinity. By discursively taking away
|
||||
masculinity from the enemies, these texts are framing them as
|
||||
privileging men and masculinity. By discursively taking away
|
||||
masculinity from the enemy, these texts are framing them as
|
||||
subordinate and thus legitimizing the subordination of women to men.
|
||||
Unfortunately, the present state of knowledge of the Meroitic language
|
||||
does not allow us to investigate possible feminizations of enemies in
|
||||
|
@ -658,7 +658,7 @@ ideology and the figure of *kandake*. We should, however, not entirely
|
|||
exclude the possibility that women could have participated in war,
|
||||
although we do not have any explicit ancient Nubian textual attestations
|
||||
for this. We also do not have any burials attributed to "warrior women"
|
||||
or "warrior queens," based on the placement of weapons as grave goods in
|
||||
or "warrior queens", based on the placement of weapons as grave goods in
|
||||
graves of women.[^112] Even if such burials were to be found, one would
|
||||
have to be cautious in assigning military activity to women (or men)
|
||||
simply because of the associated weapons. Muscular stress markers or
|
||||
|
@ -672,19 +672,19 @@ of Meroitic queens smiting enemies should be seen in the context of
|
|||
royal ideology. Unlike Egyptian queens, who are depicted as women
|
||||
smiting enemies only when these enemies are also women, both Meroitic
|
||||
kings and certain Meroitic queens are shown smiting and spearing enemy
|
||||
men. There is no difference in the gender of the enemy, and therefore no
|
||||
men. There is no difference in the gender of the enemy and therefore no
|
||||
hierarchy. This can be explained with an elevated status of queenship in
|
||||
Kush in comparison to ancient Egypt. Unlike in Egypt, where a ruling
|
||||
Kush, in comparison to ancient Egypt. Unlike in Egypt, where a ruling
|
||||
woman like Hatshepsut had to be depicted as a man when smiting enemies,
|
||||
a ruling woman in Meroe could be depicted as a woman smiting male
|
||||
enemies.
|
||||
|
||||
Clearly, gender was one of the frames of war in ancient Nubia, with a
|
||||
tradition spanning several centuries and possibly even having ancient
|
||||
Egyptian roots, at least when the structure of the spoils of war lists
|
||||
and some metaphors for enemies are concerned. However, as I have shown,
|
||||
Egyptian roots, at least where the structure for listings of the spoils
|
||||
of war and some metaphors for enemies are concerned. However, as I have shown,
|
||||
there are certain expressions without parallels in ancient Egyptian
|
||||
texts which testify to an independent but equally male-privileging
|
||||
texts, which testify to an independent, but equally male-privileging
|
||||
discourse. Gender as a frame of war (sensu Judith Butler) justified
|
||||
state violence against enemies by discursively representing them as
|
||||
women. In this manner, asymmetrical power relations in one domain (war)
|
||||
|
@ -695,13 +695,13 @@ subordinate to Kushite men are naturalized through a reference to a
|
|||
subordination of enemy men to Kushite men. Simultaneously, the lack of
|
||||
explicit violence conducted against enemy women and children was in a
|
||||
way "the cosmetic treatment of war", to use the words of Jean
|
||||
Baudrillard. The frame of war such as this one, clearly influenced how
|
||||
Baudrillard. The frame of war such as this one clearly influenced how
|
||||
war and violence is represented and consequently experienced by local
|
||||
audience which did not participate in war. Some forms of violence are
|
||||
communicated to the local audience in a specific manner, relying on
|
||||
audiences who did not participate in war. Some forms of violence are
|
||||
communicated to local audiences in specific manners relying on
|
||||
asymmetrical power relations of gender. Other forms of violence which
|
||||
probably occurred, such as violence against non-combatants, are
|
||||
carefully avoided in texts and images. It was probably hard to justify
|
||||
carefully avoided in texts and images as it was probably hard to justify
|
||||
them.
|
||||
|
||||
# Acknowledgments
|
||||
|
|
5
content/print/issue8.md
Normal file
5
content/print/issue8.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: "Issue 8 Print"
|
||||
print: "issue/dotawo8.md"
|
||||
draft: false
|
||||
---
|
Loading…
Add table
Reference in a new issue