forked from duniayetu/www_duniayetu
		
	modify products
This commit is contained in:
		@@ -60,6 +60,12 @@ feed = true
 | 
			
		||||
paginate_by = 2
 | 
			
		||||
paginate_path = "blog-posts"
 | 
			
		||||
 | 
			
		||||
[[taxonomies]]
 | 
			
		||||
name = "items"
 | 
			
		||||
feed = true
 | 
			
		||||
paginate_by = 2
 | 
			
		||||
paginate_path = "product-posts"
 | 
			
		||||
 | 
			
		||||
[[taxonomies]]
 | 
			
		||||
name = "roles"
 | 
			
		||||
feed = true
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@ description: "Together with our global community, we're realizing the initial pr
 | 
			
		||||
date: 2022-03-21T14:40:00-05:00
 | 
			
		||||
template: blogPage.html
 | 
			
		||||
taxonomies:
 | 
			
		||||
  categories: ["product1"]
 | 
			
		||||
  items: ["product1"]
 | 
			
		||||
extra:
 | 
			
		||||
  subtitle: "Together with our global community, we're realizing the initial promise of an open-source, peer-to-peer Internet owned by the people."
 | 
			
		||||
  author: "Sacha Obeegadoo"
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@ description: While technology has had an important role in the creation of today
 | 
			
		||||
date: 2022-10-28
 | 
			
		||||
taxonomies:
 | 
			
		||||
  tags: []
 | 
			
		||||
  categories: [product4]
 | 
			
		||||
  items: [product4]
 | 
			
		||||
extra:
 | 
			
		||||
  author: victoria_obeegadoo
 | 
			
		||||
  imgPath: tech_as_a_tool_for_humanity.png
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@ description: A decentralized and energy-efficient way for people to expand a new
 | 
			
		||||
date: 2022-03-01
 | 
			
		||||
taxonomies:
 | 
			
		||||
    tags: []
 | 
			
		||||
    categories: [product2]
 | 
			
		||||
    items: [product2]
 | 
			
		||||
extra:
 | 
			
		||||
    author: sacha_obeegadoo
 | 
			
		||||
    imgPath: what_is_farming.png
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@ description: P2P systems are network, not linear or pyramidal hierarchies (tho
 | 
			
		||||
date: 2020-12-15
 | 
			
		||||
taxonomies:
 | 
			
		||||
    tags: []
 | 
			
		||||
    categories: [product3]
 | 
			
		||||
    items: [product3]
 | 
			
		||||
extra:
 | 
			
		||||
    author: sacha_obeegadoo
 | 
			
		||||
    imgPath: peer_to_peer.png
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										110
									
								
								static/js/custom.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								static/js/custom.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,110 @@
 | 
			
		||||
var displayedMenu = "";
 | 
			
		||||
var hamburgerShown = false;
 | 
			
		||||
let width = screen.width;
 | 
			
		||||
var isMobile = width < 1024;
 | 
			
		||||
 | 
			
		||||
function toggleMenu(button) {
 | 
			
		||||
  if (displayedMenu === button.id.split("-")[0]) {
 | 
			
		||||
    button.className = button.className.replace(
 | 
			
		||||
      " text-blue-500 bg-stone-200 sm:bg-transparent",
 | 
			
		||||
      " text-gray-900"
 | 
			
		||||
    );
 | 
			
		||||
    hideMenu(button.id.split("-")[0]);
 | 
			
		||||
    button.lastElementChild.className = button.lastElementChild.className.replace(
 | 
			
		||||
      "rotate-0",
 | 
			
		||||
      "-rotate-90"
 | 
			
		||||
    );
 | 
			
		||||
    displayedMenu = "";
 | 
			
		||||
  } else {
 | 
			
		||||
    showMenu(button.id.split("-")[0]);
 | 
			
		||||
    button.lastElementChild.className = button.lastElementChild.className.replace(
 | 
			
		||||
      "-rotate-90",
 | 
			
		||||
      "rotate-0"
 | 
			
		||||
    );
 | 
			
		||||
    button.className = button.className.replace(
 | 
			
		||||
      " text-gray-900",
 | 
			
		||||
      " text-blue-500 bg-stone-200 sm:bg-transparent"
 | 
			
		||||
    );
 | 
			
		||||
    displayedMenu = button.id.split("-")[0];
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function handleClick(button) {
 | 
			
		||||
  if (button.id === "hamburger-btn" || button.id === "close-hamburger-btn") {
 | 
			
		||||
    toggleHamburger();
 | 
			
		||||
  }
 | 
			
		||||
  if (button.id.indexOf("menu") !== -1) {
 | 
			
		||||
    toggleMenu(button);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function toggleHamburger() {
 | 
			
		||||
  if (hamburgerShown) {
 | 
			
		||||
    hideHamburger();
 | 
			
		||||
    hamburgerShown = false;
 | 
			
		||||
  } else {
 | 
			
		||||
    showHamburger();
 | 
			
		||||
    hamburgerShown = true;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function showMenu(menuName) {
 | 
			
		||||
  var menuId = menuName + (isMobile ? "-mobile-menu" : "-menu");
 | 
			
		||||
  var menuBtnId = menuName + (isMobile ? "-mobile-menu" : "-menu");
 | 
			
		||||
  var menuElement = document.getElementById(menuId);
 | 
			
		||||
  menuElement.className = menuElement.className.replace(" hidden", "");
 | 
			
		||||
  setTimeout(function () {
 | 
			
		||||
    menuElement.className = menuElement.className.replace(
 | 
			
		||||
      "duration-200 ease-in opacity-0 -translate-y-1",
 | 
			
		||||
      "duration-150 ease-out opacity-1 -translate-y-0"
 | 
			
		||||
    );
 | 
			
		||||
  }, 10);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function hideMenu(menuName) {
 | 
			
		||||
  var menuId = menuName + (isMobile ? "-mobile-menu" : "-menu");
 | 
			
		||||
  var menuElement = document.getElementById(menuId);
 | 
			
		||||
  menuElement.className = menuElement.className.replace(
 | 
			
		||||
    "duration-150 ease-out opacity-1 -translate-y-0",
 | 
			
		||||
    "duration-200 ease-in opacity-0 -translate-y-1"
 | 
			
		||||
  );
 | 
			
		||||
  setTimeout(function () {
 | 
			
		||||
    menuElement.className = menuElement.className + " hidden";
 | 
			
		||||
  }, 300);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function showHamburger() {
 | 
			
		||||
  document.getElementById("header-container").className = "overflow-hidden";
 | 
			
		||||
  document.getElementById("hamburger").className =
 | 
			
		||||
    "fixed mt-24 z-20 top-0 inset-x-0 transition transform origin-top-right";
 | 
			
		||||
  document.getElementById("hamburger-btn").className =
 | 
			
		||||
    "hidden lg:hidden inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2";
 | 
			
		||||
  document.getElementById("close-hamburger-btn").className =
 | 
			
		||||
    "inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function hideHamburger() {
 | 
			
		||||
  document.getElementById("header-container").className = "";
 | 
			
		||||
  document.getElementById("hamburger").className =
 | 
			
		||||
    "hidden absolute z-20 top-0 inset-x-0 transition transform origin-top-right lg:hidden";
 | 
			
		||||
  document.getElementById("hamburger-btn").className =
 | 
			
		||||
    "inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2";
 | 
			
		||||
  document.getElementById("close-hamburger-btn").className =
 | 
			
		||||
    "hidden lg:hidden inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2";
 | 
			
		||||
  if (displayedMenu !== "") {
 | 
			
		||||
    hideMenu(displayedMenu);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
window.onload = function () {
 | 
			
		||||
  let elements = document.getElementsByTagName("button");
 | 
			
		||||
  let buttons = [...elements];
 | 
			
		||||
  buttons.forEach((button) => {
 | 
			
		||||
    button.addEventListener("click", function () {
 | 
			
		||||
      handleClick(button);
 | 
			
		||||
    });
 | 
			
		||||
  });
 | 
			
		||||
  document
 | 
			
		||||
    .getElementById("mobile-learn-btn")
 | 
			
		||||
    ?.addEventListener("click", toggleMenu);
 | 
			
		||||
};
 | 
			
		||||
@@ -9,5 +9,6 @@
 | 
			
		||||
            {% block content %}{% endblock %}    
 | 
			
		||||
        </div>
 | 
			
		||||
        {% include "partials/footer.html" %}
 | 
			
		||||
        <script type="text/javascript" src="{{ get_url(path='js/custom.js')}}"></script>
 | 
			
		||||
    </body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										4
									
								
								templates/items/list.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								templates/items/list.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
			
		||||
{% extends "index.html" %}
 | 
			
		||||
 | 
			
		||||
{% block content %}
 | 
			
		||||
{% endblock content %}
 | 
			
		||||
							
								
								
									
										14
									
								
								templates/items/single.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								templates/items/single.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
{% extends "index.html" %}
 | 
			
		||||
 | 
			
		||||
{% block content %}
 | 
			
		||||
 | 
			
		||||
<main class="pt-16">
 | 
			
		||||
 | 
			
		||||
    <div class="flex flex-col md:flex-row">
 | 
			
		||||
        {% include "partials/productPosts.html" %}
 | 
			
		||||
        {% include "partials/productSidebar.html" %}
 | 
			
		||||
    </div>
 | 
			
		||||
 </main> 
 | 
			
		||||
 
 | 
			
		||||
 {% endblock content %}
 | 
			
		||||
 | 
			
		||||
@@ -11,7 +11,7 @@ and a side nav for category and featured post navigation
 | 
			
		||||
<main>
 | 
			
		||||
 | 
			
		||||
    <!--sets global featured variable as the most recent post with the isFeatured tag-->
 | 
			
		||||
    {%- set section = get_section(path="blog/_index.md") %}
 | 
			
		||||
    {%- set section = get_section(path="products/_index.md") %}
 | 
			
		||||
    {% for page in section.pages %}
 | 
			
		||||
    {% if page.extra.isFeatured %}
 | 
			
		||||
        {%- set_global featured = page %}
 | 
			
		||||
@@ -19,11 +19,11 @@ and a side nav for category and featured post navigation
 | 
			
		||||
    {% endif %}
 | 
			
		||||
    {% endfor %}
 | 
			
		||||
    
 | 
			
		||||
    {% include "partials/featuredBlog.html" %}
 | 
			
		||||
    {% include "partials/featuredProduct.html" %}
 | 
			
		||||
 | 
			
		||||
    <div class="flex flex-col md:flex-row container mx-auto">
 | 
			
		||||
        {% include "partials/blogPosts.html" %}
 | 
			
		||||
        {% include "partials/blogSidebar.html" %}
 | 
			
		||||
        {% include "partials/productPosts.html" %}
 | 
			
		||||
        {% include "partials/productSidebar.html" %}
 | 
			
		||||
    </div>
 | 
			
		||||
 </main> 
 | 
			
		||||
 
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										36
									
								
								templates/partials/featuredProduct.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								templates/partials/featuredProduct.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
{% if featured.taxonomies.people %}
 | 
			
		||||
    {% set people = get_section(path="people/_index.md") %}           
 | 
			
		||||
    {% set pages_str = people.pages | json_encode() | as_str %}
 | 
			
		||||
    {% if pages_str is containing(featured.taxonomies.people[0]) %}
 | 
			
		||||
        {% set author_path = 'people/' ~ featured.taxonomies.people[0] ~ '/index.md' %}
 | 
			
		||||
        {% set author = get_page(path=author_path) %}
 | 
			
		||||
    {% endif %}
 | 
			
		||||
{% endif %}
 | 
			
		||||
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
  <div class="md:grid md:grid-cols-2 md:gap-8 relative mt-16 lg:mt-16 items-center container mx-auto">
 | 
			
		||||
    <div class="relative lg:ml-8 my-8 w-full md:w-auto">
 | 
			
		||||
      <h3 class="text-base not-italic leading-6 text-gray-600">FEATURED PRODUCT</h3>
 | 
			
		||||
      <a href={{featured.permalink}} class="">
 | 
			
		||||
        <h2
 | 
			
		||||
          class="mt-8 text-2xl main-title sm:text-3xl md:text-4xl lg:text-5xl fw-500 leading-snug font-normal mb-4 md:mb-10 ">
 | 
			
		||||
          {{ featured.title }}
 | 
			
		||||
        </h2>
 | 
			
		||||
      </a>
 | 
			
		||||
      <h4 class="text-sm not-italic font-light leading-6 text-gray-600">
 | 
			
		||||
        {{ featured.date | date(format="%B %e, %Y", timezone="America/Chicago")}} -
 | 
			
		||||
      </h4>
 | 
			
		||||
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="mx-4 relative lg:mt-0 max-w-full">
 | 
			
		||||
      <img class="relative mx-auto md:w-auto rounded md:max-w-full max-h-80" src={{featured.permalink}}{{featured.extra.imgPath}} alt="" />
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
  <hr class="mt-6">
 | 
			
		||||
 | 
			
		||||
  </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</body>
 | 
			
		||||
@@ -3,87 +3,6 @@
 | 
			
		||||
  Read the documentation to get started: https://tailwindui.com/documentation
 | 
			
		||||
--><!-- This example requires Tailwind CSS v1.4.0+ -->
 | 
			
		||||
 | 
			
		||||
<script type="text/javascript">
 | 
			
		||||
    
 | 
			
		||||
    var displayedMenu = "";
 | 
			
		||||
    var hamburgerShown = false;
 | 
			
		||||
    let width = screen.width;
 | 
			
		||||
    var isMobile = width < 1024;
 | 
			
		||||
 | 
			
		||||
    function toggleMenu(button) {
 | 
			
		||||
        if (displayedMenu === button.id.split("-")[0]) { 
 | 
			
		||||
            button.className = button.className.replace(" text-blue-500 bg-stone-200 sm:bg-transparent", " text-gray-900");
 | 
			
		||||
            hideMenu(button.id.split("-")[0]);
 | 
			
		||||
            button.lastElementChild.className = button.lastElementChild.className.replace("rotate-0", "-rotate-90")
 | 
			
		||||
            displayedMenu = "";
 | 
			
		||||
        }
 | 
			
		||||
        else { 
 | 
			
		||||
            showMenu(button.id.split("-")[0]);
 | 
			
		||||
            button.lastElementChild.className = button.lastElementChild.className.replace("-rotate-90", "rotate-0")
 | 
			
		||||
            button.className = button.className.replace(" text-gray-900", " text-blue-500 bg-stone-200 sm:bg-transparent");
 | 
			
		||||
            displayedMenu = button.id.split("-")[0]
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function handleClick(button) {
 | 
			
		||||
        if (button.id === "hamburger-btn" || button.id === "close-hamburger-btn") { toggleHamburger() }
 | 
			
		||||
        if (button.id.indexOf("menu") !== -1 ) { 
 | 
			
		||||
            toggleMenu(button) 
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function toggleHamburger() {
 | 
			
		||||
        if (hamburgerShown) { 
 | 
			
		||||
            hideHamburger();
 | 
			
		||||
            hamburgerShown = false;
 | 
			
		||||
        }
 | 
			
		||||
        else { 
 | 
			
		||||
            showHamburger();
 | 
			
		||||
            hamburgerShown = true;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function showMenu(menuName) {
 | 
			
		||||
        var menuId = menuName + (isMobile ? '-mobile-menu' : '-menu');
 | 
			
		||||
        var menuBtnId = menuName + (isMobile ? '-mobile-menu' : '-menu');
 | 
			
		||||
        var menuElement = document.getElementById(menuId)
 | 
			
		||||
        menuElement.className = menuElement.className.replace(" hidden" , "");
 | 
			
		||||
        setTimeout(function() { menuElement.className = menuElement.className.replace("duration-200 ease-in opacity-0 -translate-y-1", "duration-150 ease-out opacity-1 -translate-y-0"); }, 10);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function hideMenu(menuName) {
 | 
			
		||||
        var menuId = menuName + (isMobile ? '-mobile-menu' : '-menu');
 | 
			
		||||
        var menuElement = document.getElementById(menuId)
 | 
			
		||||
        menuElement.className = menuElement.className.replace("duration-150 ease-out opacity-1 -translate-y-0", "duration-200 ease-in opacity-0 -translate-y-1");
 | 
			
		||||
        setTimeout(function() { menuElement.className = menuElement.className + " hidden" }, 300);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function showHamburger() {
 | 
			
		||||
        document.getElementById('header-container').className = "overflow-hidden";
 | 
			
		||||
        document.getElementById('hamburger').className = "fixed mt-24 z-20 top-0 inset-x-0 transition transform origin-top-right";
 | 
			
		||||
        document.getElementById('hamburger-btn').className = "hidden lg:hidden inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2";
 | 
			
		||||
        document.getElementById('close-hamburger-btn').className = "inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function hideHamburger() {
 | 
			
		||||
        document.getElementById('header-container').className = "";
 | 
			
		||||
        document.getElementById('hamburger').className = "hidden absolute z-20 top-0 inset-x-0 transition transform origin-top-right lg:hidden";
 | 
			
		||||
        document.getElementById('hamburger-btn').className = "inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2";
 | 
			
		||||
        document.getElementById('close-hamburger-btn').className = "hidden lg:hidden inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2";
 | 
			
		||||
        if (displayedMenu !== "") { hideMenu(displayedMenu); }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    window.onload = function(){
 | 
			
		||||
        let elements = document.getElementsByTagName("button");
 | 
			
		||||
        let buttons = [...elements]
 | 
			
		||||
        buttons.forEach((button) => {
 | 
			
		||||
            button.addEventListener( 'click', function() { handleClick(button) });
 | 
			
		||||
        })
 | 
			
		||||
        document.getElementById("mobile-learn-btn").addEventListener( 'click', toggleMenu);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<!-- set variables used for header template -->
 | 
			
		||||
{% set section = get_section(path="_index.md") %}
 | 
			
		||||
 
 | 
			
		||||
@@ -3,87 +3,6 @@
 | 
			
		||||
  Read the documentation to get started: https://tailwindui.com/documentation
 | 
			
		||||
--><!-- This example requires Tailwind CSS v1.4.0+ -->
 | 
			
		||||
 | 
			
		||||
<script type="text/javascript">
 | 
			
		||||
    
 | 
			
		||||
    var displayedMenu = "";
 | 
			
		||||
    var hamburgerShown = false;
 | 
			
		||||
    let width = screen.width;
 | 
			
		||||
    var isMobile = width < 1024;
 | 
			
		||||
 | 
			
		||||
    function toggleMenu(button) {
 | 
			
		||||
        if (displayedMenu === button.id.split("-")[0]) { 
 | 
			
		||||
            button.className = button.className.replace(" text-blue-500 bg-stone-200 sm:bg-transparent", " text-gray-900");
 | 
			
		||||
            hideMenu(button.id.split("-")[0]);
 | 
			
		||||
            button.lastElementChild.className = button.lastElementChild.className.replace("rotate-0", "-rotate-90")
 | 
			
		||||
            displayedMenu = "";
 | 
			
		||||
        }
 | 
			
		||||
        else { 
 | 
			
		||||
            showMenu(button.id.split("-")[0]);
 | 
			
		||||
            button.lastElementChild.className = button.lastElementChild.className.replace("-rotate-90", "rotate-0")
 | 
			
		||||
            button.className = button.className.replace(" text-gray-900", " text-blue-500 bg-stone-200 sm:bg-transparent");
 | 
			
		||||
            displayedMenu = button.id.split("-")[0]
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function handleClick(button) {
 | 
			
		||||
        if (button.id === "hamburger-btn" || button.id === "close-hamburger-btn") { toggleHamburger() }
 | 
			
		||||
        if (button.id.indexOf("menu") !== -1 ) { 
 | 
			
		||||
            toggleMenu(button) 
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function toggleHamburger() {
 | 
			
		||||
        if (hamburgerShown) { 
 | 
			
		||||
            hideHamburger();
 | 
			
		||||
            hamburgerShown = false;
 | 
			
		||||
        }
 | 
			
		||||
        else { 
 | 
			
		||||
            showHamburger();
 | 
			
		||||
            hamburgerShown = true;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function showMenu(menuName) {
 | 
			
		||||
        var menuId = menuName + (isMobile ? '-mobile-menu' : '-menu');
 | 
			
		||||
        var menuBtnId = menuName + (isMobile ? '-mobile-menu' : '-menu');
 | 
			
		||||
        var menuElement = document.getElementById(menuId)
 | 
			
		||||
        menuElement.className = menuElement.className.replace(" hidden" , "");
 | 
			
		||||
        setTimeout(function() { menuElement.className = menuElement.className.replace("duration-200 ease-in opacity-0 -translate-y-1", "duration-150 ease-out opacity-1 -translate-y-0"); }, 10);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function hideMenu(menuName) {
 | 
			
		||||
        var menuId = menuName + (isMobile ? '-mobile-menu' : '-menu');
 | 
			
		||||
        var menuElement = document.getElementById(menuId)
 | 
			
		||||
        menuElement.className = menuElement.className.replace("duration-150 ease-out opacity-1 -translate-y-0", "duration-200 ease-in opacity-0 -translate-y-1");
 | 
			
		||||
        setTimeout(function() { menuElement.className = menuElement.className + " hidden" }, 300);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function showHamburger() {
 | 
			
		||||
        document.getElementById('header-container').className = "overflow-hidden";
 | 
			
		||||
        document.getElementById('hamburger').className = "fixed mt-16 z-20 top-0 inset-x-0 transition transform origin-top-right";
 | 
			
		||||
        document.getElementById('hamburger-btn').className = "hidden lg:hidden inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2";
 | 
			
		||||
        document.getElementById('close-hamburger-btn').className = "inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function hideHamburger() {
 | 
			
		||||
        document.getElementById('header-container').className = "";
 | 
			
		||||
        document.getElementById('hamburger').className = "hidden absolute z-20 top-0 inset-x-0 transition transform origin-top-right lg:hidden";
 | 
			
		||||
        document.getElementById('hamburger-btn').className = "inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2";
 | 
			
		||||
        document.getElementById('close-hamburger-btn').className = "hidden lg:hidden inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out my-2";
 | 
			
		||||
        if (displayedMenu !== "") { hideMenu(displayedMenu); }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    window.onload = function(){
 | 
			
		||||
        let elements = document.getElementsByTagName("button");
 | 
			
		||||
        let buttons = [...elements]
 | 
			
		||||
        buttons.forEach((button) => {
 | 
			
		||||
            button.addEventListener( 'click', function() { handleClick(button) });
 | 
			
		||||
        })
 | 
			
		||||
        document.getElementById("mobile-learn-btn").addEventListener( 'click', toggleMenu);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
{%- set section = get_section(path="header/_index.md") %}
 | 
			
		||||
{% set header_items = section.content | safe | split(pat="<li>") %}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										75
									
								
								templates/partials/productCard.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								templates/partials/productCard.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,75 @@
 | 
			
		||||
{% if post.date %}
 | 
			
		||||
{% if post.taxonomies.people %}
 | 
			
		||||
{% set people = get_section(path="people/_index.md") %}
 | 
			
		||||
{% set pages_str = people.pages | json_encode() | as_str %}
 | 
			
		||||
{% if pages_str is containing(post.taxonomies.people[0]) %}
 | 
			
		||||
{% set author_path = 'people/' ~ post.taxonomies.people[0] ~ '/index.md' %}
 | 
			
		||||
{% set author = get_page(path=author_path) %}
 | 
			
		||||
{% set content = get_page(path=author_path) %}
 | 
			
		||||
{% endif %}
 | 
			
		||||
{% endif %}
 | 
			
		||||
 | 
			
		||||
<div class="flex flex-col rounded-lg shadow-lg overflow-hidden">
 | 
			
		||||
  <div class="flex-1 border-b">
 | 
			
		||||
    <a href="{{ post.permalink }}" class="block">
 | 
			
		||||
        {% if post.extra.imgPath %}
 | 
			
		||||
      {% set img_url = get_url(path='/' ~ post.relative_path | replace(from='_', to='-') | replace(from='index.md',
 | 
			
		||||
      to=post.extra.imgPath)) %}
 | 
			
		||||
      <div class="flex-shrink-0">
 | 
			
		||||
        <img class="h-48 w-full mx-auto object-cover" src={{img_url}} alt="{{post.title ~ ' Picture'}}" />
 | 
			
		||||
      </div>
 | 
			
		||||
      {%endif%}
 | 
			
		||||
      <div class="flex-1 bg-white p-6 flex flex-col justify-between">
 | 
			
		||||
 | 
			
		||||
        <h3 class="mt-2 text-xl leading-6 font-medium text-gray-900 text-left not-italic">
 | 
			
		||||
          {{ post.title }}
 | 
			
		||||
        </h3>
 | 
			
		||||
        {% if post.description %}
 | 
			
		||||
        <p class="mt-3 text-sm font-normal text-gray-500 text-left">
 | 
			
		||||
          {{ post.description }}
 | 
			
		||||
        </p>
 | 
			
		||||
        {% endif %}
 | 
			
		||||
        <div class="article hidden">{{ post.content | safe }}</div>
 | 
			
		||||
 | 
			
		||||
        <div class="w-full post-card-meta py-3">
 | 
			
		||||
          <div class="avatars">
 | 
			
		||||
            <div class="flex">
 | 
			
		||||
              <div class="flex">
 | 
			
		||||
                <ul class="list-none flex author-list mr-2 pl-0">
 | 
			
		||||
                  {% if author %}
 | 
			
		||||
                  {% set author_img = get_url(path='/' ~ author.relative_path | replace(from='_', to='-') |
 | 
			
		||||
                  replace(from='index.md', to=author.extra.imgPath)) %}
 | 
			
		||||
                  <li class="author-list-item"><img alt="{{author.title}}" src="{{author_img}}"
 | 
			
		||||
                      class="w-8 h-8 rounded-full bg-gray-200 border-2 border-white"></li>
 | 
			
		||||
                  {% endif %}
 | 
			
		||||
                </ul>
 | 
			
		||||
              </div>
 | 
			
		||||
              <div class="flex flex-col text-left leading-none uppercase">
 | 
			
		||||
                {% if author %}
 | 
			
		||||
                <p class="text-gray-700 text-xs">{{ author.title }}</p>
 | 
			
		||||
                {% endif %}
 | 
			
		||||
                <p class="text-gray-700 text-xs">
 | 
			
		||||
                  <time datetime="{{post.date}}">
 | 
			
		||||
                    {{ post.date | date(format="%B %e, %Y", timezone="America/Chicago") }}
 | 
			
		||||
                  </time>
 | 
			
		||||
                </p>
 | 
			
		||||
                <p class="flex justify-between lowercase my-2 items-center text-gray-700 text-xs"><span id="time"
 | 
			
		||||
                    class="time"></span>
 | 
			
		||||
                </p>
 | 
			
		||||
              </div>
 | 
			
		||||
              <br />
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </a>
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<style>
 | 
			
		||||
  .border-b {
 | 
			
		||||
    border-bottom-width: 1px !important;
 | 
			
		||||
  }
 | 
			
		||||
</style>
 | 
			
		||||
{% endif %}
 | 
			
		||||
							
								
								
									
										70
									
								
								templates/partials/productPosts.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								templates/partials/productPosts.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,70 @@
 | 
			
		||||
{% block content %}
 | 
			
		||||
 | 
			
		||||
<div class="text-center main-title px-0 md:w-2/3 lg:w-2/3 mx-8 md:mx-12">
 | 
			
		||||
  <h1
 | 
			
		||||
    class="tracking-tight text-left text-2xl md:text-4xl lg:text-5xl fw-500 leading-snug font-normal mb-10"
 | 
			
		||||
  >
 | 
			
		||||
  {% set path_array = current_path | split(pat="/") %}
 | 
			
		||||
  {% set taxonomy = path_array[1] %}
 | 
			
		||||
  {% set item = path_array[2] %}
 | 
			
		||||
    The Latest from OurPhone   
 | 
			
		||||
    {% if taxonomy == "items" %} - 
 | 
			
		||||
        {{item | replace(from='-', to=' ' ) | title}}
 | 
			
		||||
    {% endif %}
 | 
			
		||||
  </h1>
 | 
			
		||||
  <div>
 | 
			
		||||
    <div class="mt-12 grid gap-5 max-w-lg mx-auto lg:grid-cols-2 xl:grid-cols-3 lg:max-w-none">
 | 
			
		||||
      {%- for post in paginator.pages %} 
 | 
			
		||||
          {% if not post.extra.hidden %}
 | 
			
		||||
            {% include "partials/productCard.html" %} 
 | 
			
		||||
         {%endif%} {%- endfor %}
 | 
			
		||||
    </div>
 | 
			
		||||
    <hr class="mt-6" />
 | 
			
		||||
    <p class="text-center text-sm mt-2 mb-16">
 | 
			
		||||
      {% if paginator.previous %}
 | 
			
		||||
      <a
 | 
			
		||||
        class="border-transparent"
 | 
			
		||||
        aria-label="First page"
 | 
			
		||||
        href="{{ paginator.first }}"
 | 
			
		||||
        >{% include "partials/icons/svgPrevPageIcon.html" %}{% include
 | 
			
		||||
        "partials/icons/svgPrevPageIcon.html" %}</a
 | 
			
		||||
      >
 | 
			
		||||
               
 | 
			
		||||
      <a
 | 
			
		||||
        class="border-transparent"
 | 
			
		||||
        aria-label="Previous page"
 | 
			
		||||
        href="{{ paginator.previous }}"
 | 
			
		||||
        >{% include "partials/icons/svgPrevPageIcon.html" %}</a
 | 
			
		||||
      >
 | 
			
		||||
               
 | 
			
		||||
                {% else %} {%
 | 
			
		||||
      include "partials/icons/svgFirstPageIcon.html" %}{% include
 | 
			
		||||
      "partials/icons/svgFirstPageIcon.html" %}
 | 
			
		||||
                {% include
 | 
			
		||||
      "partials/icons/svgFirstPageIcon.html" %}
 | 
			
		||||
               
 | 
			
		||||
                {% endif %} {% if
 | 
			
		||||
      paginator.next %}
 | 
			
		||||
      <a
 | 
			
		||||
        class="border-transparent"
 | 
			
		||||
        aria-label="Next page"
 | 
			
		||||
        href="{{ paginator.next }}"
 | 
			
		||||
        >{% include "partials/icons/svgNextPageIcon.html" %}</a
 | 
			
		||||
      >
 | 
			
		||||
               
 | 
			
		||||
      <a
 | 
			
		||||
        class="border-transparent"
 | 
			
		||||
        aria-label="Last page"
 | 
			
		||||
        href="{{ paginator.last }}"
 | 
			
		||||
        >{% include "partials/icons/svgNextPageIcon.html" %}{% include
 | 
			
		||||
        "partials/icons/svgNextPageIcon.html" %}</a
 | 
			
		||||
      >
 | 
			
		||||
      {% else %} {% include "partials/icons/svgLastPageIcon.html" %}
 | 
			
		||||
                {% include
 | 
			
		||||
      "partials/icons/svgLastPageIcon.html" %}{% include
 | 
			
		||||
      "partials/icons/svgLastPageIcon.html" %} {% endif %}
 | 
			
		||||
    </p>
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
{% endblock content %}
 | 
			
		||||
							
								
								
									
										38
									
								
								templates/partials/productSidebar.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								templates/partials/productSidebar.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
			
		||||
 | 
			
		||||
<div class="mx-8 md:mx-4 flex flex-col">
 | 
			
		||||
    <div class="flex flex-col mb-12 mr-8 lg:mr-24">
 | 
			
		||||
        <h4 class="text-base not-italic font-medium leading-6 text-gray-600 mb-6"> FILTER PRODUCTS BY</h4>
 | 
			
		||||
        <a id="all" class="mb-3 text-black font-normal" href="/products">All</a>
 | 
			
		||||
        {% set taxonomy = get_taxonomy(kind="items") %}
 | 
			
		||||
        {% set items = taxonomy.items %}
 | 
			
		||||
        {% for item in items %}
 | 
			
		||||
            {% set path = item.name | slugify %}
 | 
			
		||||
            {% set fullpath = "/items/" ~ path %}
 | 
			
		||||
            <a id="{{path}}" class="mb-3 text-black font-normal" href={{fullpath}}> {{item.name}} </a>
 | 
			
		||||
        {% endfor %}
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
{% set section = get_section(path="products/_index.md")%}
 | 
			
		||||
 | 
			
		||||
    <div class="lg:pt-6 flex flex-col mb-12 w-64 mr-8 lg:mr-24">
 | 
			
		||||
        <h4 class="text-base not-italic font-medium leading-6 text-gray-600 mb-6"> FEATURED POSTS</h4>
 | 
			
		||||
 | 
			
		||||
        {% for page in section.pages %}
 | 
			
		||||
        {% if page.extra.isFeatured %}
 | 
			
		||||
            <a class="mb-3 text-blue-700" href={{page.permalink}}>{{ page.title }}</a>
 | 
			
		||||
        {% endif %}
 | 
			
		||||
        {% endfor %}
 | 
			
		||||
        
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
    function setActiveProduct() {
 | 
			
		||||
        let activeProduct = window.location.pathname.split("/")[2]    
 | 
			
		||||
        if (typeof activeProduct === "undefined") { activeLink = document.getElementById("all") }
 | 
			
		||||
        else { activeLink = document.getElementById(activeProduct)}
 | 
			
		||||
        activeLink.className = activeLink.className.replace("text-black font-normal", "text-black font-semibold");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    setActiveProduct()
 | 
			
		||||
</script>
 | 
			
		||||
@@ -12,12 +12,12 @@
 | 
			
		||||
 | 
			
		||||
<!-- Default page template for blog posts and basic informative markdown files -->
 | 
			
		||||
 | 
			
		||||
{% set split = page.content | split(pat="threefold.io") %}
 | 
			
		||||
{% set split = page.content | split(pat="ourphone.tf") %}
 | 
			
		||||
{% if split | length < 2 %} {% set content=page.content %} {% else %} {% set content="" %} {% for part in split %} {% if
 | 
			
		||||
  part is starting_with("/blog") %} {% set split_part=part | split(pat='/">' ) %} {% set link=split_part[0] %} {% set
 | 
			
		||||
  link=link | replace(from="/blog/post" , to="/blog" ) %} {% set link=link | replace(from="_" , to="-" ) %} {% set
 | 
			
		||||
  part is starting_with("/product") %} {% set split_part=part | split(pat='/">' ) %} {% set link=split_part[0] %} {% set
 | 
			
		||||
  link=link | replace(from="/product/post" , to="/product" ) %} {% set link=link | replace(from="_" , to="-" ) %} {% set
 | 
			
		||||
  rest_part=split_part | slice(start=1) | join(sep='/"' ) %} {% set part=link ~ '/">' ~ rest_part %} {% endif %} {% if
 | 
			
		||||
  loop.first %} {% set_global content=part%} {% else %} {% set_global content=content ~ "threefold.io" ~ part%} {% endif
 | 
			
		||||
  loop.first %} {% set_global content=part%} {% else %} {% set_global content=content ~ "ourphone.tf" ~ part%} {% endif
 | 
			
		||||
  %} {% endfor %} {% endif %} <main>
 | 
			
		||||
 | 
			
		||||
  <div class="container mx-auto mt-20">
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user