Merge pull request 'merge filter & frontpage redesign' (#1) from filter into main
Reviewed-on: r/lumbung.space#1
This commit is contained in:
commit
5a1766deec
@ -14,10 +14,10 @@ paginate = 20
|
||||
title = 'lumbung dot space'
|
||||
bundleCss = "/bundle.css"
|
||||
bundleJs = "/bundle.js"
|
||||
mainSections = ['social', 'shouts', 'calendar', 'tv', 'pen']
|
||||
mainSections = ['social', 'shouts', 'events', 'tv', 'pen', 'pages']
|
||||
|
||||
[markup.goldmark.renderer]
|
||||
unsafe = true
|
||||
unsafe = true
|
||||
|
||||
[taxonomies]
|
||||
author = "authors"
|
||||
@ -25,6 +25,7 @@ unsafe = true
|
||||
tag = "tags"
|
||||
source = "sources"
|
||||
timeline = "timelines"
|
||||
|
||||
|
||||
[permalinks]
|
||||
timelines = "/timeline/:slug/"
|
||||
|
@ -11,6 +11,8 @@
|
||||
{{- partial "news-ticker.html" . -}}
|
||||
{{- partial "footer.html" . -}}
|
||||
</body>
|
||||
|
||||
<script src="{{ "js/hugotagsfilter-1.2.2.min.js" | relURL}}"></script>
|
||||
<script>
|
||||
function toggleDescription(id) {
|
||||
document.querySelector(id).classList.toggle("collapsed");
|
||||
@ -33,19 +35,84 @@
|
||||
if (document.querySelector('[aria-label="Previous"]')) {
|
||||
document.querySelector('[aria-label="Previous"]').parentElement.classList.add('previous-page-link')
|
||||
}
|
||||
// for toggling submenus in mobile navigation drawer
|
||||
let submenuLinks = document.querySelectorAll('.drawer .has-submenu');
|
||||
[...submenuLinks].forEach(submenuLink => {
|
||||
submenuLink.addEventListener('click', function() {
|
||||
submenuLink.querySelector('.submenu').classList.toggle('opened')
|
||||
})
|
||||
})
|
||||
|
||||
// footer random color
|
||||
var color = ['orange','green','blue'];
|
||||
var footer = document.getElementById("footer");
|
||||
var rand = Math.floor(Math.random() * color.length);
|
||||
footer.classList.add(color[rand]);
|
||||
|
||||
// mobile menu
|
||||
document.getElementById("menu-button").onclick=function(){
|
||||
this.classList.toggle("active");
|
||||
document.getElementById("menu").classList.toggle("active");
|
||||
}
|
||||
|
||||
// mobile menu - submenu
|
||||
submenuLinks = document.querySelectorAll(".has-submenu");
|
||||
[...submenuLinks].forEach((t=>{
|
||||
t.addEventListener("click",(function(){t.querySelector(".submenu").classList.toggle("active")}))
|
||||
}));
|
||||
|
||||
// mobile mainfilter
|
||||
document.getElementById("filter-link").onclick=function(){document.getElementById("filter").classList.toggle("active")};
|
||||
|
||||
// mobile filter
|
||||
filterButtons=document.querySelectorAll(".filter-buttons");
|
||||
[...filterButtons].forEach((t=>{
|
||||
t.addEventListener("click",(function(){t.querySelector(".filter-buttons-dropdown").classList.toggle("active");
|
||||
t.querySelector(".filter-by").classList.toggle("active")}))
|
||||
}));
|
||||
|
||||
// load more cards
|
||||
document.getElementById("load-more").onclick=function(){
|
||||
document.getElementById('load-more-paginator').click();
|
||||
}
|
||||
|
||||
// filter config
|
||||
var htfConfig = {
|
||||
filters: [
|
||||
{
|
||||
name: 'tags',
|
||||
prefix: 'tag-',
|
||||
buttonClass: 'tag-button',
|
||||
allSelector: '#selectAllTags',
|
||||
attrName: 'data-tags',
|
||||
selectedPrefix: 'stags-',
|
||||
},
|
||||
{
|
||||
name: 'section',
|
||||
prefix: 'sect-',
|
||||
buttonClass: 'sect-button',
|
||||
allSelector: '#selectAllSections',
|
||||
attrName: 'data-section',
|
||||
selectedPrefix: 'ssect-',
|
||||
},
|
||||
{
|
||||
name: 'contributors',
|
||||
prefix: 'cont-',
|
||||
buttonClass: 'cont-button',
|
||||
allSelector: '#selectAllContributors',
|
||||
attrName: 'data-contributors',
|
||||
selectedPrefix: 'scont-',
|
||||
},
|
||||
{
|
||||
name: 'sources',
|
||||
prefix: 'src-',
|
||||
buttonClass: 'src-button',
|
||||
allSelector: '#selectAllSources',
|
||||
attrName: 'data-sources',
|
||||
selectedPrefix: 'ssrc-',
|
||||
}
|
||||
],
|
||||
showItemClass: "show-item",
|
||||
filterItemClass: "filter-item",
|
||||
activeButtonClass: "active",
|
||||
counterSelector: "selectedItemCount",
|
||||
populateCount: true,
|
||||
setDisabledButtonClass: "disable-button"
|
||||
}
|
||||
var htf = new HugoTagsFilter(htfConfig);
|
||||
</script>
|
||||
|
||||
</html>
|
||||
|
@ -1,40 +1,48 @@
|
||||
{{ define "main" }}
|
||||
<main>
|
||||
<section class='entries'>
|
||||
<div class="h-feed">
|
||||
{{ range where (.Paginator 13).Pages "Params.hidden" "ne" "true" }}
|
||||
|
||||
<div class="h-feed">
|
||||
{{ $range := where .Pages "Params.hidden" "ne" "true" }}
|
||||
{{ $paginator := .Paginate $range }}
|
||||
{{ $pageSize := $paginator.PageSize }}
|
||||
{{ $totalPostsToShow := mul $paginator.PageNumber $pageSize }}
|
||||
{{ range $index, $el := (first $totalPostsToShow $range) }}
|
||||
|
||||
<div class='post {{if eq .Section "tv"}}tv{{ end }}' {{ if eq $index (sub $totalPostsToShow $pageSize) }}id="newpage"{{ end }}>
|
||||
{{if eq .Section "tv"}}
|
||||
{{- partial "video_box.html" . -}}
|
||||
|
||||
{{ else if eq .Section "events" }}
|
||||
{{- partial "partials/calendar_card.html" . -}}
|
||||
|
||||
{{ else if eq .Section "shouts" }}
|
||||
{{ if in .Params.sources "pen.lumbung.space" }}
|
||||
{{- partial "pen_card.html" . -}}
|
||||
{{ else }}
|
||||
{{- partial "shout_card.html" . -}}
|
||||
{{ end }}
|
||||
|
||||
{{ else if eq .Section "social" }}
|
||||
{{- partial "social_card.html" . -}}
|
||||
|
||||
{{ else if eq .Section "publications"}}
|
||||
{{- partial "book_card.html" . -}}
|
||||
|
||||
{{ else if eq .Section "sounds"}}
|
||||
{{- partial "sounds_card.html" . -}}
|
||||
|
||||
{{ else }}
|
||||
{{- partial "card.html" . -}}
|
||||
|
||||
{{ end }}
|
||||
{{- partial "video_box.html" . -}}
|
||||
|
||||
{{ else if eq .Section "events" }}
|
||||
{{- partial "partials/calendar_card.html" . -}}
|
||||
|
||||
{{ else if eq .Section "shouts" }}
|
||||
{{ if in .Params.sources "pen.lumbung.space" }}
|
||||
{{- partial "partials/pen_card.html" . -}}
|
||||
{{ else }}
|
||||
{{- partial "partials/shout_card.html" . -}}
|
||||
{{ end }}
|
||||
|
||||
{{ else if eq .Section "social" }}
|
||||
{{- partial "partials/social_card.html" . -}}
|
||||
|
||||
{{ else if eq .Section "publications"}}
|
||||
{{- partial "partials/book_card.html" . -}}
|
||||
|
||||
{{ else if eq .Section "sounds"}}
|
||||
{{- partial "sounds_card.html" . -}}
|
||||
|
||||
{{ else }}
|
||||
{{- partial "card.html" . -}}
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<nav class="pagination">
|
||||
{{ template "_internal/pagination.html" . }}
|
||||
</nav>
|
||||
|
||||
<div class="page-nav">
|
||||
{{ if and (gt $paginator.TotalPages 1) ($paginator.HasNext) }}
|
||||
<a id="load-more-paginator" class="nextpage" href="{{ $paginator.Next.URL }}#newpage">load more</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
{{ end }}
|
||||
{{ end }}
|
39
themes/lumbung-theme/layouts/events/list.html
Normal file
39
themes/lumbung-theme/layouts/events/list.html
Normal file
@ -0,0 +1,39 @@
|
||||
{{ define "main" }}
|
||||
<main>
|
||||
<section class='entries'>
|
||||
|
||||
{{ $now := (now.Format "060102" ) }}
|
||||
|
||||
{{ $upcoming := slice }}
|
||||
{{ $past := slice}}
|
||||
|
||||
{{ range .Pages }}
|
||||
{{ $t := (substr .Params.event_end 2 8) }}
|
||||
{{ $time := ( replace $t "-" "") }}
|
||||
{{ if ge $time $now }}
|
||||
{{ $upcoming = $upcoming | append . }}
|
||||
{{ else if gt $now $time }}
|
||||
{{ $past = $past | append . }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{ with $upcoming }}
|
||||
<div class="upcoming event-list">
|
||||
<div class='tape-label'><span>upcoming events</span></div>
|
||||
{{ range $upcoming}}
|
||||
{{- partial "event_list_item.html" . -}}
|
||||
{{end}}
|
||||
</div>
|
||||
{{end}}
|
||||
{{ with $past }}
|
||||
<div class="past event-list">
|
||||
<div class='tape-label'><span>past events</span></div>
|
||||
{{ range $past }}
|
||||
{{- partial "event_list_item.html" . -}}
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
</section>
|
||||
</main>
|
||||
{{ end }}
|
@ -1,13 +1,16 @@
|
||||
{{ define "main" }}
|
||||
<main>
|
||||
<section class='entries'>
|
||||
<div class="h-feed">
|
||||
{{ range (.Paginate (.Site.RegularPages.GroupByDate "January 2006") 20 ).PageGroups }}
|
||||
|
||||
<span class="date-marker">{{ .Key }}</span>
|
||||
{{ range .Pages }}
|
||||
|
||||
{{if eq .Section "tv"}}
|
||||
|
||||
<div class="h-feed">
|
||||
{{ $range := .Site.RegularPages }}
|
||||
{{ $paginator := .Paginate $range }}
|
||||
{{ $pageSize := $paginator.PageSize }}
|
||||
{{ $totalPostsToShow := mul $paginator.PageNumber $pageSize }}
|
||||
{{ range $index, $el := (first $totalPostsToShow .Site.RegularPages) }}
|
||||
|
||||
<div class='post {{if eq .Section "tv"}}tv{{ end }}' {{ if eq $index (sub $totalPostsToShow $pageSize) }}id="newpage"{{ end }}>
|
||||
{{if eq .Section "tv"}}
|
||||
{{- partial "video_box.html" . -}}
|
||||
|
||||
{{ else if eq .Section "events" }}
|
||||
@ -15,16 +18,16 @@
|
||||
|
||||
{{ else if eq .Section "shouts" }}
|
||||
{{ if in .Params.sources "pen.lumbung.space" }}
|
||||
{{- partial "pen_card.html" . -}}
|
||||
{{- partial "partials/pen_card.html" . -}}
|
||||
{{ else }}
|
||||
{{- partial "shout_card.html" . -}}
|
||||
{{- partial "partials/shout_card.html" . -}}
|
||||
{{ end }}
|
||||
|
||||
{{ else if eq .Section "social" }}
|
||||
{{- partial "social_card.html" . -}}
|
||||
{{- partial "partials/social_card.html" . -}}
|
||||
|
||||
{{ else if eq .Section "publications"}}
|
||||
{{- partial "book_card.html" . -}}
|
||||
{{- partial "partials/book_card.html" . -}}
|
||||
|
||||
{{ else if eq .Section "sounds"}}
|
||||
{{- partial "sounds_card.html" . -}}
|
||||
@ -32,13 +35,16 @@
|
||||
{{ else }}
|
||||
{{- partial "card.html" . -}}
|
||||
{{ end }}
|
||||
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
<nav class="pagination-container">
|
||||
{{ template "_internal/pagination.html" . }}
|
||||
</nav>
|
||||
|
||||
<div class="page-nav">
|
||||
{{ if and (gt $paginator.TotalPages 1) ($paginator.HasNext) }}
|
||||
<a id="load-more-paginator" class="nextpage" href="{{ $paginator.Next.URL }}#newpage">load more</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<div class="lumbung-radio-player" onclick="window.open('https://lumbungradio.stationofcommons.org', 'Lumbung Radio', 'height=800,width=450')">
|
||||
<svg class="lumbung-radio-play-button" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M7 4V20L20 12L7 4Z" fill="#CA14D4" stroke="#CA14D4" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
@ -46,5 +52,8 @@
|
||||
<span>lumbung radio</span>
|
||||
<img src="/img/lumbung-radio-logo.png" alt="" height="30">
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</main>
|
||||
|
||||
{{ end }}
|
@ -1,39 +1,39 @@
|
||||
<div class='book card'>
|
||||
<article class="h-entry book">
|
||||
<div class="tape-label book"><span><time class="dt-published" datetime="{{ .Date.Format `Jan 02 2006` }}">{{ .Date.Format "Jan 02, 2006" }}</time></span><div></div></div>
|
||||
|
||||
{{ $postPermalink := .Permalink}}
|
||||
</header>
|
||||
<div class='book card filter-item'>
|
||||
<article class="h-entry book">
|
||||
<div class="tape-label book"><span><time class="dt-published" datetime="{{ .Date.Format `Jan 02 2006` }}">{{ .Date.Format "Jan 02, 2006" }}</time></span><div></div></div>
|
||||
|
||||
{{ $postPermalink := .Permalink}}
|
||||
</header>
|
||||
|
||||
{{ with (index (.Resources.ByType "image") 0) }}
|
||||
{{ $height := add .Height 0.0}}
|
||||
{{ $ratio := div $height .Width}}
|
||||
{{ $thumb := .Fit "540x540 q80 webp"}}
|
||||
<div class="p-summary{{if gt $ratio 1 }} portrait {{else}} landscape {{end}}">
|
||||
<div class="summary-image {{if gt $ratio 1 }} portrait {{else}} landscape {{end}}">
|
||||
<a href="{{ $postPermalink }}"><img src="{{ $thumb.Permalink }}" alt="{{ .Title }}"> </a>
|
||||
</div>
|
||||
{{ else }}
|
||||
<div class="p-summary">
|
||||
{{ end }}
|
||||
<header>
|
||||
<h2 class="p-name"><a href="{{ .Permalink }}" class="u-url">
|
||||
{{.Title}}</a></h2>
|
||||
</header>
|
||||
<div class="summary-text">
|
||||
{{ .Summary }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="shout-source"></div>
|
||||
|
||||
<footer class='post-footer'>
|
||||
<div class='footer-metadata'>
|
||||
<span class="from p-author">{{ if .Params.authors }}By {{range .Params.authors}}<b> <a href='{{ "/authors/" | relLangURL }}{{ . | urlize }}/'> {{ . }}</a> {{end}}</b> on{{ end }}</span>
|
||||
|
||||
{{ if .Truncated }}
|
||||
<div class="footer-filler"></div>
|
||||
<div class='read-more'><a href="{{ .RelPermalink }}">Read More…</a></div>
|
||||
{{ end }}
|
||||
</footer>
|
||||
</article>
|
||||
{{ with (index (.Resources.ByType "image") 0) }}
|
||||
{{ $height := add .Height 0.0}}
|
||||
{{ $ratio := div $height .Width}}
|
||||
{{ $thumb := .Fit "540x540 q80 webp"}}
|
||||
<div class="p-summary{{if gt $ratio 1 }} portrait {{else}} landscape {{end}}">
|
||||
<div class="summary-image {{if gt $ratio 1 }} portrait {{else}} landscape {{end}}">
|
||||
<a href="{{ $postPermalink }}"><img src="{{ $thumb.Permalink }}" alt="{{ .Title }}"> </a>
|
||||
</div>
|
||||
{{ else }}
|
||||
<div class="p-summary">
|
||||
{{ end }}
|
||||
<header>
|
||||
<h2 class="p-name"><a href="{{ .Permalink }}" class="u-url">
|
||||
{{.Title}}</a></h2>
|
||||
</header>
|
||||
<div class="summary-text">
|
||||
{{ .Summary }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="shout-source"></div>
|
||||
|
||||
<footer class='post-footer'>
|
||||
<div class='footer-metadata'>
|
||||
<span class="from p-author">{{ if .Params.authors }}By {{range .Params.authors}}<b> <a href='{{ "/authors/" | relLangURL }}{{ . | urlize }}/'> {{ . }}</a> {{end}}</b> on{{ end }}</span>
|
||||
|
||||
{{ if .Truncated }}
|
||||
<div class="footer-filler"></div>
|
||||
<div class='read-more'><a href="{{ .RelPermalink }}">Read More…</a></div>
|
||||
{{ end }}
|
||||
</footer>
|
||||
</article>
|
||||
</div>
|
||||
|
@ -1,5 +1,5 @@
|
||||
{{ $t := (time .Params.event_end) }}
|
||||
<div class='card calendar {{ if $t.Before now }}past{{end}}'>
|
||||
<div class='card calendar {{ if $t.Before now }}past{{end}} filter-item' data-section="{{ .Section }}" data-sources='{{- partial "data/sources.html" . -}}' data-contributors='{{- partial "data/contributors.html" . -}}' data-tags='{{- partial "data/tags.html" . -}}'>
|
||||
<div class='date tape-label'><span> {{ substr .Params.date 0 11}}</span></div>
|
||||
<article class="h-event calendar ">
|
||||
<header>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<div class='card'>
|
||||
<div class='card filter-item' data-section="{{ .Section }}" data-sources='{{- partial "data/sources.html" . -}}' data-contributors='{{- partial "data/contributors.html" . -}}' data-tags='{{- partial "data/tags.html" . -}}'>
|
||||
<article class="h-entry">
|
||||
<header>
|
||||
<h2 class="p-name"><a href="{{ .Permalink }}" class="u-url">{{ .Title }}</a></h2>
|
||||
|
1
themes/lumbung-theme/layouts/partials/data/authors.html
Normal file
1
themes/lumbung-theme/layouts/partials/data/authors.html
Normal file
@ -0,0 +1 @@
|
||||
{{ with .Params.authors }}{{ if eq ( printf "%T" . ) "string" }}{{ . | replaceRE "[.]" "_" | urlize }}{{ else if eq ( printf "%T" . ) "[]string" }}{{ range . }}{{ . | replaceRE "[.]" "_" | urlize }} {{end}}{{end}}{{else}}no-author{{end}}
|
@ -0,0 +1 @@
|
||||
{{ with .Params.categories }}{{ if eq ( printf "%T" . ) "string" }}{{ . | replaceRE "[.]" "_" | urlize }}{{ else if eq ( printf "%T" . ) "[]string" }}{{ range . }}{{ . | replaceRE "[.]" "_" | urlize }} {{end}}{{end}}{{else}}no-cat{{end}}
|
@ -0,0 +1 @@
|
||||
{{ with .Params.contributors }}{{ if eq ( printf "%T" . ) "string" }}{{ . | replaceRE "[.]" "_" | urlize }}{{ else if eq ( printf "%T" . ) "[]string" }}{{ range . }}{{ . | replaceRE "[.]" "_" | urlize }} {{end}}{{end}}{{else}}no-contributor{{end}}
|
1
themes/lumbung-theme/layouts/partials/data/sources.html
Normal file
1
themes/lumbung-theme/layouts/partials/data/sources.html
Normal file
@ -0,0 +1 @@
|
||||
{{ with .Params.sources }}{{ if eq ( printf "%T" . ) "string" }}{{ . | replaceRE "[.]" "_" | urlize }}{{ else if eq ( printf "%T" . ) "[]string" }}{{ range . }}{{ . | replaceRE "[.]" "_" | urlize }} {{end}}{{end}}{{else}}no-sources{{end}}
|
1
themes/lumbung-theme/layouts/partials/data/tags.html
Normal file
1
themes/lumbung-theme/layouts/partials/data/tags.html
Normal file
@ -0,0 +1 @@
|
||||
{{ with .Params.tags }}{{ range . }}{{ . | replaceRE "[.]" "_" | urlize }} {{ end }}{{ else }} tfuntagged{{ end }}
|
19
themes/lumbung-theme/layouts/partials/event_list_item.html
Normal file
19
themes/lumbung-theme/layouts/partials/event_list_item.html
Normal file
@ -0,0 +1,19 @@
|
||||
{{ $t := (time .Params.event_end) }}
|
||||
<div class='event-list-item'>
|
||||
<div class='date-start'><span> {{ substr .Params.event_begin 0 11}}</span></div>
|
||||
<div class='title'><h2 class="p-name"><a href="{{ .Permalink }}" class="u-url">{{ .Title }}</a></h2></div>
|
||||
<div class='time'>
|
||||
<div class='start-scroller'>
|
||||
<marquee behavior="scroll" direction="left">
|
||||
{{ .Params.localized_begin | markdownify }}
|
||||
</marquee>
|
||||
</div>
|
||||
</div>
|
||||
<div class='duration'>Duration: <b>{{ .Params.duration }}</b></div>
|
||||
<div class='location'>{{ .Params.location | markdownify }}</div>
|
||||
<input class='descr_button' type='checkbox' id='toggle-{{ .Params.uid }}'/>
|
||||
<label class='calendar' for='toggle-{{ .Params.uid }}'>↕</label>
|
||||
<div class='calendar description p-description' id='event-{{ .Params.uid }}'>
|
||||
{{.Content}}
|
||||
</div>
|
||||
</div>
|
@ -1,121 +1,91 @@
|
||||
<div class="filter-link"><svg class="filter-icon" enable-background="new 0 0 510.2 512" version="1.1" viewBox="0 0 510.2 512" xmlns="http://www.w3.org/2000/svg"><path d="m499.1 0c2.8 2.2 6.2 4 8.3 6.8 4.4 5.8 3.5 12.6-1.9 19.2-15.7 19.4-31.5 38.8-47.3 58.2-41.2 50.8-82.5 101.6-123.8 152.4-2 2.4-3.9 3.4-7.1 3.4-48.2-0.1-96.3-0.1-144.5 0-3.2 0-5.1-1-7.1-3.4-56.4-69.6-112.9-139.1-169.4-208.7-9.7-11.9-8.3-20.3 4.8-27.9h488z"/><path d="m206.1 512c-8.7-4-11.2-10.8-11.1-20.2 0.3-71.8 0.1-143.6 0.1-215.4v-6.2h120v5.5c0 57.6-0.1 115.3 0.1 172.9 0 8.7-3.3 14.4-11.1 18.2-29.9 14.6-59.6 29.6-89.4 44.4-0.3 0.1-0.4 0.5-0.6 0.7-2.7 0.1-5.3 0.1-8 0.1z"/></svg><span>Filter</span></div>
|
||||
<div class="filter" id="filter">
|
||||
<div class="filter-link" id="filter-link"><svg class="filter-icon" enable-background="new 0 0 510.2 512" version="1.1" viewBox="0 0 510.2 512" xmlns="http://www.w3.org/2000/svg"><path d="m499.1 0c2.8 2.2 6.2 4 8.3 6.8 4.4 5.8 3.5 12.6-1.9 19.2-15.7 19.4-31.5 38.8-47.3 58.2-41.2 50.8-82.5 101.6-123.8 152.4-2 2.4-3.9 3.4-7.1 3.4-48.2-0.1-96.3-0.1-144.5 0-3.2 0-5.1-1-7.1-3.4-56.4-69.6-112.9-139.1-169.4-208.7-9.7-11.9-8.3-20.3 4.8-27.9h488z"/><path d="m206.1 512c-8.7-4-11.2-10.8-11.1-20.2 0.3-71.8 0.1-143.6 0.1-215.4v-6.2h120v5.5c0 57.6-0.1 115.3 0.1 172.9 0 8.7-3.3 14.4-11.1 18.2-29.9 14.6-59.6 29.6-89.4 44.4-0.3 0.1-0.4 0.5-0.6 0.7-2.7 0.1-5.3 0.1-8 0.1z"/></svg><span>filter</span></div>
|
||||
|
||||
{{ $pages := where .Site.RegularPages "Type" "in" .Site.Params.mainSections }}
|
||||
{{ $sections := .Site.Params.mainSections }}
|
||||
|
||||
{{ $.Scratch.Set "authors" (slice ) }}
|
||||
{{ $.Scratch.Set "noAuthors" 0 }}
|
||||
|
||||
{{ range where .Site.RegularPages "Type" "in" .Site.Params.mainSections }}
|
||||
{{ with .Params.authors }}
|
||||
{{ if eq ( printf "%T" . ) "[]string" }}
|
||||
{{ if ( not ( in ($.Scratch.Get "authors") . ) ) }}
|
||||
{{ $.Scratch.Add "authors" . }}
|
||||
{{ end }}
|
||||
{{ else if ( printf "%T" . ) "[]string" }}
|
||||
{{ range . }}
|
||||
{{ if ( not ( in ($.Scratch.Get "authors") . ) ) }}
|
||||
{{ $.Scratch.Add "authors" . }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ $pages := where .Site.RegularPages "Type" "in" .Site.Params.mainSections }}
|
||||
{{ $sections := .Site.Params.mainSections }}
|
||||
{{ $tags := $.Site.Taxonomies.tags.ByCount }}
|
||||
{{ $.Scratch.Set "untagged" 0 }}
|
||||
{{ range $pages }}
|
||||
{{ with .Params.tags }}{{ else }}{{ $.Scratch.Add "untagged" 1 }}{{ end }}
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
{{ $.Scratch.Add "noAuthors" 1 }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{ $.Scratch.Set "cats" (slice ) }}
|
||||
{{ $.Scratch.Set "nocat" 0 }}
|
||||
<div class="filter-container">
|
||||
<div class="filter-information">
|
||||
<div><span id="selectedItemCount"></span> Cards</div>
|
||||
<div id="load-more">load more cards</div>
|
||||
</div>
|
||||
<div class="filter-buttons-container">
|
||||
<div class="filter-buttons">
|
||||
<button class="filter-by">
|
||||
by sections
|
||||
</button>
|
||||
<div class="filter-buttons-dropdown">
|
||||
{{ range $sections }}
|
||||
<button xx class="sect-button filter-button" id="sect-{{ . | urlize }}" onclick="htf.checkFilter('{{ . | urlize }}', 'sect-')"><svg enable-background="new 0 0 14.9 14.9" version="1.1" viewBox="-2 -2 18.9 18.9" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><path d="m11.8 1.9c-0.8-1.2-2.1-1.8-3.8-1.6-0.8-0.3-1.6-0.4-2.4-0.1-2.3 0.8-3.9 2.4-5 4.5-1.4 2.6-0.5 6.8 2.4 8.1h0.1c0.2 0.2 0.5 0.3 0.8 0.4 0.4 0.6 0.9 1.1 1.6 1.3 1.9 0.7 4.1 0.1 5.5-1.2 0.9-0.6 1.6-1.4 2-2.4 1-0.9 1.6-2.2 1.8-3.5 0.3-2.2-0.7-4.7-3-5.5z"/></svg> <span class="filter-title">{{ . | title }}</span> <span id="ssect-{{ . | urlize }}"></span>
|
||||
</button>
|
||||
{{ end }}
|
||||
<button xx id="selectAllSections" class="filter-all" onclick="htf.showAll('section')">
|
||||
All Sections
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{ range where .Site.RegularPages "Type" "in" .Site.Params.mainSections }}
|
||||
{{ with .Params.categories }}
|
||||
{{ if eq ( printf "%T" . ) "[]string" }}
|
||||
{{ if ( not ( in ($.Scratch.Get "cats") . ) ) }}
|
||||
{{ $.Scratch.Add "cats" . }}
|
||||
{{ end }}
|
||||
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
{{ $.Scratch.Add "nocat" 1 }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
<div class="filter-buttons">
|
||||
<button class="filter-by">
|
||||
by contributors
|
||||
</button>
|
||||
<div class="filter-buttons-dropdown">
|
||||
{{ range .Site.Taxonomies.contributors }}
|
||||
<button xx class="cont-button filter-button" id="cont-{{ .Page.Title | replaceRE "[.]" "_" | urlize }}" onclick="htf.checkFilter('{{ .Page.Title | replaceRE "[.]" "_" | urlize }}', 'cont-')"><svg enable-background="new 0 0 14.9 14.9" version="1.1" viewBox="-2 -2 18.9 18.9" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><path d="m11.8 1.9c-0.8-1.2-2.1-1.8-3.8-1.6-0.8-0.3-1.6-0.4-2.4-0.1-2.3 0.8-3.9 2.4-5 4.5-1.4 2.6-0.5 6.8 2.4 8.1h0.1c0.2 0.2 0.5 0.3 0.8 0.4 0.4 0.6 0.9 1.1 1.6 1.3 1.9 0.7 4.1 0.1 5.5-1.2 0.9-0.6 1.6-1.4 2-2.4 1-0.9 1.6-2.2 1.8-3.5 0.3-2.2-0.7-4.7-3-5.5z"/></svg> <span class="filter-title">{{ .Page.Title }}</span> <span id="scont-{{ .Page.Title | replaceRE "[.]" "_" | urlize }}"></span>
|
||||
</button>
|
||||
{{ end }}
|
||||
|
||||
<button xx class="cont-button filter-button" id="cont-no-contributor" onclick="htf.checkFilter('no-contributor', 'cont-')"><svg enable-background="new 0 0 14.9 14.9" version="1.1" viewBox="-2 -2 18.9 18.9" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><path d="m11.8 1.9c-0.8-1.2-2.1-1.8-3.8-1.6-0.8-0.3-1.6-0.4-2.4-0.1-2.3 0.8-3.9 2.4-5 4.5-1.4 2.6-0.5 6.8 2.4 8.1h0.1c0.2 0.2 0.5 0.3 0.8 0.4 0.4 0.6 0.9 1.1 1.6 1.3 1.9 0.7 4.1 0.1 5.5-1.2 0.9-0.6 1.6-1.4 2-2.4 1-0.9 1.6-2.2 1.8-3.5 0.3-2.2-0.7-4.7-3-5.5z"/></svg> <span class="filter-title">No contributors</span><span id="scont-no-contributor"></span>
|
||||
</button>
|
||||
<button xx id="selectAllContributors" class="filter-all" onclick="htf.showAll('contributors')">
|
||||
All contributors
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{ $tags := $.Site.Taxonomies.tags.ByCount }}
|
||||
<div class="filter-buttons">
|
||||
<button class="filter-by">
|
||||
by sources
|
||||
</button>
|
||||
<div class="filter-buttons-dropdown">
|
||||
{{ range .Site.Taxonomies.sources }}
|
||||
<button xx class="src-button filter-button" id="src-{{ .Page.Title | replaceRE "[.]" "_" | urlize }}" onclick="htf.checkFilter('{{ .Page.Title | replaceRE "[.]" "_" | urlize }}', 'src-')"><svg enable-background="new 0 0 14.9 14.9" version="1.1" viewBox="-2 -2 18.9 18.9" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><path d="m11.8 1.9c-0.8-1.2-2.1-1.8-3.8-1.6-0.8-0.3-1.6-0.4-2.4-0.1-2.3 0.8-3.9 2.4-5 4.5-1.4 2.6-0.5 6.8 2.4 8.1h0.1c0.2 0.2 0.5 0.3 0.8 0.4 0.4 0.6 0.9 1.1 1.6 1.3 1.9 0.7 4.1 0.1 5.5-1.2 0.9-0.6 1.6-1.4 2-2.4 1-0.9 1.6-2.2 1.8-3.5 0.3-2.2-0.7-4.7-3-5.5z"/></svg> <span class="filter-title">{{ .Page.Title }}</span> <span id="ssrc-{{ .Page.Title | replaceRE "[.]" "_" | urlize }}"></span>
|
||||
</button>
|
||||
{{ end }}
|
||||
<button xx class="src-button filter-button" id="src-no-sources" onclick="htf.checkFilter('no-sources', 'src-')"><svg enable-background="new 0 0 14.9 14.9" version="1.1" viewBox="-2 -2 18.9 18.9" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><path d="m11.8 1.9c-0.8-1.2-2.1-1.8-3.8-1.6-0.8-0.3-1.6-0.4-2.4-0.1-2.3 0.8-3.9 2.4-5 4.5-1.4 2.6-0.5 6.8 2.4 8.1h0.1c0.2 0.2 0.5 0.3 0.8 0.4 0.4 0.6 0.9 1.1 1.6 1.3 1.9 0.7 4.1 0.1 5.5-1.2 0.9-0.6 1.6-1.4 2-2.4 1-0.9 1.6-2.2 1.8-3.5 0.3-2.2-0.7-4.7-3-5.5z"/></svg> <span class="filter-title">No sources</span> <span id="ssrc-no-sources"></span>
|
||||
</button>
|
||||
<button xx id="selectAllSources" class="filter-all" onclick="htf.showAll('sources')">
|
||||
All sources
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{ $.Scratch.Set "untagged" 0 }}
|
||||
{{ range $pages }}
|
||||
{{ with .Params.tags }}{{ else }}{{ $.Scratch.Add "untagged" 1 }}{{ end }}
|
||||
{{ end }}
|
||||
|
||||
<div class="filter-buttons-container">
|
||||
<div class="filter-buttons-container-header">
|
||||
<div><span id="selectedItemCount"></span> Items</div>
|
||||
<a href="" class="load-all">Load all Items</a>
|
||||
</div>
|
||||
<div class="filter-buttons">
|
||||
<button xx id="selectAllSections" onclick="htf.showAll('section')">
|
||||
All Sections
|
||||
</button>
|
||||
{{ range $sections }}
|
||||
<button xx class="sect-button filter-button" id="sect-{{ . | urlize }}" onclick="htf.checkFilter('{{ . | urlize }}', 'sect-')">
|
||||
{{ . | title }} <span id="ssect-{{ . | urlize }}"> -count-</span> | <span id="csect-{{ . | urlize }}"> -count-</span>
|
||||
</button>
|
||||
{{ end }}
|
||||
<div class="filter-buttons">
|
||||
<button class="filter-by">
|
||||
by tags
|
||||
</button>
|
||||
<div class="filter-buttons-dropdown">
|
||||
{{ range $tags }}
|
||||
{{ if .Term }}
|
||||
<button xx class="tag-button filter-button" id="tag-{{ .Term | replaceRE "[.]" "_" | urlize }}" onclick="htf.checkFilter('{{ .Term | replaceRE "[.]" "_" | urlize }}', 'tag-')"><svg enable-background="new 0 0 14.9 14.9" version="1.1" viewBox="-2 -2 18.9 18.9" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><path d="m11.8 1.9c-0.8-1.2-2.1-1.8-3.8-1.6-0.8-0.3-1.6-0.4-2.4-0.1-2.3 0.8-3.9 2.4-5 4.5-1.4 2.6-0.5 6.8 2.4 8.1h0.1c0.2 0.2 0.5 0.3 0.8 0.4 0.4 0.6 0.9 1.1 1.6 1.3 1.9 0.7 4.1 0.1 5.5-1.2 0.9-0.6 1.6-1.4 2-2.4 1-0.9 1.6-2.2 1.8-3.5 0.3-2.2-0.7-4.7-3-5.5z"/></svg> <span class="filter-title">{{.Term | humanize | title }}</span>
|
||||
<span id="stags-{{ .Term | urlize }}"></span>
|
||||
</button>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
<button xx class="tag-button filter-button" id="tag-tfuntagged" onclick="htf.checkFilter('tfuntagged', 'tag-')"><svg enable-background="new 0 0 14.9 14.9" version="1.1" viewBox="-2 -2 18.9 18.9" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><path d="m11.8 1.9c-0.8-1.2-2.1-1.8-3.8-1.6-0.8-0.3-1.6-0.4-2.4-0.1-2.3 0.8-3.9 2.4-5 4.5-1.4 2.6-0.5 6.8 2.4 8.1h0.1c0.2 0.2 0.5 0.3 0.8 0.4 0.4 0.6 0.9 1.1 1.6 1.3 1.9 0.7 4.1 0.1 5.5-1.2 0.9-0.6 1.6-1.4 2-2.4 1-0.9 1.6-2.2 1.8-3.5 0.3-2.2-0.7-4.7-3-5.5z"/></svg> <span class="filter-title">Untagged</span> <span id="stags-tfuntagged"></span>
|
||||
</button>
|
||||
<button xx id="selectAllTags" class="filter-all" onclick="htf.showAll('tags')">
|
||||
All Tags
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="filter-buttons">
|
||||
<button xx id="selectAllAuthors" onclick="htf.showAll('authors')">
|
||||
All Authors
|
||||
</button>
|
||||
|
||||
{{ range .Site.Taxonomies.authors }}
|
||||
<button xx class="auth-button filter-button" id="auth-{{ .Page.Title | replaceRE "[.]" "_" | urlize }}" onclick="htf.checkFilter('{{ .Page.Title | replaceRE "[.]" "_" | urlize }}', 'auth-')">
|
||||
{{ .Page.Title }} <span id="sauth-{{ .Page.Title | replaceRE "[.]" "_" | urlize }}"> -count-</span> | <span id="cauth-{{ .Page.Title | replaceRE "[.]" "_" | urlize }}"> -count-</span>
|
||||
</button>
|
||||
{{ end }}
|
||||
|
||||
{{ if gt ( $.Scratch.Get "noAuthors") 0 }}
|
||||
<button xx class="auth-button" id="auth-no-author" onclick="htf.checkFilter('no-author', 'auth-')">
|
||||
No Author <span id="sauth-no-author"> -count-</span> | <span id="cauth-no-author"> -count-</span>
|
||||
</button>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<div class="filter-buttons">
|
||||
<button xx id="selectAllCats" onclick="htf.showAll('cats')">
|
||||
All Categories
|
||||
</button>
|
||||
|
||||
{{ range .Site.Taxonomies.categories }}
|
||||
<button xx class="cat-button filter-button" id="cat-{{ .Page.Title | replaceRE "[.]" "_" | urlize }}" onclick="htf.checkFilter('{{ .Page.Title | replaceRE "[.]" "_" | urlize }}', 'cat-')">
|
||||
{{ .Page.Title }} <span id="scat-{{ .Page.Title | replaceRE "[.]" "_" | urlize }}"> -count-</span> | <span id="ccat-{{ .Page.Title | replaceRE "[.]" "_" | urlize }}"> -count-</span>
|
||||
</button>
|
||||
{{ end }}
|
||||
|
||||
{{ if gt ( $.Scratch.Get "nocat") 0 }}
|
||||
<button xx class="cat-button" id="cat-no-cat" onclick="htf.checkFilter('no-cat', 'cat-')">
|
||||
No Categories <span id="scat-no-cat"> -count-</span> | <span id="ccat-no-cat"> -count-</span>
|
||||
</button>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<div class="filter-buttons">
|
||||
<button xx class="" id="selectAllTags" onclick="htf.showAll('tags')">
|
||||
All Tags
|
||||
</button>
|
||||
{{ range $tags }}
|
||||
{{ if .Term }}
|
||||
<button xx class="tag-button filter-button" id="tag-{{ .Term | replaceRE "[.]" "_" | urlize }}" onclick="htf.checkFilter('{{ .Term | replaceRE "[.]" "_" | urlize }}', 'tag-')">
|
||||
<span>{{.Term | humanize | title }}</span>
|
||||
<span id="stags-{{ .Term | urlize }}"> -count-</span> | <span id="ctags-{{ .Term | urlize }}"> -count-</span>
|
||||
</button>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ if gt ( $.Scratch.Get "untagged") 0 }}
|
||||
<button xx class="tag-button" id="tag-tfuntagged" onclick="htf.checkFilter('tfuntagged', 'tag-')">
|
||||
Untagged <span id="stags-tfuntagged"> -count-</span> | <span id="ctags-tfuntagged"> -count-</span>
|
||||
</button>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
@ -1,7 +1,7 @@
|
||||
<footer id="footer">
|
||||
<div class="f-main">
|
||||
<div class="f-column">
|
||||
<a href="/"><img class="logo" src="/img/logo.svg" alt="lumbung.space"></a>
|
||||
<a href="/"><img class="logo" src="/img/logo-big.svg" alt="lumbung.space"></a>
|
||||
</div>
|
||||
<div class="f-column"><u>lumbung.space</u> is a social and publishing platform for sharing harvests by all members online. It is non-extractive, co governed by the users, and is built on open platforms.</div>
|
||||
<div class="f-column">
|
||||
|
@ -25,4 +25,5 @@
|
||||
{{ with .OutputFormats.Get "rss" -}}
|
||||
{{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }}
|
||||
{{ end -}}
|
||||
|
||||
</head>
|
||||
|
@ -6,8 +6,8 @@
|
||||
</div>
|
||||
</header>
|
||||
<div class="menu-row">
|
||||
<nav class="menu">
|
||||
<img class="menu-dot" src="/img/black-dot.svg" alt="black dot">
|
||||
<nav id="menu" class="menu">
|
||||
<a href="#"><img class="menu-dot" src="/img/black-dot.svg" alt="black dot"></a>
|
||||
<ul>
|
||||
<li><a href="/timeline/">harvest</a></li>
|
||||
{{/* <li><a href="/about/">about</a></li> */}}
|
||||
@ -28,15 +28,17 @@
|
||||
<li><a href="/tags/lumbunggallery/">gallery</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="https://members.lumbung.space" class="login-link">Login</a></li>
|
||||
<li><a href="https://books.lumbung.space">books</a></li>
|
||||
</ul>
|
||||
<div class="login-menu"><a href="https://members.lumbung.space">login</a></div>
|
||||
</nav>
|
||||
{{- partial "filter-nav.html" . -}}
|
||||
<div class="login"><a href="https://members.lumbung.space">login</a></div>
|
||||
|
||||
<div class="mobile-menu-button">
|
||||
<div class="mobile-menu-button--line"></div>
|
||||
<div class="mobile-menu-button--line"></div>
|
||||
<div class="mobile-menu-button--line"></div>
|
||||
<div class="menu-button" id="menu-button">
|
||||
<div class="menu-button--line"></div>
|
||||
<div class="menu-button--line"></div>
|
||||
<div class="menu-button--line"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</header>
|
@ -1,7 +1,7 @@
|
||||
<div class='pen card {{ .Params.feed_name }}'>
|
||||
<div class='pen card {{ .Params.feed_name }} filter-item' data-section="{{ .Section }}" data-sources='{{- partial "data/sources.html" . -}}' data-contributors='{{- partial "data/contributors.html" . -}}' data-tags='{{- partial "data/tags.html" . -}}'>
|
||||
<article class="h-entry pen">
|
||||
<header>
|
||||
<div class="pen-source"><span class="from p-author">From {{ if .Params.contributors }}<b>{{range .Params.contributors}} <a href='{{ "/contributors/" | relLangURL }}{{ . | urlize }}/'> {{ . }}</a> {{end}}</b> at {{ end }}<a href="{{ "/sources/" | relLangURL }}{{ .Params.feed_name | urlize }}">{{ .Params.feed_name }}</a></span></div>
|
||||
<div class="pen-source"><span class="from p-author">From {{ if .Params.author }}<b>{{.Params.author}}</b> at {{ end }}<a href="{{ "/categories/" | relLangURL }}{{ .Params.feed_name | urlize }}">{{ .Params.feed_name }}</a></span></div>
|
||||
|
||||
{{ $postPermalink := .Permalink}}
|
||||
<time class="dt-published" datetime="{{ .Date.Format `Jan 02 2006` }}">{{ .Date.Format "Jan 02, 2006" }}</time>
|
||||
|
@ -1,48 +1,48 @@
|
||||
<div class='shout card {{ .Params.feed_name }}'>
|
||||
<article class="h-entry shout">
|
||||
<header>
|
||||
{{ $postPermalink := .Permalink}}
|
||||
<time class="dt-published" datetime="{{ .Date.Format `Jan 02 2006` }}">{{ .Date.Format "Jan 02, 2006" }}</time>
|
||||
<h2 class="p-name"><a href="{{ .Permalink }}" class="u-url">{{ .Title }}</a></h2>
|
||||
</header>
|
||||
|
||||
<div class="shout-source"><span class="from p-author">From {{ if .Params.contributors }}<b>{{range .Params.contributors}} <a href='{{ "/contributors/" | relLangURL }}{{ . | urlize }}/'> {{ . }}</a> {{end}}</b> at {{ end }}<a href="{{ "/sources/" | relLangURL }}{{ .Params.feed_name | urlize }}">{{ .Params.feed_name }}</a></span></div>
|
||||
<div class='shout card {{ .Params.feed_name }} filter-item' data-section="{{ .Section }}" data-sources='{{- partial "data/sources.html" . -}}' data-contributors='{{- partial "data/contributors.html" . -}}' data-tags='{{- partial "data/tags.html" . -}}'>
|
||||
<article class="h-entry shout">
|
||||
<header>
|
||||
{{ $postPermalink := .Permalink}}
|
||||
<time class="dt-published" datetime="{{ .Date.Format `Jan 02 2006` }}">{{ .Date.Format "Jan 02, 2006" }}</time>
|
||||
<h2 class="p-name"><a href="{{ .Permalink }}" class="u-url">{{ .Title }}</a></h2>
|
||||
</header>
|
||||
|
||||
<div class="shout-source"><span class="from p-author">From {{ if .Params.contributors }}<b>{{range .Params.contributors}} <a href='{{ "/contributors/" | relLangURL }}{{ . | urlize }}/'> {{ . }}</a> {{end}}</b> at {{ end }}<a href="{{ "/sources/" | relLangURL }}{{ .Params.feed_name | urlize }}">{{ .Params.feed_name }}</a></span></div>
|
||||
|
||||
{{ if .Params.featured_image }}
|
||||
{{ with $img := .Resources.GetMatch .Params.featured_image }}
|
||||
{{ $height := add $img.Height 0.0}}
|
||||
{{ $ratio := div $height $img.Width}}
|
||||
{{ $thumb := $img.Fit "540x540 q80 webp"}}
|
||||
<div class="p-summary{{if gt $ratio 1 }} portrait {{else}} landscape {{end}}">
|
||||
<div class="summary-image {{if gt $ratio 1 }} portrait {{else}} landscape {{end}}">
|
||||
<a href="{{ $postPermalink }}"><img src="{{ $thumb.Permalink }}" alt="{{ .Title }}"> </a>
|
||||
</div>
|
||||
{{end}}
|
||||
{{ else if (.Resources.ByType "image") }}
|
||||
{{ with (index (.Resources.ByType "image") 0) }}
|
||||
{{ $img := . }}
|
||||
{{ $height := add .Height 0.0}}
|
||||
{{ $ratio := div $height .Width}}
|
||||
{{ $thumb := .Fit "540x540 q80 webp"}}
|
||||
<div class="p-summary{{if gt $ratio 1 }} portrait {{else}} landscape {{end}}">
|
||||
<div class="summary-image {{if gt $ratio 1 }} portrait {{else}} landscape {{end}}">
|
||||
<a href="{{ $postPermalink }}"><img src="{{ $thumb.Permalink }}" alt="{{ .Title }}"> </a>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
<div class="p-summary">
|
||||
{{ end }}
|
||||
<div class="summary-text">
|
||||
{{ .Summary }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class='post-footer'>
|
||||
<a href="{{ .RelPermalink }}">
|
||||
<svg width="11" height="11" viewBox="0 0 11 11" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M10.2172 3.892C9.86979 3.02585 9.33722 2.34509 8.61023 1.77874C8.23826 1.49028 7.72957 1.04191 7.21547 0.839212C7.21382 0.703503 7.14487 0.575079 6.97767 0.503871C5.42624 -0.162284 3.69503 0.311299 2.52647 1.51482C1.94635 2.11223 1.51951 2.8478 1.21108 3.62501C0.914861 4.3676 0.507572 5.32483 0.948415 6.07996C1.00646 6.17836 1.09356 6.24193 1.1908 6.27306C1.2735 7.35573 1.57765 8.46801 2.37847 9.21874C3.2325 10.0162 4.43613 10.3053 5.5673 10.1773C6.72371 10.0468 7.96432 9.57061 8.8816 8.82474C9.01086 8.71974 9.1274 8.60844 9.23337 8.49296C9.27968 8.4924 9.32805 8.4875 9.37839 8.4718C11.3643 7.82491 10.8101 5.37347 10.2172 3.892Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</footer>
|
||||
</article>
|
||||
{{ if .Params.featured_image }}
|
||||
{{ with $img := .Resources.GetMatch .Params.featured_image }}
|
||||
{{ $height := add $img.Height 0.0}}
|
||||
{{ $ratio := div $height $img.Width}}
|
||||
{{ $thumb := $img.Fit "540x540 q80 webp"}}
|
||||
<div class="p-summary{{if gt $ratio 1 }} portrait {{else}} landscape {{end}}">
|
||||
<div class="summary-image {{if gt $ratio 1 }} portrait {{else}} landscape {{end}}">
|
||||
<a href="{{ $postPermalink }}"><img src="{{ $thumb.Permalink }}" alt="{{ .Title }}"> </a>
|
||||
</div>
|
||||
{{end}}
|
||||
{{ else if (.Resources.ByType "image") }}
|
||||
{{ with (index (.Resources.ByType "image") 0) }}
|
||||
{{ $img := . }}
|
||||
{{ $height := add .Height 0.0}}
|
||||
{{ $ratio := div $height .Width}}
|
||||
{{ $thumb := .Fit "540x540 q80 webp"}}
|
||||
<div class="p-summary{{if gt $ratio 1 }} portrait {{else}} landscape {{end}}">
|
||||
<div class="summary-image {{if gt $ratio 1 }} portrait {{else}} landscape {{end}}">
|
||||
<a href="{{ $postPermalink }}"><img src="{{ $thumb.Permalink }}" alt="{{ .Title }}"> </a>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
<div class="p-summary">
|
||||
{{ end }}
|
||||
<div class="summary-text">
|
||||
{{ .Summary }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class='post-footer'>
|
||||
<a href="{{ .RelPermalink }}">
|
||||
<svg width="11" height="11" viewBox="0 0 11 11" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M10.2172 3.892C9.86979 3.02585 9.33722 2.34509 8.61023 1.77874C8.23826 1.49028 7.72957 1.04191 7.21547 0.839212C7.21382 0.703503 7.14487 0.575079 6.97767 0.503871C5.42624 -0.162284 3.69503 0.311299 2.52647 1.51482C1.94635 2.11223 1.51951 2.8478 1.21108 3.62501C0.914861 4.3676 0.507572 5.32483 0.948415 6.07996C1.00646 6.17836 1.09356 6.24193 1.1908 6.27306C1.2735 7.35573 1.57765 8.46801 2.37847 9.21874C3.2325 10.0162 4.43613 10.3053 5.5673 10.1773C6.72371 10.0468 7.96432 9.57061 8.8816 8.82474C9.01086 8.71974 9.1274 8.60844 9.23337 8.49296C9.27968 8.4924 9.32805 8.4875 9.37839 8.4718C11.3643 7.82491 10.8101 5.37347 10.2172 3.892Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</footer>
|
||||
</article>
|
||||
</div>
|
||||
|
@ -1,49 +1,49 @@
|
||||
<div class='social card {{ range .Params.tags }}{{ if or (eq . "lumbungkios") (eq . "lumbunggallery")}}{{.}}{{ end }}{{ end }}'>
|
||||
<article class="h-entry social">
|
||||
<header>
|
||||
{{ $postPermalink := .Permalink}}
|
||||
<h2 class="p-name"><a href="{{ .Permalink }}" class="u-url">
|
||||
{{ range $i, $e := .Params.tags -}}
|
||||
{{- if $i -}} {{ end -}}
|
||||
<a href='{{ "/tags/" | relLangURL }}{{ . | urlize }}'>#{{ $e | humanize | lower }}</a>
|
||||
{{- end -}}
|
||||
</a></h2>
|
||||
</header>
|
||||
<div class='social card {{ range .Params.tags }}{{ if or (eq . "lumbungkios") (eq . "lumbungkiosproducts")}}lumbungkios{{else if (eq . "lumbunggallery")}}{{.}}{{ end }}{{ end }} filter-item' data-section="{{ .Section }}" data-sources='{{- partial "data/sources.html" . -}}' data-contributors='{{- partial "data/contributors.html" . -}}' data-tags='{{- partial "data/tags.html" . -}}'>
|
||||
<article class="h-entry social">
|
||||
<header>
|
||||
{{ $postPermalink := .Permalink}}
|
||||
<h2 class="p-name"><a href="{{ .Permalink }}" class="u-url">
|
||||
{{ range $i, $e := .Params.tags -}}
|
||||
{{- if $i -}} {{ end -}}
|
||||
<a href='{{ "/tags/" | relLangURL }}{{ . | urlize }}'>#{{ $e | humanize | lower }}</a>
|
||||
{{- end -}}
|
||||
</a></h2>
|
||||
</header>
|
||||
|
||||
{{ with (index (.Resources.ByType "video") 0) }}
|
||||
{{/* TODO this current logic does not suport video & image mixed */}}
|
||||
<div class="p-summary">
|
||||
<video controls width="540px" preload="none" poster="{{ $postPermalink }}/thumbnail.png">
|
||||
<source src="{{.Permalink}}" type="video/mp4">
|
||||
</video>
|
||||
{{ else}}
|
||||
{{ with (index (.Resources.ByType "image") 0) }}
|
||||
{{ $height := add .Height 0.0}}
|
||||
{{ $ratio := div $height .Width}}
|
||||
{{ $thumb := .Fit "540x540 q80 webp"}}
|
||||
<div class="p-summary{{if gt $ratio 1 }} portrait {{else}} landscape {{end}}">
|
||||
<div class="summary-image {{if gt $ratio 1 }} portrait {{else}} landscape {{end}}">
|
||||
<a href="{{ $postPermalink }}"><img src="{{ $thumb.Permalink }}" alt="{{ .Title }}"> </a>
|
||||
</div>
|
||||
{{ else }}
|
||||
<div class="p-summary">
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
<div class="summary-text">
|
||||
{{ .Summary }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="social-source"></div>
|
||||
|
||||
<footer class='post-footer'>
|
||||
<div class='footer-metadata'>
|
||||
<span class="from p-author">{{ if .Params.contributors }}From {{range .Params.contributors}}<b> <a href='{{ "/contributors/" | relLangURL }}{{ . | urlize }}/'> {{ . }}</a> {{end}}</b> on{{ end }}</span>
|
||||
<time class="dt-published" datetime="{{ .Date.Format `Jan 02 2006` }}">{{ .Date.Format "Jan 02, 2006" }}</time>
|
||||
</div>
|
||||
{{ if .Truncated }}
|
||||
<div class="footer-filler"></div>
|
||||
<div class='read-more'><a href="{{ .RelPermalink }}">Read More…</a></div>
|
||||
{{ end }}
|
||||
</footer>
|
||||
</article>
|
||||
{{ with (index (.Resources.ByType "video") 0) }}
|
||||
{{/* TODO this current logic does not suport video & image mixed */}}
|
||||
<div class="p-summary">
|
||||
<video controls width="540px" preload="none" poster="{{ $postPermalink }}/thumbnail.png">
|
||||
<source src="{{.Permalink}}" type="video/mp4">
|
||||
</video>
|
||||
{{ else}}
|
||||
{{ with (index (.Resources.ByType "image") 0) }}
|
||||
{{ $height := add .Height 0.0}}
|
||||
{{ $ratio := div $height .Width}}
|
||||
{{ $thumb := .Fit "540x540 q80 webp"}}
|
||||
<div class="p-summary{{if gt $ratio 1 }} portrait {{else}} landscape {{end}}">
|
||||
<div class="summary-image {{if gt $ratio 1 }} portrait {{else}} landscape {{end}}">
|
||||
<a href="{{ $postPermalink }}"><img src="{{ $thumb.Permalink }}" alt="{{ .Title }}"> </a>
|
||||
</div>
|
||||
{{ else }}
|
||||
<div class="p-summary">
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
<div class="summary-text">
|
||||
{{ .Summary }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="social-source"></div>
|
||||
|
||||
<footer class='post-footer'>
|
||||
<div class='footer-metadata'>
|
||||
<span class="from p-author">{{ if .Params.contributors }}From {{range .Params.contributors}}<b> <a href='{{ "/contributors/" | relLangURL }}{{ . | urlize }}/'> {{ . }}</a> {{end}}</b> on{{ end }}</span>
|
||||
<time class="dt-published" datetime="{{ .Date.Format `Jan 02 2006` }}">{{ .Date.Format "Jan 02, 2006" }}</time>
|
||||
</div>
|
||||
{{ if .Truncated }}
|
||||
<div class="footer-filler"></div>
|
||||
<div class='read-more'><a href="{{ .RelPermalink }}">Read More…</a></div>
|
||||
{{ end }}
|
||||
</footer>
|
||||
</article>
|
||||
</div>
|
@ -1,4 +1,4 @@
|
||||
<div class='video-box'>
|
||||
<div class='video-box filter-item' data-section="{{ .Section }}" data-sources='{{- partial "data/sources.html" . -}}' data-contributors='{{- partial "data/contributors.html" . -}}' data-tags='{{- partial "data/tags.html" . -}}'>
|
||||
<div class='video channel tape-label'><a href='{{ .Params.channel_url }}'> {{ .Params.video_channel }}</a></div>
|
||||
<div class='media' id='media-{{ .Params.uuid }}'>
|
||||
<span class='video-thumbnail' id='thumb-{{ .Params.uuid }}'
|
||||
|
@ -53,6 +53,11 @@
|
||||
|
||||
/*Main Stuff*/
|
||||
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
|
||||
body {
|
||||
font-size: 21px;
|
||||
font-family: Gudea, sans-serif;
|
||||
@ -127,15 +132,15 @@ a {
|
||||
max-width: 400px;
|
||||
}
|
||||
|
||||
.card:nth-child(even) {
|
||||
.post:nth-child(even) {
|
||||
transform: rotate(-1deg);
|
||||
}
|
||||
|
||||
.card:nth-child(odd) {
|
||||
.post:nth-child(odd) {
|
||||
transform: rotate(1deg);
|
||||
}
|
||||
|
||||
.card:nth-child(5) {
|
||||
.post:nth-child(5) {
|
||||
transform: rotate(2deg);
|
||||
}
|
||||
|
||||
@ -174,7 +179,7 @@ a {
|
||||
.home-link {
|
||||
display: block;
|
||||
max-width: 700px;
|
||||
width: 50%;
|
||||
width: 70%;
|
||||
padding: 0;
|
||||
margin: auto;
|
||||
}
|
||||
@ -185,30 +190,34 @@ a {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.login-link {
|
||||
#top-menu .login-link {
|
||||
background: #009d9b;
|
||||
padding: 5px 30px;
|
||||
color: #fff;
|
||||
font-weight: 900;
|
||||
position: absolute;
|
||||
right: 1.5rem;
|
||||
}
|
||||
|
||||
.menu-row {
|
||||
margin: 0 auto;
|
||||
max-width: 80%;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
position: sticky;
|
||||
top: 15px;
|
||||
z-index: 99;
|
||||
max-width: fit-content;
|
||||
}
|
||||
|
||||
.filter-link {
|
||||
.menu-row .menu .filter-link {
|
||||
background: #333;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0 30px;
|
||||
padding: 0.5rem 1.5rem;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
@ -224,8 +233,8 @@ a {
|
||||
fill:#fff;
|
||||
}
|
||||
|
||||
.mobile-menu-button {
|
||||
width: 35px;
|
||||
.menu-button {
|
||||
width: 30px;
|
||||
height: 16px;
|
||||
display: none;
|
||||
flex-direction: column;
|
||||
@ -233,18 +242,19 @@ a {
|
||||
color: pointer;
|
||||
}
|
||||
|
||||
.mobile-menu-button--line {
|
||||
.menu-button--line {
|
||||
width: 100%;
|
||||
height: 2px;
|
||||
background: #333;
|
||||
}
|
||||
|
||||
.menu {
|
||||
border: 2px solid #000;
|
||||
border: 2px solid #333;
|
||||
padding: 0 1rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background: #fff;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.menu-dot {
|
||||
@ -318,6 +328,23 @@ a {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.login-menu {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.menu-row .login {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border: 2px solid #333;
|
||||
padding: 0 1.5rem;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.login a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* styles for "tools" dropdown menu */
|
||||
.menu ul.submenu {
|
||||
flex-direction: column;
|
||||
@ -358,10 +385,6 @@ a {
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.menu a {
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
.menu .menu .submenu a {
|
||||
margin: 0;
|
||||
display: flex;
|
||||
@ -408,7 +431,6 @@ a {
|
||||
.h-entry header h2 a {
|
||||
text-decoration: none;
|
||||
color: var(--border-color);
|
||||
word-wrap: anywhere;
|
||||
}
|
||||
|
||||
.h-entry header .header-metadata {
|
||||
@ -776,7 +798,7 @@ div.pen-source {
|
||||
|
||||
|
||||
/* gallery cards */
|
||||
.card.social.lumbunggallery {
|
||||
.card.social.lumbunggallery, .card.social.lumbunggallery .post-footer a {
|
||||
border-color: var(--gallery-dark);
|
||||
background-color: var(--gallery-light);
|
||||
color: var(--gallery-dark);
|
||||
@ -1082,115 +1104,6 @@ li.page-item:after {
|
||||
}
|
||||
|
||||
|
||||
/* FILTER */
|
||||
|
||||
.filter-item, .card, .video-box {
|
||||
/* display: none;*/
|
||||
}
|
||||
|
||||
.show-item {
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
.filter-buttons-container {
|
||||
display: none;
|
||||
background: #fff;
|
||||
padding: 1.5rem;
|
||||
border: 2px solid;
|
||||
position: absolute;
|
||||
top: 44px;
|
||||
z-index: 99;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.filter-buttons-container-header {
|
||||
display: flex;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.load-all {
|
||||
margin-left: 30px;
|
||||
cursor: pointer;
|
||||
text-decoration: underline;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
@media (min-width: 980px) {
|
||||
.filter-link:hover + .filter-buttons-container {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.filter-buttons-container:hover {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.filter-buttons {
|
||||
width: 100%;
|
||||
margin-bottom: 10px;
|
||||
display: flex;
|
||||
white-space: nowrap;
|
||||
overflow: scroll;
|
||||
-ms-overflow-style: none;
|
||||
scrollbar-width: none;
|
||||
}
|
||||
|
||||
.filter-buttons button {
|
||||
display: block;
|
||||
border: 0;
|
||||
background: unset;
|
||||
border-radius: 0;
|
||||
width: fit-content;
|
||||
cursor: pointer;
|
||||
background: #009d9b;
|
||||
margin-right: 5px;
|
||||
white-space: nowrap;
|
||||
color: #fff;
|
||||
padding: 0.8rem;
|
||||
text-transform: lowercase;
|
||||
}
|
||||
|
||||
.filter-buttons .filter-button.active {
|
||||
background: #f04b1e;
|
||||
}
|
||||
|
||||
.filter-buttons .filter-button.active:after {
|
||||
content:"\00d7";
|
||||
display: inline-block;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.disable-button {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.page-nav {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
margin: 20px auto 50px;
|
||||
}
|
||||
|
||||
.nextpage {
|
||||
padding: 15px;
|
||||
position: relative;
|
||||
color: #333;
|
||||
text-decoration: none;
|
||||
margin: 0px 20px;
|
||||
font-size: 38px;
|
||||
}
|
||||
|
||||
.nextpage:after {
|
||||
content: "";
|
||||
height: 50%;
|
||||
width: 100%;
|
||||
display: block;
|
||||
border: 2px solid #333;
|
||||
border-top: 0;
|
||||
bottom: 0;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
/* Landingpage */
|
||||
.welcome-text {
|
||||
@ -1242,6 +1155,215 @@ li.page-item:after {
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
|
||||
/* FILTER */
|
||||
|
||||
.filter-item, .card, .video-box {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.show-item {
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
.filter-container {
|
||||
display: none;
|
||||
background: #fff;
|
||||
padding: 1.5rem;
|
||||
border: 2px solid #333;
|
||||
border-top: 0;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
z-index: 99;
|
||||
width: 100%;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.filter-information {
|
||||
width: 15%;
|
||||
}
|
||||
|
||||
#load-more {
|
||||
font-size: 0.8rem;
|
||||
text-decoration: underline;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.filter-buttons-container {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
width: calc(85% - 30px);
|
||||
}
|
||||
|
||||
.filter-buttons-container-header {
|
||||
display: flex;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.filter-link {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background: #333;
|
||||
color: #fff;
|
||||
padding: calc(0.5rem + 2px) 1rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.filter-link:hover + .filter-container {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.filter-container:hover {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.filter-buttons-dropdown {
|
||||
position: absolute;
|
||||
top: 41px;
|
||||
width: calc(100% + 2px);
|
||||
left: -1px;
|
||||
background: #fff;
|
||||
max-height: 35vh;
|
||||
min-height: 100%;
|
||||
overflow-y: scroll;
|
||||
overflow-x: hidden;
|
||||
border: 1px solid #333;
|
||||
border-top: 0;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.post.tv {
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
@media all and (min-width: 980px) {
|
||||
.filter-buttons:hover .filter-buttons-dropdown {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.filter-buttons:hover {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.filter-buttons {
|
||||
width: fit-content;
|
||||
display: flex;
|
||||
white-space: nowrap;
|
||||
flex-direction: column;
|
||||
position: relative;
|
||||
border: 1px solid #333;
|
||||
margin-right: 10px;
|
||||
padding-right: 30px;
|
||||
width: calc(25% - 7.5px);
|
||||
}
|
||||
|
||||
.filter-buttons:last-child {
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
.filter-buttons > button {
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.filter-by:after {
|
||||
content:"";
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-style: solid;
|
||||
border-width: 5px 5px 0 5px;
|
||||
border-color: #333333 transparent transparent transparent;
|
||||
position: absolute;
|
||||
right: 0.5rem;
|
||||
}
|
||||
|
||||
.filter-buttons button {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
border: 0;
|
||||
background: unset;
|
||||
border-radius: 0;
|
||||
width: 100%;
|
||||
padding: 0.6rem;
|
||||
cursor: pointer;
|
||||
white-space: nowrap;
|
||||
text-transform: lowercase;
|
||||
}
|
||||
|
||||
.filter-buttons-dropdown button {
|
||||
border-bottom: 1px solid;
|
||||
}
|
||||
|
||||
.filter-buttons .filter-button {
|
||||
padding: 0.6rem 0.6rem 0.6rem 1.6rem;
|
||||
}
|
||||