mirror of
				https://github.com/avitex/avitex.github.io
				synced 2025-11-04 00:33:27 +00:00 
			
		
		
		
	Compare commits
	
		
			8 Commits
		
	
	
		
			2db949a45c
			...
			fbef748bfb
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					fbef748bfb | ||
| 
						 | 
					d762d54bac | ||
| 
						 | 
					645fe2b023 | ||
| 
						 | 
					b7ca40eb5a | ||
| 
						 | 
					091f630af2 | ||
| 
						 | 
					e9c438bc66 | ||
| 
						 | 
					989c7483b0 | ||
| 
						 | 
					a6a778a9a1 | 
@ -9,9 +9,9 @@ script:
 | 
			
		||||
  - zola build
 | 
			
		||||
 | 
			
		||||
after_success: |
 | 
			
		||||
  [ $TRAVIS_BRANCH = code ] &&
 | 
			
		||||
  [ $TRAVIS_BRANCH = source ] &&
 | 
			
		||||
  [ $TRAVIS_PULL_REQUEST = false ] &&
 | 
			
		||||
  zola build &&
 | 
			
		||||
  sudo pip install ghp-import &&
 | 
			
		||||
  ghp-import -c 1bit.pw -n public -b master &&
 | 
			
		||||
  ghp-import -m "build ${TRAVIS_COMMIT}" -c 1bit.pw -n public -b master &&
 | 
			
		||||
  git push -fq https://${GH_TOKEN}@github.com/${TRAVIS_REPO_SLUG}.git master
 | 
			
		||||
 | 
			
		||||
@ -9,7 +9,6 @@ generate_rss = true
 | 
			
		||||
 | 
			
		||||
taxonomies = [
 | 
			
		||||
	{name = "blog/tags", rss = true},
 | 
			
		||||
	{name = "blog/categories", rss = true}
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[extra]
 | 
			
		||||
@ -20,7 +19,6 @@ name = "Blog"
 | 
			
		||||
url = "/blog"
 | 
			
		||||
sub = [
 | 
			
		||||
	{name = "Latest", url = "/blog"},
 | 
			
		||||
	{name = "Categories", url = "/blog/categories"},
 | 
			
		||||
	{name = "Tags", url = "/blog/tags"}
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
+++
 | 
			
		||||
template = "about.html"
 | 
			
		||||
insert_anchor_links = "right"
 | 
			
		||||
description = "Hi! I'm James, a fellow earthling living in Australia."
 | 
			
		||||
+++
 | 
			
		||||
 | 
			
		||||
Hi! I'm James, a fellow earthling living in Australia.
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,6 @@
 | 
			
		||||
+++
 | 
			
		||||
title = "Social"
 | 
			
		||||
description = "Links to my accounts on various social services for identity, code, media, gaming and discussion."
 | 
			
		||||
+++
 | 
			
		||||
 | 
			
		||||
## Identity
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								content/blog/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								content/blog/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
*.draft.md
 | 
			
		||||
@ -1,5 +1,8 @@
 | 
			
		||||
+++
 | 
			
		||||
sort_by = "date"
 | 
			
		||||
paginate_by = 10
 | 
			
		||||
insert_anchor_links = "right"
 | 
			
		||||
template = "blog.html"
 | 
			
		||||
description = "The barren desert... uh... personal blog of avitex."
 | 
			
		||||
page_template = "blog/post.html"
 | 
			
		||||
+++
 | 
			
		||||
 | 
			
		||||
@ -2,11 +2,8 @@
 | 
			
		||||
title = "Hello World"
 | 
			
		||||
date = 2018-08-22
 | 
			
		||||
 | 
			
		||||
template = "blog/post.html"
 | 
			
		||||
 | 
			
		||||
[taxonomies]
 | 
			
		||||
"blog/tags" = ["new"]
 | 
			
		||||
"blog/categories" = ["meta"]
 | 
			
		||||
"blog/tags" = ["meta", "new"]
 | 
			
		||||
+++
 | 
			
		||||
 | 
			
		||||
Thought it would be a good idea to have somewhere to put my ramblings, and so I am here.  
 | 
			
		||||
 | 
			
		||||
@ -1,10 +1,12 @@
 | 
			
		||||
+++
 | 
			
		||||
template = "projects.html"
 | 
			
		||||
insert_anchor_links = "right"
 | 
			
		||||
page_template = "page.html"
 | 
			
		||||
description = "Project repositories, along with their associated state. PRs are always welcome, see my about page to contact me."
 | 
			
		||||
+++
 | 
			
		||||
 | 
			
		||||
Project repositories, along with their associated state.  
 | 
			
		||||
PRs are always welcome, see my [about](@/about/_index.md) to contact me.
 | 
			
		||||
PRs are always welcome, see my [about page](@/about/_index.md) to contact me.
 | 
			
		||||
 | 
			
		||||
## Rust
 | 
			
		||||
- `arae` - [git](https://github.com/avitex/rust-arae) - `todo`, `v0.1`
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,6 @@
 | 
			
		||||
.home-page {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 100%;
 | 
			
		||||
    min-width: 600px;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    justify-content: center;
 | 
			
		||||
@ -11,4 +10,9 @@
 | 
			
		||||
            margin: 0;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @media (max-width: $sm-breakpoint) {
 | 
			
		||||
        text-align: center;
 | 
			
		||||
        flex-direction: column;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -5,15 +5,16 @@
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
html, body {
 | 
			
		||||
    height: 100%;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 100%;   
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.container {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    min-width: 600px;
 | 
			
		||||
    max-width: 900px;
 | 
			
		||||
    margin-left: auto;
 | 
			
		||||
    margin-right: auto;
 | 
			
		||||
    padding-left: 1rem;
 | 
			
		||||
    padding-right: 1rem;
 | 
			
		||||
    padding-bottom: 2rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
.search-container {
 | 
			
		||||
#search {
 | 
			
		||||
    input {
 | 
			
		||||
        padding: 0.5rem 0.75rem;
 | 
			
		||||
        border: none;
 | 
			
		||||
@ -7,7 +7,7 @@
 | 
			
		||||
        border-radius: 4px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .search-results {
 | 
			
		||||
    .results-container {
 | 
			
		||||
        display: none;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -12,18 +12,17 @@
 | 
			
		||||
    li {
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        padding: 0 0.2rem;
 | 
			
		||||
 | 
			
		||||
        color: $grey;
 | 
			
		||||
 | 
			
		||||
        & > a.active {
 | 
			
		||||
            color: $white;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    a {
 | 
			
		||||
        color: inherit;
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        color: $grey;
 | 
			
		||||
        border: none;
 | 
			
		||||
        text-decoration: none;
 | 
			
		||||
 | 
			
		||||
        &:hover, &.active {
 | 
			
		||||
            color: $white;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .main-menu {
 | 
			
		||||
@ -31,7 +30,6 @@
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .sub-menu {
 | 
			
		||||
        color: $grey;
 | 
			
		||||
        font-size: 0.65rem;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -95,6 +95,14 @@ small {
 | 
			
		||||
    font-size: 0.5em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ul, ol {
 | 
			
		||||
    padding-left: 1rem;
 | 
			
		||||
 | 
			
		||||
    li {
 | 
			
		||||
        padding-bottom: 0.2rem;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
hr {
 | 
			
		||||
    border: none;
 | 
			
		||||
    height: 2px;
 | 
			
		||||
 | 
			
		||||
@ -1,3 +1,8 @@
 | 
			
		||||
// TODO: remove
 | 
			
		||||
// <script type="text/javascript" src="{{ get_url(path="elasticlunr.min.js") | safe }}"></script>
 | 
			
		||||
// <script type="text/javascript" src="{{ get_url(path="search_index.en.js") | safe }}"></script>
 | 
			
		||||
// <script type="text/javascript" src="{{ get_url(path="search.js") | safe }}"></script>
 | 
			
		||||
 | 
			
		||||
function debounce(func, wait) {
 | 
			
		||||
  var timeout;
 | 
			
		||||
 | 
			
		||||
@ -34,13 +39,13 @@ function makeTeaser(body, terms) {
 | 
			
		||||
  });
 | 
			
		||||
  var termFound = false;
 | 
			
		||||
  var index = 0;
 | 
			
		||||
  var weighted = []; // contains elements of ["word", weight, index_in_document]
 | 
			
		||||
  var weighted = []; // contains elements of ['word', weight, index_in_document]
 | 
			
		||||
 | 
			
		||||
  // split in sentences, then words
 | 
			
		||||
  var sentences = body.toLowerCase().split(". ");
 | 
			
		||||
  var sentences = body.toLowerCase().split('. ');
 | 
			
		||||
 | 
			
		||||
  for (var i in sentences) {
 | 
			
		||||
    var words = sentences[i].split(" ");
 | 
			
		||||
    var words = sentences[i].split(' ');
 | 
			
		||||
    var value = FIRST_WORD_WEIGHT;
 | 
			
		||||
 | 
			
		||||
    for (var j in words) {
 | 
			
		||||
@ -108,73 +113,76 @@ function makeTeaser(body, terms) {
 | 
			
		||||
 | 
			
		||||
    // add <em/> around search terms
 | 
			
		||||
    if (word[1] === TERM_WEIGHT) {
 | 
			
		||||
      teaser.push("<b>");
 | 
			
		||||
      teaser.push('<b>');
 | 
			
		||||
    }
 | 
			
		||||
    startIndex = word[2] + word[0].length;
 | 
			
		||||
    teaser.push(body.substring(word[2], startIndex));
 | 
			
		||||
 | 
			
		||||
    if (word[1] === TERM_WEIGHT) {
 | 
			
		||||
      teaser.push("</b>");
 | 
			
		||||
      teaser.push('</b>');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  teaser.push("…");
 | 
			
		||||
  return teaser.join("");
 | 
			
		||||
  teaser.push('…');
 | 
			
		||||
  return teaser.join('');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function formatSearchResultItem(item, terms) {
 | 
			
		||||
  return '<div class="search-results__item">'
 | 
			
		||||
  + `<a href="${item.ref}">${item.doc.title}</a>`
 | 
			
		||||
  + `<div>${makeTeaser(item.doc.body, terms)}</div>`
 | 
			
		||||
  + '</div>';
 | 
			
		||||
  return '<div class="result">'
 | 
			
		||||
    + `<a href="${item.ref}">${item.doc.title}</a>`
 | 
			
		||||
    + `<div class="summary">${makeTeaser(item.doc.body, terms)}</div>`
 | 
			
		||||
    + '</div>';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function initSearch() {
 | 
			
		||||
  var $searchInput = document.getElementById("search");
 | 
			
		||||
  var $searchResults = document.querySelector(".search-results");
 | 
			
		||||
  var $searchResultsItems = document.querySelector(".search-results__items");
 | 
			
		||||
  var $searchComponent = document.getElementById('search');
 | 
			
		||||
  if ($searchComponent === null) {
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
  var $searchInput = $searchComponent.querySelector('input');
 | 
			
		||||
  var $searchResults = $searchComponent.querySelector('.results-container');
 | 
			
		||||
  var $searchResultsItems = $searchComponent.querySelector('.results');
 | 
			
		||||
  var MAX_ITEMS = 10;
 | 
			
		||||
 | 
			
		||||
  var options = {
 | 
			
		||||
    bool: "AND",
 | 
			
		||||
    bool: 'AND',
 | 
			
		||||
    fields: {
 | 
			
		||||
      title: {boost: 2},
 | 
			
		||||
      body: {boost: 1},
 | 
			
		||||
      title: { boost: 2 },
 | 
			
		||||
      body: { boost: 1 },
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
  var currentTerm = "";
 | 
			
		||||
  var currentTerm = '';
 | 
			
		||||
  var index = elasticlunr.Index.load(window.searchIndex);
 | 
			
		||||
 | 
			
		||||
  $searchInput.addEventListener("keyup", debounce(function() {
 | 
			
		||||
  $searchInput.addEventListener("keyup", debounce(function () {
 | 
			
		||||
    var term = $searchInput.value.trim();
 | 
			
		||||
    if (term === currentTerm || !index) {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
    $searchResults.style.display = term === "" ? "none" : "block";
 | 
			
		||||
    $searchResultsItems.innerHTML = "";
 | 
			
		||||
    if (term === "") {
 | 
			
		||||
    $searchResults.style.display = term === '' ? 'none' : 'block';
 | 
			
		||||
    $searchResultsItems.innerHTML = '';
 | 
			
		||||
    if (term === '') {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    var results = index.search(term, options);
 | 
			
		||||
    if (results.length === 0) {
 | 
			
		||||
      $searchResults.style.display = "none";
 | 
			
		||||
      $searchResults.style.display = 'none';
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    currentTerm = term;
 | 
			
		||||
    for (var i = 0; i < Math.min(results.length, MAX_ITEMS); i++) {
 | 
			
		||||
      var item = document.createElement("li");
 | 
			
		||||
      item.innerHTML = formatSearchResultItem(results[i], term.split(" "));
 | 
			
		||||
      var item = document.createElement('li');
 | 
			
		||||
      item.innerHTML = formatSearchResultItem(results[i], term.split(' '));
 | 
			
		||||
      $searchResultsItems.appendChild(item);
 | 
			
		||||
    }
 | 
			
		||||
  }, 150));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if (document.readyState === "complete" ||
 | 
			
		||||
    (document.readyState !== "loading" && !document.documentElement.doScroll)
 | 
			
		||||
if (document.readyState === 'complete' ||
 | 
			
		||||
  (document.readyState !== 'loading' && !document.documentElement.doScroll)
 | 
			
		||||
) {
 | 
			
		||||
  initSearch();
 | 
			
		||||
} else {
 | 
			
		||||
  document.addEventListener("DOMContentLoaded", initSearch);
 | 
			
		||||
  document.addEventListener('DOMContentLoaded', initSearch);
 | 
			
		||||
}
 | 
			
		||||
@ -1,12 +0,0 @@
 | 
			
		||||
{% extends "content.html" %}
 | 
			
		||||
{% block title %}Categories - {{ config.title }}{% endblock %}
 | 
			
		||||
{% block content %}
 | 
			
		||||
	<h1>Categories</h1>
 | 
			
		||||
	{% if terms %}
 | 
			
		||||
		<ul>
 | 
			
		||||
			{% for term in terms %}
 | 
			
		||||
				<li><a href="{{ term.permalink }}">{{ term.name }}</a> ({{ term.pages | length }})</li>
 | 
			
		||||
			{% endfor %}
 | 
			
		||||
		</ul>
 | 
			
		||||
	{% endif %}
 | 
			
		||||
{% endblock content %}
 | 
			
		||||
@ -1,9 +0,0 @@
 | 
			
		||||
{% extends "content.html" %}
 | 
			
		||||
{% import "post_macros.html" as post_macros %}
 | 
			
		||||
{% block title %}Category {{ term.name }} - {{ config.title }}{% endblock %}
 | 
			
		||||
{% block content %}
 | 
			
		||||
	<h1>Category: <code>{{ term.name }}</code> <small>(<a href="{{ get_taxonomy_url(kind="blog/categories", name=term.name) }}rss.xml">RSS</a>)</small></h1>
 | 
			
		||||
	{% for page in term.pages %}
 | 
			
		||||
		{{ post_macros::page_in_list(page=page) }}
 | 
			
		||||
	{% endfor %}
 | 
			
		||||
{% endblock content %}
 | 
			
		||||
@ -18,13 +18,9 @@
 | 
			
		||||
					{% if config.extra.author %}
 | 
			
		||||
						Published by {{ config.extra.author }}
 | 
			
		||||
					{% endif %}
 | 
			
		||||
					{% if page.taxonomies | get(key="blog/categories") %}
 | 
			
		||||
						{% set categories = page.taxonomies | get(key="blog/categories") %}
 | 
			
		||||
						in <a href="{{ get_taxonomy_url(kind="blog/categories", name=categories[0]) | safe }}">{{ categories[0] }}</a>
 | 
			
		||||
					{% endif %}
 | 
			
		||||
					{% set tags = page.taxonomies | get(key="blog/tags") %}
 | 
			
		||||
					{% if tags %}
 | 
			
		||||
						and tagged
 | 
			
		||||
						with tags
 | 
			
		||||
						{% for tag in tags %}
 | 
			
		||||
							<a href="{{ get_taxonomy_url(kind="blog/tags", name=tag) | safe }}">{{ tag }}</a>
 | 
			
		||||
							{% if tags | length > 1 %}
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,6 @@
 | 
			
		||||
{% extends "content.html" %}
 | 
			
		||||
{% block title %}Tag - {{ config.title }}{% endblock %}
 | 
			
		||||
{% block meta_description %}Full list of tags used for articles within the blog.{% endblock meta_description %}
 | 
			
		||||
{% block content %}
 | 
			
		||||
	<h1>Tags</h1>
 | 
			
		||||
	{% if terms %}
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,7 @@
 | 
			
		||||
{% endmacro is_active_nav %}
 | 
			
		||||
 | 
			
		||||
{% macro meta_desc(ctx) %}
 | 
			
		||||
	{%- if ctx.description == "" -%}
 | 
			
		||||
	{%- if ctx.description -%}
 | 
			
		||||
		{{ ctx.description }}
 | 
			
		||||
	{%- else -%}
 | 
			
		||||
		{%- if ctx.summary -%}
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
<div class="search-container">
 | 
			
		||||
    <input id="search" type="search" placeholder="🔎 Search">
 | 
			
		||||
    <div class="search-results">
 | 
			
		||||
        <div class="search-results__items"></div>
 | 
			
		||||
<div id="search">
 | 
			
		||||
    <input type="search" placeholder="🔎 Search">
 | 
			
		||||
    <div class="results-container">
 | 
			
		||||
        <div class="results"></div>
 | 
			
		||||
    </div>
 | 
			
		||||
</div>
 | 
			
		||||
@ -6,7 +6,7 @@
 | 
			
		||||
    <meta name="theme-color" content="#111111"/>
 | 
			
		||||
    <meta name="author" content="{{ config.extra.author }}">
 | 
			
		||||
    <meta name="apple-mobile-web-app-capable" content="yes">
 | 
			
		||||
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
			
		||||
    <meta name="viewport" content="width=device-width,height=device-height,initial-scale=1.0">
 | 
			
		||||
    <meta name="description" content="{% block meta_description %}
 | 
			
		||||
        {%- if section -%}{{ macros::meta_desc(ctx=section) }}{%- endif -%}
 | 
			
		||||
        {%- if page -%}{{ macros::meta_desc(ctx=page) }}{%- endif -%}
 | 
			
		||||
@ -19,8 +19,5 @@
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
    {% block body %}{% endblock body %}
 | 
			
		||||
    <script type="text/javascript" src="{{ get_url(path="elasticlunr.min.js") | safe }}"></script>
 | 
			
		||||
    <script type="text/javascript" src="{{ get_url(path="search_index.en.js") | safe }}"></script>
 | 
			
		||||
    <script type="text/javascript" src="{{ get_url(path="search.js") | safe }}"></script>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user