Compare commits
No commits in common. "main" and "master" have entirely different histories.
46 changed files with 1871 additions and 528 deletions
|
@ -1,79 +0,0 @@
|
||||||
name: Build and Deploy Blog
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
schedule:
|
|
||||||
- cron: '0 0 * * *'
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: docker
|
|
||||||
container: git.private.coffee/privatecoffee/static-site-builder:latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
python3 -m pip install -r requirements.txt --break-system-packages
|
|
||||||
|
|
||||||
- name: Generate static site
|
|
||||||
run: |
|
|
||||||
pelican content -o output -s pelicanconf.py
|
|
||||||
|
|
||||||
- name: Set up SSH key
|
|
||||||
run: |
|
|
||||||
mkdir -p ~/.ssh
|
|
||||||
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519
|
|
||||||
chmod 600 ~/.ssh/id_ed25519
|
|
||||||
ssh-keyscan -t ed25519 git.private.coffee >> ~/.ssh/known_hosts
|
|
||||||
|
|
||||||
# Create SSH config file to ensure the correct identity file is used
|
|
||||||
echo "Host git.private.coffee" > ~/.ssh/config
|
|
||||||
echo " IdentityFile ~/.ssh/id_ed25519" >> ~/.ssh/config
|
|
||||||
echo " IdentitiesOnly yes" >> ~/.ssh/config
|
|
||||||
chmod 600 ~/.ssh/config
|
|
||||||
|
|
||||||
- name: Deploy to pages branch
|
|
||||||
run: |
|
|
||||||
# Configure Git
|
|
||||||
git config --global user.name "Forgejo"
|
|
||||||
git config --global user.email "noreply@private.coffee"
|
|
||||||
|
|
||||||
# Move generated static site files to a temporary location
|
|
||||||
mv output ../static_site_temp
|
|
||||||
cp .gitignore ../static_site_temp || true
|
|
||||||
|
|
||||||
# Create a new orphan branch named 'pages'
|
|
||||||
git checkout --orphan pages
|
|
||||||
|
|
||||||
# Remove all files from the working directory
|
|
||||||
git rm -rf .
|
|
||||||
|
|
||||||
# Move the static site files back to the working directory
|
|
||||||
mv ../static_site_temp/* ./
|
|
||||||
mv ../static_site_temp/.* ./ 2>/dev/null || true
|
|
||||||
|
|
||||||
# Write .domains file
|
|
||||||
echo "kumi.blog" > .domains
|
|
||||||
echo "www.kumi.blog" >> .domains
|
|
||||||
|
|
||||||
# Add and commit the static site files
|
|
||||||
git add .
|
|
||||||
git commit -m "Deploy blog"
|
|
||||||
|
|
||||||
# Set the SSH URL
|
|
||||||
git remote set-url origin "git@git.private.coffee:kumi/blog.git"
|
|
||||||
|
|
||||||
# Force push to the 'pages' branch
|
|
||||||
git push origin pages --force
|
|
||||||
|
|
||||||
- name: Save as artifact
|
|
||||||
uses: https://code.forgejo.org/forgejo/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: static-site.zip
|
|
||||||
path: .
|
|
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,2 +0,0 @@
|
||||||
venv/
|
|
||||||
/output
|
|
Binary file not shown.
188
categories/index.html
Normal file
188
categories/index.html
Normal file
|
@ -0,0 +1,188 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html><head>
|
||||||
|
<title>Categories</title>
|
||||||
|
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
|
||||||
|
<meta content="telephone=no" name="format-detection">
|
||||||
|
<meta name="renderer" content="webkit">
|
||||||
|
<meta name="theme-color" content="#ffffff">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/vendor/js/jquery.min.js" ></script>
|
||||||
|
<script src="/vendor/js/popper.min.js" ></script>
|
||||||
|
<script src="/vendor/js/bootstrap.min.js" ></script>
|
||||||
|
<script src="/vendor/js/smooth-scroll.polyfills.min.js" ></script>
|
||||||
|
<link type="text/css" rel="stylesheet" href="/vendor/css/bootstrap.min.css">
|
||||||
|
<script src="/vendor/js/vue.min.js" ></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://kumi.blog/scss/journal.min.b16b92403170aa4eb662f097e3eb511404d139b4dbc2f3b2a55054fe0b9913c0.css" integrity="sha256-sWuSQDFwqk62YvCX4+tRFATRObTbwvOypVBU/guZE8A=" media="screen">
|
||||||
|
|
||||||
|
<script src="https://kumi.blog//js/loadCSS.js"></script>
|
||||||
|
<script>
|
||||||
|
loadCSS("https://fonts.googleapis.com/css?family=Lora|Montserrat|Fira+Mono|Noto+Serif+SC|Material+Icons");
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</head><body>
|
||||||
|
<div id="app"><div ref="sideContainer" class="side-container">
|
||||||
|
|
||||||
|
<a class="a-block nav-head false" href="https://kumi.blog/">
|
||||||
|
|
||||||
|
<div class="nav-title">
|
||||||
|
Kumi.Blog
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="nav-subtitle">
|
||||||
|
The Blog.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<div class="nav-link-list">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a class="a-block nav-link-item active" href="https://kumi.blog/categories/">
|
||||||
|
Categories
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a class="a-block nav-link-item false" href="https://kumi.blog/tags/">
|
||||||
|
Tags
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="nav-footer">
|
||||||
|
Hugo Theme <a href="https://github.com/amazingrise/hugo-theme-diary">Diary</a> by <a href="https://amazingrise.net">Rise</a>
|
||||||
|
<br>
|
||||||
|
Ported from <a href="https://mak1t0.cc/" target="_blank" rel="noreferrer noopener">Makito</a>'s <a href="https://github.com/SumiMakito/hexo-theme-journal/" target="_blank" rel="noreferrer noopener">Journal.</a> <br>
|
||||||
|
<br>
|
||||||
|
©
|
||||||
|
|
||||||
|
2019 Kumi.Blog
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div><div ref="extraContainer" class="extra-container">
|
||||||
|
<div class="pagination">
|
||||||
|
<a id="globalBackToTop" class="pagination-action animated-visibility" href="#top" :class="{ invisible: scrollY == 0 }">
|
||||||
|
<i class="material-icons pagination-action-icon">
|
||||||
|
keyboard_arrow_up
|
||||||
|
</i>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div><div class="single-column-drawer-container" ref="drawer"
|
||||||
|
v-bind:class="{ 'single-column-drawer-container-active': isDrawerOpen }">
|
||||||
|
<div class="drawer-content">
|
||||||
|
<div class="drawer-menu">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a class="a-block drawer-menu-item active" href="https://kumi.blog/categories/">
|
||||||
|
Categories
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a class="a-block drawer-menu-item false" href="https://kumi.blog/tags/">
|
||||||
|
Tags
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<transition name="fade">
|
||||||
|
<div v-bind:class="{ 'single-column-drawer-mask': mounted }" v-if="isDrawerOpen" v-on:click="toggleDrawer"></div>
|
||||||
|
</transition>
|
||||||
|
<nav ref="navBar" class="navbar sticky-top navbar-light single-column-nav-container">
|
||||||
|
<div ref="navBackground" class="nav-background"></div>
|
||||||
|
<div class="container container-narrow nav-content">
|
||||||
|
<button id="nav_dropdown_btn" class="nav-dropdown-toggle" type="button" v-on:click="toggleDrawer">
|
||||||
|
<i class="material-icons">
|
||||||
|
menu
|
||||||
|
</i>
|
||||||
|
</button>
|
||||||
|
<a ref="navTitle" class="navbar-brand" href="https://kumi.blog/">
|
||||||
|
Kumi.Blog
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<div class="single-column-header-container" ref="pageHead"
|
||||||
|
v-bind:style="{ transform: 'translateZ(0px) translateY('+.3*scrollY+'px)', opacity: 1-navOpacity }">
|
||||||
|
<a href="https://kumi.blog/">
|
||||||
|
<div class="single-column-header-title">Kumi.Blog</div>
|
||||||
|
|
||||||
|
<div class="single-column-header-subtitle">The Blog.</div>
|
||||||
|
|
||||||
|
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div id="content">
|
||||||
|
<div ref="streamContainer" class="stream-container">
|
||||||
|
<div class="post-list-container post-list-container-shadow">
|
||||||
|
<a class="a-block">
|
||||||
|
<div class="post-item-wrapper post-item-wrapper-no-hover">
|
||||||
|
<div class="post-item post-item-no-gaps">
|
||||||
|
<div class="post-item-info-wrapper">
|
||||||
|
<div class="post-item-title post-item-title-small">
|
||||||
|
Categories
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div><div id="single-column-footer">Hugo Theme <a href="https://github.com/amazingrise/hugo-theme-diary">Diary</a> by <a href="https://amazingrise.net">Rise</a>
|
||||||
|
<br>
|
||||||
|
Ported from <a href="https://mak1t0.cc/" target="_blank" rel="noreferrer noopener">Makito</a>'s <a href="https://github.com/SumiMakito/hexo-theme-journal/" target="_blank" rel="noreferrer noopener">Journal.</a> <br>
|
||||||
|
<br>
|
||||||
|
©
|
||||||
|
|
||||||
|
2019 Kumi.Blog
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script src="https://kumi.blog//js/journal.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
14
categories/index.xml
Normal file
14
categories/index.xml
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>Categories on Kumi.Blog</title>
|
||||||
|
<link>https://kumi.blog/categories/</link>
|
||||||
|
<description>Recent content in Categories on Kumi.Blog</description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-us</language>
|
||||||
|
|
||||||
|
<atom:link href="https://kumi.blog/categories/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
|
||||||
|
|
||||||
|
</channel>
|
||||||
|
</rss>
|
1
categories/page/1/index.html
Normal file
1
categories/page/1/index.html
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<!DOCTYPE html><html><head><title>https://kumi.blog/categories/</title><link rel="canonical" href="https://kumi.blog/categories/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://kumi.blog/categories/" /></head></html>
|
|
@ -1,41 +0,0 @@
|
||||||
Title: CITA - A Continuous Internal Threat Assessment for Privacy
|
|
||||||
Date: 2025-06-07 08:45
|
|
||||||
Category: Privacy
|
|
||||||
Tags: privacy, data, security, CITA
|
|
||||||
Author: Kumi
|
|
||||||
Summary: A framework for assessing what to share and with whom, balancing privacy and openness.
|
|
||||||
---
|
|
||||||
|
|
||||||
Whenever the issue of "privacy" comes up, I feel like there are two types of people out there: Those who think that privacy is somehow an absolute, that any data you produce is always too sacred to be shared, and those who think that privacy doesn't matter at all, because they have "nothing to hide".
|
|
||||||
|
|
||||||
In my opinion, both of these positions are probably misguided. To me, privacy is a matter of context. There are some things that I would never want to share with anyone, there are things of which I wouldn't mind certain people knowing, and there are things that I would be happy to share with the world. The key is making a conscious decision about what to share and with whom, rather than just assuming that everything is either private or public.
|
|
||||||
|
|
||||||
To that end, I would like to propose a kind of "test" you can use to determine whether and how you want to share something. I call it "CITA", a "Continuous Internal Threat Assessment". Let's break it down:
|
|
||||||
|
|
||||||
1. **Continuous**: This is not a one-time test. Your context and your relationships change over time, and so does the technological landscape, so you should regularly reassess what you share and with whom.
|
|
||||||
2. **Internal**: This test is about your own internal assessment of the situation. It's not about fulfilling some external standard or expectation, but judging based on your own values and comfort level.
|
|
||||||
3. **Threat**: This is about evaluating the potential risks of sharing certain information. What could go wrong? Who could misuse this information? What are the consequences if it gets out?
|
|
||||||
4. **Assessment**: Finally, this is about making a conscious decision based on your evaluation of the situation. After considering the potential threats, you decide whether to share the information and with whom.
|
|
||||||
|
|
||||||
CITA can be applied to any kind of information, whether it's personal data, opinions, or even creative work. By regularly applying this test, you can maintain a healthy balance between privacy and openness, ensuring that you share what you are comfortable with while protecting your personal boundaries.
|
|
||||||
|
|
||||||
Imagine you are about to post something online, or share a personal story with a friend. Before you do, take a moment to run it through CITA and ask yourself a few questions:
|
|
||||||
|
|
||||||
- **Is this something I want to share?** Do I feel comfortable with this information being out there? All of it? Do I want to be associated with it? Should I use a pseudonym for that?
|
|
||||||
- **Who will see it?** Am I okay with this information being accessible to my friends, family, or even strangers? Is this the right place to share it?
|
|
||||||
- **Cui bono?** Is someone else benefiting from me sharing this information? Is it in *my* best interest to share it?
|
|
||||||
- **Is this just my own data?** Or does it (directly or indirectly) involve other people? If so, have I considered their feelings and privacy? Have I *asked* for their consent?
|
|
||||||
- **What could happen if it gets out?** Could this information be misused? Could it affect my relationships or reputation? Could it have legal implications? What would my future self think about this?
|
|
||||||
- **Am I making a conscious choice?** After considering the potential risks, am I still comfortable sharing this information? Am I sharing this because I want to, or because I feel pressured to? If I'm getting something in return, is it worth the potential risks?
|
|
||||||
|
|
||||||
Most of us, for example, would not exactly want everyone to know what we say about Uncle Guntram behind his back, so it isn't going on our social media accounts. But we might be comfortable sharing it with our siblings in a private chat. Unless, of course, we find out that one of our siblings tells Uncle Guntram about it, in which case we might reconsider sharing that information with them in the future. And in this way, we are already applying CITA without even realizing it.
|
|
||||||
|
|
||||||
But it can also be applied to more complex situations: If I sign up to that free service, how am I paying for it? With my data, most likely. So I might want to consider whether the service is worth giving up my data for. Most of my friends have Telegram, but isn't Signal supposed to be more secure? If I upload a funny photo of my younger family members, would they be comfortable with that? What about twenty years later? Using CITA, you can evaluate these scenarios and... well, probably not post that photo.
|
|
||||||
|
|
||||||
So let's make CITA part of our daily lives. Whenever you consider posting something online, discussing a sensitive topic, signing up for an adult entertainment website - take a moment to run it through CITA. Ask yourself: Is this something I want to share? Who will see it? Should/could I use a pseudonym for that? What could happen if it gets out? By doing this, you can make more informed decisions about your privacy and the information you choose to share.
|
|
||||||
|
|
||||||
All of us will come to different conclusions there. Of course, if you're blowing whistle on a corrupt government, you might want to protect your identity at all costs for fear of retaliation, ensure that no metadata can be traced back to you, and so on. If you're just posting a funny cat video, you might not care at all who sees it, and that's perfectly fine too. The key is that you are making a conscious choice based on your own values and the context of the situation.
|
|
||||||
|
|
||||||
Keep in mind that CITA is not only about the privacy aspect of sharing information, and is not intended to override other considerations, like your moral, political or ethical views. In fact, you can easily integrate those into your assessment. Not using Xitter because you don't like their business practices is still an absolutely valid outcome of applying CITA - after all, acting against your values definitely poses a threat to your sense of self and integrity, and in that specific case, probably a threat to your mental health, and to democracy itself.
|
|
||||||
|
|
||||||
This is what I believe privacy should be about: not an absolute (in either direction), but a nuanced understanding of what we share and why, and what the potential consequences are.
|
|
|
@ -1,13 +0,0 @@
|
||||||
Title: Hello World
|
|
||||||
Date: 2019-12-30 20:21
|
|
||||||
Category: General
|
|
||||||
Tags: blog, introduction
|
|
||||||
Slug: hello-world
|
|
||||||
Author: Kumi
|
|
||||||
Summary: Welcome to my new blog!
|
|
||||||
|
|
||||||
Well, hello. These are the first lines on kumi.blog.
|
|
||||||
|
|
||||||
I’m Kumi, this is a blog, so that should explain the name. As for the contents, I’m not sure about those either. Expect to see a little bit about my life, a lot of IT related stuff (I’m thinking about doing little howtos for server admins and self-datafication, for example), maybe a little politics - well, let’s just all sit back and enjoy the show.
|
|
||||||
|
|
||||||
That’s all for now. See you all soon!
|
|
|
@ -1,14 +0,0 @@
|
||||||
Title: About
|
|
||||||
|
|
||||||
Hey there! I'm Kumi, a slightly geeky IT professional with a passion for coding and technology. I love building things and learning new stuff along the way. When I'm not coding, you can find me playing video games or reading a good book.
|
|
||||||
|
|
||||||
This blog is where I share my thoughts, projects, and experiences in the tech world. Feel free to explore and get in touch if you have any questions or just want to chat!
|
|
||||||
|
|
||||||
## Contact
|
|
||||||
|
|
||||||
If you want to get in touch, feel free to drop me a note at [email@kumi.email](mailto:email@kumi.email). Use my [PGP key](kumi.asc) for secure communication.
|
|
||||||
|
|
||||||
You can also find me at:
|
|
||||||
|
|
||||||
- [Cuddly.space (Fediverse)](https://cuddly.space/@thekumi)
|
|
||||||
- [Matrix](https://matrix.pcof.fi/#/@kumi:private.coffee)
|
|
712
css/journal.css
Normal file
712
css/journal.css
Normal file
|
@ -0,0 +1,712 @@
|
||||||
|
::-webkit-scrollbar {
|
||||||
|
display: none; }
|
||||||
|
|
||||||
|
body {
|
||||||
|
background: #fcfcfc;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
font-family: "Lora", "source-han-serif-tc", serif;
|
||||||
|
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.004);
|
||||||
|
text-rendering: optimizeLegibility !important;
|
||||||
|
-webkit-font-smoothing: antialiased !important;
|
||||||
|
color: black; }
|
||||||
|
|
||||||
|
* {
|
||||||
|
color: black;
|
||||||
|
line-height: 1.5em;
|
||||||
|
word-wrap: break-word; }
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 30px; }
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 27px; }
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: 24px; }
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
font-size: 21px; }
|
||||||
|
|
||||||
|
h5 {
|
||||||
|
font-size: 18px; }
|
||||||
|
|
||||||
|
h6 {
|
||||||
|
font-size: 15px; }
|
||||||
|
|
||||||
|
textarea,
|
||||||
|
select,
|
||||||
|
input,
|
||||||
|
button {
|
||||||
|
outline: none !important; }
|
||||||
|
|
||||||
|
button {
|
||||||
|
cursor: hand;
|
||||||
|
cursor: pointer; }
|
||||||
|
|
||||||
|
code {
|
||||||
|
color: #7a422c;
|
||||||
|
background: rgba(159, 86, 58, 0.07) !important;
|
||||||
|
padding: 2px 5px;
|
||||||
|
border-radius: 3px;
|
||||||
|
font-family: "Fira Mono", "Cousine", Monaco, Menlo, "Source Code Pro", monospace; }
|
||||||
|
|
||||||
|
pre {
|
||||||
|
background: rgba(159, 86, 58, 0.07) !important;
|
||||||
|
color: #7a422c;
|
||||||
|
padding: 12px 15px;
|
||||||
|
border-radius: 5px;
|
||||||
|
font-family: "Fira Mono", "Cousine", Monaco, Menlo, "Source Code Pro", monospace; }
|
||||||
|
pre * {
|
||||||
|
background: none !important;
|
||||||
|
font-family: "Fira Mono", "Cousine", Monaco, Menlo, "Source Code Pro", monospace !important; }
|
||||||
|
pre code {
|
||||||
|
padding: 0; }
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
padding: 10px 20px;
|
||||||
|
border-left: 3px solid rgba(159, 86, 58, 0.7);
|
||||||
|
color: #7a422c;
|
||||||
|
background: rgba(159, 86, 58, 0.05); }
|
||||||
|
blockquote p {
|
||||||
|
margin-bottom: 0; }
|
||||||
|
blockquote * {
|
||||||
|
color: #7a422c; }
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #9f563a; }
|
||||||
|
a:hover {
|
||||||
|
color: #7a422c;
|
||||||
|
text-underline-position: under; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
a:hover {
|
||||||
|
text-decoration: none !important; } }
|
||||||
|
|
||||||
|
.a-block {
|
||||||
|
display: block;
|
||||||
|
text-decoration: none !important; }
|
||||||
|
.a-block:hover {
|
||||||
|
text-decoration: none !important; }
|
||||||
|
|
||||||
|
.no-margin {
|
||||||
|
margin: 0; }
|
||||||
|
|
||||||
|
.no-padding {
|
||||||
|
padding: 0; }
|
||||||
|
|
||||||
|
.no-overflow {
|
||||||
|
overflow: hidden !important; }
|
||||||
|
|
||||||
|
.animated-visibility {
|
||||||
|
transition: visibility 0s, opacity 0.5s linear;
|
||||||
|
visibility: visible;
|
||||||
|
opacity: 1; }
|
||||||
|
|
||||||
|
.invisible {
|
||||||
|
visibility: hidden;
|
||||||
|
opacity: 0; }
|
||||||
|
|
||||||
|
.fade-enter-active,
|
||||||
|
.fade-leave-active {
|
||||||
|
transition: opacity 0.3s; }
|
||||||
|
|
||||||
|
.fade-enter,
|
||||||
|
.fade-leave-to {
|
||||||
|
opacity: 0; }
|
||||||
|
|
||||||
|
#lv-container {
|
||||||
|
padding: 0 30px; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
#lv-container {
|
||||||
|
padding: 0 15px; } }
|
||||||
|
|
||||||
|
.single-column-nav-container {
|
||||||
|
display: none !important; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.single-column-nav-container {
|
||||||
|
display: block !important;
|
||||||
|
padding: 0; }
|
||||||
|
.single-column-nav-container * {
|
||||||
|
font-family: "Montserrat", "Roboto", "Source Sans Pro", "Helvetica", "Arial", "Lora", "source-han-serif-tc", serif;
|
||||||
|
transition: opacity 0.5s ease-in-out; }
|
||||||
|
.single-column-nav-container button {
|
||||||
|
padding: 0; }
|
||||||
|
.single-column-nav-container .nav-content {
|
||||||
|
padding: 12px 20px;
|
||||||
|
justify-content: flex-start;
|
||||||
|
max-width: unset !important; }
|
||||||
|
.single-column-nav-container .navbar-brand {
|
||||||
|
opacity: 0;
|
||||||
|
text-align: left;
|
||||||
|
padding-left: 24px !important; }
|
||||||
|
.single-column-nav-container .nav-dropdown-toggle {
|
||||||
|
display: flex;
|
||||||
|
align-content: center;
|
||||||
|
align-items: center;
|
||||||
|
justify-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
background: none !important;
|
||||||
|
border: none;
|
||||||
|
padding-top: 1px; }
|
||||||
|
.single-column-nav-container .nav-dropdown-toggle:hover {
|
||||||
|
color: #3f587d !important; }
|
||||||
|
.single-column-nav-container .nav-icon-group {
|
||||||
|
z-index: 5;
|
||||||
|
padding-right: 5px; }
|
||||||
|
.single-column-nav-container .nav-icon-group ul {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0; }
|
||||||
|
.single-column-nav-container .nav-icon-group li {
|
||||||
|
display: inline;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0; }
|
||||||
|
.single-column-nav-container .nav-icon {
|
||||||
|
padding: 8px; }
|
||||||
|
.single-column-nav-container .nav-background {
|
||||||
|
opacity: 0;
|
||||||
|
z-index: -1;
|
||||||
|
left: 0;
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: white;
|
||||||
|
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
|
||||||
|
-moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
|
||||||
|
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); } }
|
||||||
|
|
||||||
|
.single-column-header-container {
|
||||||
|
display: none !important; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.single-column-header-container {
|
||||||
|
display: block !important;
|
||||||
|
padding: 50px 20px 80px 20px;
|
||||||
|
transition: padding 0.5s ease-in-out, margin 0.5s ease-in-out;
|
||||||
|
text-align: center; }
|
||||||
|
.single-column-header-container * {
|
||||||
|
font-family: "Montserrat", "Roboto", "Source Sans Pro", "Helvetica", "Arial", "Lora", "source-han-serif-tc", serif;
|
||||||
|
color: black; }
|
||||||
|
.single-column-header-container .single-column-header-title {
|
||||||
|
font-size: 28px; }
|
||||||
|
.single-column-header-container .single-column-header-subtitle {
|
||||||
|
font-size: 20px; } }
|
||||||
|
|
||||||
|
.single-column-drawer-container {
|
||||||
|
display: none !important; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.single-column-drawer-container {
|
||||||
|
display: block !important;
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: -260px;
|
||||||
|
width: 260px;
|
||||||
|
height: 100vh;
|
||||||
|
z-index: 1800;
|
||||||
|
transition: all 0.3s ease-in-out; }
|
||||||
|
.single-column-drawer-container .drawer-content {
|
||||||
|
background: white;
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
padding: 50px 0 80px 0;
|
||||||
|
display: flex; }
|
||||||
|
.single-column-drawer-container .drawer-content .drawer-menu {
|
||||||
|
flex-grow: 1;
|
||||||
|
display: flex;
|
||||||
|
justify-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
flex-direction: column; }
|
||||||
|
.single-column-drawer-container .drawer-content .drawer-menu .drawer-menu-item {
|
||||||
|
font-size: 18px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
border-right: 2px solid transparent;
|
||||||
|
padding: 8px 30px 8px 30px;
|
||||||
|
cursor: hand;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.2s linear;
|
||||||
|
color: black; }
|
||||||
|
.single-column-drawer-container .drawer-content .drawer-menu .drawer-menu-item.active {
|
||||||
|
border-right: 2px solid #9f563a;
|
||||||
|
background: rgba(159, 86, 58, 0.1);
|
||||||
|
color: #2f1911; } }
|
||||||
|
|
||||||
|
.single-column-drawer-mask {
|
||||||
|
display: none !important; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.single-column-drawer-mask {
|
||||||
|
display: block !important;
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
left: 0;
|
||||||
|
background: rgba(0, 0, 0, 0.8);
|
||||||
|
z-index: 1600;
|
||||||
|
transition: all 0.3s ease-in-out; } }
|
||||||
|
|
||||||
|
.single-column-drawer-container-active {
|
||||||
|
left: 0;
|
||||||
|
box-shadow: 0 0 8px rgba(0, 0, 0, 0.2); }
|
||||||
|
|
||||||
|
.side-container {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
height: 100vh;
|
||||||
|
width: 25%;
|
||||||
|
text-align: right;
|
||||||
|
font-family: "Montserrat", "Roboto", "Source Sans Pro", "Helvetica", "Arial", "Lora", "source-han-serif-tc", serif;
|
||||||
|
padding: 20px 0 50px 0;
|
||||||
|
overflow-x: hidden;
|
||||||
|
overflow-y: scroll;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-between;
|
||||||
|
scrollbar-width: none;
|
||||||
|
}
|
||||||
|
.side-container .nav-head {
|
||||||
|
padding: 30px 28px 30px 20px;
|
||||||
|
cursor: hand;
|
||||||
|
cursor: pointer;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
transition: all 0.2s linear;
|
||||||
|
color: black;
|
||||||
|
border-right: 2px solid transparent; }
|
||||||
|
.side-container .nav-head .nav-title {
|
||||||
|
font-size: 30px;
|
||||||
|
line-height: 42px; }
|
||||||
|
.side-container .nav-head .nav-subtitle {
|
||||||
|
margin-top: 8px;
|
||||||
|
font-size: 18px; }
|
||||||
|
.side-container .nav-head:hover {
|
||||||
|
border-right: 2px solid rgba(159, 86, 58, 0.6);
|
||||||
|
background: rgba(159, 86, 58, 0.02);
|
||||||
|
color: #2f1911; }
|
||||||
|
.side-container .nav-head.active {
|
||||||
|
border-right: 2px solid #9f563a;
|
||||||
|
background: rgba(159, 86, 58, 0.03);
|
||||||
|
color: #542e1f; }
|
||||||
|
.side-container .nav-link-list {
|
||||||
|
flex-grow: 1; }
|
||||||
|
.side-container .nav-link-list .nav-link-item {
|
||||||
|
font-size: 20px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
border-right: 2px solid transparent;
|
||||||
|
padding: 8px 28px 8px 30px;
|
||||||
|
cursor: hand;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.2s linear;
|
||||||
|
color: black; }
|
||||||
|
.side-container .nav-link-list .nav-link-item:hover {
|
||||||
|
border-right: 2px solid rgba(159, 86, 58, 0.6);
|
||||||
|
background: rgba(159, 86, 58, 0.02);
|
||||||
|
color: #2f1911; }
|
||||||
|
.side-container .nav-link-list .nav-link-item.active {
|
||||||
|
border-right: 2px solid #9f563a;
|
||||||
|
background: rgba(159, 86, 58, 0.03);
|
||||||
|
color: #542e1f; }
|
||||||
|
.side-container .nav-footer {
|
||||||
|
padding: 20px 30px 0 20px;
|
||||||
|
font-size: 12px; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.side-container {
|
||||||
|
display: none; } }
|
||||||
|
|
||||||
|
.extra-container {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
height: 100vh;
|
||||||
|
width: 64px;
|
||||||
|
text-align: right;
|
||||||
|
font-family: "Montserrat", "Roboto", "Source Sans Pro", "Helvetica", "Arial", "Lora", "source-han-serif-tc", serif;
|
||||||
|
overflow-x: hidden;
|
||||||
|
overflow-y: scroll;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: flex-end;
|
||||||
|
padding: 30px 0;
|
||||||
|
scrollbar-width: none;
|
||||||
|
}
|
||||||
|
.extra-container .pagination {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column; }
|
||||||
|
.extra-container .pagination .pagination-indicator {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-content: center;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
justify-items: center;
|
||||||
|
width: 64px;
|
||||||
|
padding: 15px 0;
|
||||||
|
font-size: 12px;
|
||||||
|
font-family: "Fira Mono", "Cousine", Monaco, Menlo, "Source Code Pro", monospace; }
|
||||||
|
.extra-container .pagination .pagination-action {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-content: center;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
justify-items: center;
|
||||||
|
width: 64px;
|
||||||
|
cursor: hand;
|
||||||
|
cursor: pointer;
|
||||||
|
padding: 15px 0; }
|
||||||
|
.extra-container .pagination .pagination-action :not(.pagination-action-icon) {
|
||||||
|
transition: all 0.2s linear;
|
||||||
|
font-size: 13px;
|
||||||
|
font-family: "Fira Mono", "Cousine", Monaco, Menlo, "Source Code Pro", monospace; }
|
||||||
|
.extra-container .pagination .pagination-action * {
|
||||||
|
transition: all 0.3s linear; }
|
||||||
|
.extra-container .pagination .pagination-action:hover {
|
||||||
|
text-decoration: none; }
|
||||||
|
.extra-container .pagination .pagination-action:hover * {
|
||||||
|
color: #7a422c; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.extra-container {
|
||||||
|
display: none; } }
|
||||||
|
|
||||||
|
.pagination-bar-container {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
height: 100vh;
|
||||||
|
width: 25%;
|
||||||
|
text-align: right;
|
||||||
|
font-family: "Montserrat", "Roboto", "Source Sans Pro", "Helvetica", "Arial", "Lora", "source-han-serif-tc", serif;
|
||||||
|
padding: 20px 0;
|
||||||
|
overflow: scroll;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column; }
|
||||||
|
|
||||||
|
.stream-container {
|
||||||
|
padding-left: 25%;
|
||||||
|
padding-right: 64px;
|
||||||
|
width: 100%;
|
||||||
|
min-height: 100vh;
|
||||||
|
max-width: 1480px; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container {
|
||||||
|
padding: 0;
|
||||||
|
min-height: unset; } }
|
||||||
|
.stream-container .post-list-container {
|
||||||
|
width: 100%;
|
||||||
|
min-height: 100vh;
|
||||||
|
padding: 20px 0 20px 0;
|
||||||
|
background: #ffffff;
|
||||||
|
box-shadow: 0 0 16px rgba(0, 0, 0, 0.12); }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container .post-list-container {
|
||||||
|
min-height: unset;
|
||||||
|
padding: 0;
|
||||||
|
box-shadow: 0 0 0 rgba(0, 0, 0, 0.2); } }
|
||||||
|
.stream-container .post-list-container .post-item-wrapper,
|
||||||
|
.stream-container .post-list-container > * .post-item-wrapper {
|
||||||
|
cursor: hand;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.2s linear; }
|
||||||
|
.stream-container .post-list-container .post-item-wrapper .post-item,
|
||||||
|
.stream-container .post-list-container > * .post-item-wrapper .post-item {
|
||||||
|
margin: 0 28px 0 35px;
|
||||||
|
padding: 30px 0;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container .post-list-container .post-item-wrapper .post-item,
|
||||||
|
.stream-container .post-list-container > * .post-item-wrapper .post-item {
|
||||||
|
flex-direction: column-reverse;
|
||||||
|
margin: 0 0 15px 0;
|
||||||
|
padding: 0;
|
||||||
|
box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
|
||||||
|
background: #ffffff; } }
|
||||||
|
.stream-container .post-list-container .post-item-wrapper .post-item .post-item-info-wrapper,
|
||||||
|
.stream-container .post-list-container > * .post-item-wrapper .post-item .post-item-info-wrapper {
|
||||||
|
flex-grow: 1; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container .post-list-container .post-item-wrapper .post-item .post-item-info-wrapper,
|
||||||
|
.stream-container .post-list-container > * .post-item-wrapper .post-item .post-item-info-wrapper {
|
||||||
|
width: 100%;
|
||||||
|
padding: 15px 20px; } }
|
||||||
|
.stream-container .post-list-container .post-item-wrapper .post-item .post-item-info-wrapper .post-item-title,
|
||||||
|
.stream-container .post-list-container > * .post-item-wrapper .post-item .post-item-info-wrapper .post-item-title {
|
||||||
|
font-size: 30px;
|
||||||
|
font-weight: 600;
|
||||||
|
font-style: normal;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
line-height: 1.5em; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container .post-list-container .post-item-wrapper .post-item .post-item-info-wrapper .post-item-title,
|
||||||
|
.stream-container .post-list-container > * .post-item-wrapper .post-item .post-item-info-wrapper .post-item-title {
|
||||||
|
font-size: 22px;
|
||||||
|
margin-bottom: 5px; } }
|
||||||
|
.stream-container .post-list-container .post-item-wrapper .post-item .post-item-info-wrapper .post-item-title-small,
|
||||||
|
.stream-container .post-list-container > * .post-item-wrapper .post-item .post-item-info-wrapper .post-item-title-small {
|
||||||
|
font-size: 22px;
|
||||||
|
margin-bottom: 0; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container .post-list-container .post-item-wrapper .post-item .post-item-info-wrapper .post-item-title-small,
|
||||||
|
.stream-container .post-list-container > * .post-item-wrapper .post-item .post-item-info-wrapper .post-item-title-small {
|
||||||
|
font-size: 14px; } }
|
||||||
|
.stream-container .post-list-container .post-item-wrapper .post-item .post-item-info-wrapper .post-item-summary,
|
||||||
|
.stream-container .post-list-container > * .post-item-wrapper .post-item .post-item-info-wrapper .post-item-summary {
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 1.5em;
|
||||||
|
margin-bottom: 10px; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container .post-list-container .post-item-wrapper .post-item .post-item-info-wrapper .post-item-summary,
|
||||||
|
.stream-container .post-list-container > * .post-item-wrapper .post-item .post-item-info-wrapper .post-item-summary {
|
||||||
|
font-size: 16px;
|
||||||
|
margin-bottom: 5px; } }
|
||||||
|
.stream-container .post-list-container .post-item-wrapper .post-item .post-item-info-wrapper .post-item-meta,
|
||||||
|
.stream-container .post-list-container > * .post-item-wrapper .post-item .post-item-info-wrapper .post-item-meta {
|
||||||
|
font-size: 16px; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container .post-list-container .post-item-wrapper .post-item .post-item-info-wrapper .post-item-meta,
|
||||||
|
.stream-container .post-list-container > * .post-item-wrapper .post-item .post-item-info-wrapper .post-item-meta {
|
||||||
|
font-size: 14px; } }
|
||||||
|
.stream-container .post-list-container .post-item-wrapper .post-item .post-item-image-wrapper,
|
||||||
|
.stream-container .post-list-container > * .post-item-wrapper .post-item .post-item-image-wrapper {
|
||||||
|
margin-left: 20px; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container .post-list-container .post-item-wrapper .post-item .post-item-image-wrapper,
|
||||||
|
.stream-container .post-list-container > * .post-item-wrapper .post-item .post-item-image-wrapper {
|
||||||
|
width: 100%;
|
||||||
|
margin-left: 0; } }
|
||||||
|
.stream-container .post-list-container .post-item-wrapper .post-item .post-item-image-wrapper .post-item-image,
|
||||||
|
.stream-container .post-list-container > * .post-item-wrapper .post-item .post-item-image-wrapper .post-item-image {
|
||||||
|
width: 230px;
|
||||||
|
height: 120px;
|
||||||
|
background: no-repeat center;
|
||||||
|
background-size: cover;
|
||||||
|
border-radius: 5px;
|
||||||
|
overflow: hidden; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container .post-list-container .post-item-wrapper .post-item .post-item-image-wrapper .post-item-image,
|
||||||
|
.stream-container .post-list-container > * .post-item-wrapper .post-item .post-item-image-wrapper .post-item-image {
|
||||||
|
width: 100%;
|
||||||
|
height: 180px;
|
||||||
|
border-radius: 0; } }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container .post-list-container .post-item-wrapper .post-item-no-divider,
|
||||||
|
.stream-container .post-list-container > * .post-item-wrapper .post-item-no-divider {
|
||||||
|
border-bottom: none !important; }
|
||||||
|
.stream-container .post-list-container .post-item-wrapper .post-item-no-gaps,
|
||||||
|
.stream-container .post-list-container > * .post-item-wrapper .post-item-no-gaps {
|
||||||
|
margin: 0;
|
||||||
|
box-shadow: none; } }
|
||||||
|
.stream-container .post-list-container .post-item-wrapper *,
|
||||||
|
.stream-container .post-list-container > * .post-item-wrapper * {
|
||||||
|
transition: all 0.2s linear; }
|
||||||
|
.stream-container .post-list-container .post-item-wrapper:not(.post-item-wrapper-no-hover):hover,
|
||||||
|
.stream-container .post-list-container > * .post-item-wrapper:not(.post-item-wrapper-no-hover):hover {
|
||||||
|
text-decoration: none;
|
||||||
|
background: rgba(0, 0, 0, 0.03); }
|
||||||
|
.stream-container .post-list-container .post-item-wrapper:not(.post-item-wrapper-no-hover):hover .post-item-title,
|
||||||
|
.stream-container .post-list-container > * .post-item-wrapper:not(.post-item-wrapper-no-hover):hover .post-item-title {
|
||||||
|
text-decoration: underline;
|
||||||
|
text-decoration-style: 2px solid #9f563a;
|
||||||
|
text-underline-position: under; }
|
||||||
|
.stream-container .post-list-container .post-item-wrapper:not(.post-item-wrapper-no-hover):hover *,
|
||||||
|
.stream-container .post-list-container > * .post-item-wrapper:not(.post-item-wrapper-no-hover):hover * {
|
||||||
|
color: #7a422c; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container .post-list-container .post-item-wrapper:not(.post-item-wrapper-no-hover):hover .post-item-title,
|
||||||
|
.stream-container .post-list-container > * .post-item-wrapper:not(.post-item-wrapper-no-hover):hover .post-item-title {
|
||||||
|
text-decoration: none !important; } }
|
||||||
|
.stream-container .post-list-container .post-item-wrapper-no-hover,
|
||||||
|
.stream-container .post-list-container > * .post-item-wrapper-no-hover {
|
||||||
|
cursor: unset; }
|
||||||
|
.stream-container .post-list-container:not(:last-child) .post-item,
|
||||||
|
.stream-container .post-list-container > *:not(:last-child) .post-item {
|
||||||
|
border-bottom: 1px solid rgba(128, 128, 128, 0.12); }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container .post-list-container-no-background {
|
||||||
|
background: none; } }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container .post-list-container-shadow {
|
||||||
|
box-shadow: 0 0px 8px rgba(0, 0, 0, 0.1); } }
|
||||||
|
.stream-container .post-list-footer {
|
||||||
|
text-align: center;
|
||||||
|
width: 100%;
|
||||||
|
opacity: 0.3;
|
||||||
|
color: black;
|
||||||
|
font-family: "Lora", "source-han-serif-tc", serif;
|
||||||
|
font-size: 13px;
|
||||||
|
padding: 15px; }
|
||||||
|
.stream-container .post {
|
||||||
|
padding: 0 0 20px 0; }
|
||||||
|
.stream-container .post .post-head-wrapper {
|
||||||
|
margin-top: -20px;
|
||||||
|
background: no-repeat center;
|
||||||
|
background-size: cover;
|
||||||
|
position: relative;
|
||||||
|
padding-top: 140px; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container .post .post-head-wrapper {
|
||||||
|
padding-top: 120px; } }
|
||||||
|
.stream-container .post .post-head-wrapper * {
|
||||||
|
color: white; }
|
||||||
|
.stream-container .post .post-head-wrapper .post-title {
|
||||||
|
padding: 80px 35px 30px 35px;
|
||||||
|
font-size: 30px;
|
||||||
|
font-weight: 600;
|
||||||
|
font-style: normal;
|
||||||
|
line-height: 1.5em;
|
||||||
|
background: -moz-linear-gradient(top, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.75) 100%);
|
||||||
|
/* FF3.6-15 */
|
||||||
|
background: -webkit-linear-gradient(top, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.75) 100%);
|
||||||
|
/* Chrome10-25,Safari5.1-6 */
|
||||||
|
background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.75) 100%);
|
||||||
|
/* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#c6000000', GradientType=0);
|
||||||
|
/* IE6-9 */ }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container .post .post-head-wrapper .post-title {
|
||||||
|
font-size: 22px;
|
||||||
|
padding: 80px 20px 30px 20px; } }
|
||||||
|
.stream-container .post .post-head-wrapper .post-title .post-meta {
|
||||||
|
margin: 0; }
|
||||||
|
.stream-container .post .post-head-wrapper .post-title .post-meta,
|
||||||
|
.stream-container .post .post-head-wrapper .post-title .post-meta * {
|
||||||
|
font-size: 16px; }
|
||||||
|
.stream-container .post .post-head-wrapper .post-title .post-meta .material-icons {
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-bottom: 3px; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container .post .post-head-wrapper .post-title .post-meta,
|
||||||
|
.stream-container .post .post-head-wrapper .post-title .post-meta * {
|
||||||
|
font-size: 14px; } }
|
||||||
|
.stream-container .post .post-head-wrapper-text-only {
|
||||||
|
padding: 30px 35px 0 35px; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container .post .post-head-wrapper-text-only {
|
||||||
|
padding: 30px 20px 0 20px; } }
|
||||||
|
.stream-container .post .post-head-wrapper-text-only .post-title {
|
||||||
|
font-size: 30px;
|
||||||
|
font-weight: 600;
|
||||||
|
font-style: normal;
|
||||||
|
line-height: 1.5em; }
|
||||||
|
.stream-container .post .post-head-wrapper-text-only .post-title .post-meta {
|
||||||
|
margin: 0; }
|
||||||
|
.stream-container .post .post-head-wrapper-text-only .post-title .post-meta,
|
||||||
|
.stream-container .post .post-head-wrapper-text-only .post-title .post-meta * {
|
||||||
|
font-size: 16px; }
|
||||||
|
.stream-container .post .post-head-wrapper-text-only .post-title .post-meta .material-icons {
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-bottom: 3px; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container .post .post-head-wrapper-text-only .post-title .post-meta,
|
||||||
|
.stream-container .post .post-head-wrapper-text-only .post-title .post-meta * {
|
||||||
|
font-size: 14px; } }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container .post .post-head-wrapper-text-only .post-title {
|
||||||
|
font-size: 22px; } }
|
||||||
|
.stream-container .post .post-body-wrapper {
|
||||||
|
padding: 30px 35px 35px 35px; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container .post .post-body-wrapper {
|
||||||
|
padding: 20px 20px 35px 20px; } }
|
||||||
|
.stream-container .post .post-body-wrapper .post-body {
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 1.5em; }
|
||||||
|
.stream-container .post .post-body-wrapper .post-body * {
|
||||||
|
word-wrap: break-word; }
|
||||||
|
.stream-container .post .post-body-wrapper .post-body img {
|
||||||
|
max-width: 100%;
|
||||||
|
border-radius: 5px;
|
||||||
|
overflow: hidden; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container .post .post-body-wrapper .post-body {
|
||||||
|
font-size: 16px; } }
|
||||||
|
.stream-container .post .post-body-wrapper .post-body .toc {
|
||||||
|
float: right;
|
||||||
|
border-radius: 5px;
|
||||||
|
background: rgba(159, 86, 58, 0.05);
|
||||||
|
padding: 30px;
|
||||||
|
margin-left: 30px;
|
||||||
|
margin-bottom: 30px; }
|
||||||
|
.stream-container .post .post-body-wrapper .post-body .toc,
|
||||||
|
.stream-container .post .post-body-wrapper .post-body .toc * {
|
||||||
|
font-size: 16px; }
|
||||||
|
.stream-container .post .post-body-wrapper .post-body .toc ul {
|
||||||
|
list-style: decimal;
|
||||||
|
padding: 0 0 0 20px;
|
||||||
|
margin: 0; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container .post .post-body-wrapper .post-body .toc,
|
||||||
|
.stream-container .post .post-body-wrapper .post-body .toc * {
|
||||||
|
font-size: 14px; } }
|
||||||
|
.stream-container .post .post-pagination {
|
||||||
|
padding: 20px 35px;
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between; }
|
||||||
|
.stream-container .post .post-pagination .newer-posts {
|
||||||
|
padding-right: 5px;
|
||||||
|
text-align: left;
|
||||||
|
width: 50%; }
|
||||||
|
.stream-container .post .post-pagination .older-posts {
|
||||||
|
padding-left: 5px;
|
||||||
|
text-align: right;
|
||||||
|
width: 50%; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container .post .post-pagination {
|
||||||
|
padding: 20px 20px; } }
|
||||||
|
.stream-container .post .post-comment-wrapper {
|
||||||
|
padding: 20px 35px; }
|
||||||
|
.stream-container .post .post-comment-wrapper iframe {
|
||||||
|
overflow: hidden !important; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container .post .post-comment-wrapper {
|
||||||
|
padding: 20px 20px; } }
|
||||||
|
.stream-container .pagination {
|
||||||
|
display: none; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.stream-container .pagination {
|
||||||
|
display: flex !important;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: space-between; }
|
||||||
|
.stream-container .pagination:not(.index-page) {
|
||||||
|
margin-top: 15px; }
|
||||||
|
.stream-container .pagination .pagination-indicator {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-content: center;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
justify-items: center;
|
||||||
|
width: 64px;
|
||||||
|
padding: 15px 0;
|
||||||
|
font-size: 12px;
|
||||||
|
font-family: "Fira Mono", "Cousine", Monaco, Menlo, "Source Code Pro", monospace; }
|
||||||
|
.stream-container .pagination .pagination-action {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-content: center;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
justify-items: center;
|
||||||
|
width: 64px;
|
||||||
|
cursor: hand;
|
||||||
|
cursor: pointer;
|
||||||
|
padding: 15px 0; }
|
||||||
|
.stream-container .pagination .pagination-action :not(.pagination-action-icon) {
|
||||||
|
transition: all 0.2s linear;
|
||||||
|
font-size: 13px;
|
||||||
|
font-family: "Fira Mono", "Cousine", Monaco, Menlo, "Source Code Pro", monospace; }
|
||||||
|
.stream-container .pagination .pagination-action * {
|
||||||
|
transition: all 0.3s linear; }
|
||||||
|
.stream-container .pagination .pagination-action:hover {
|
||||||
|
text-decoration: none; }
|
||||||
|
.stream-container .pagination .pagination-action:hover * {
|
||||||
|
color: #7a422c; } }
|
||||||
|
/*.stream-container .single-column-footer*/
|
||||||
|
.single-column-footer {
|
||||||
|
display: none; }
|
||||||
|
@media screen and (max-width: 1020px) {
|
||||||
|
.single-column-footer {
|
||||||
|
display: block !important;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 13px;
|
||||||
|
font-family: "Montserrat", "Roboto", "Source Sans Pro", "Helvetica", "Arial", "Lora", "source-han-serif-tc", serif;
|
||||||
|
padding: 40px 20px 40px 20px; } }
|
BIN
images/Pope-Edouard-de-Beaumont-1844.jpg
Normal file
BIN
images/Pope-Edouard-de-Beaumont-1844.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 66 KiB |
BIN
images/Victor_Hugo-Hunchback.jpg
Normal file
BIN
images/Victor_Hugo-Hunchback.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 109 KiB |
BIN
images/chinese.jpg
Normal file
BIN
images/chinese.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 947 KiB |
BIN
images/esmeralda.jpg
Normal file
BIN
images/esmeralda.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 54 KiB |
BIN
images/notebook.jpg
Normal file
BIN
images/notebook.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 MiB |
193
index.html
Normal file
193
index.html
Normal file
|
@ -0,0 +1,193 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html><head>
|
||||||
|
<meta name="generator" content="Hugo 0.57.2" />
|
||||||
|
<title>Kumi.Blog</title>
|
||||||
|
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
|
||||||
|
<meta content="telephone=no" name="format-detection">
|
||||||
|
<meta name="renderer" content="webkit">
|
||||||
|
<meta name="theme-color" content="#ffffff">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/vendor/js/jquery.min.js" ></script>
|
||||||
|
<script src="/vendor/js/popper.min.js" ></script>
|
||||||
|
<script src="/vendor/js/bootstrap.min.js" ></script>
|
||||||
|
<script src="/vendor/js/smooth-scroll.polyfills.min.js" ></script>
|
||||||
|
<link type="text/css" rel="stylesheet" href="/vendor/css/bootstrap.min.css">
|
||||||
|
<script src="/vendor/js/vue.min.js" ></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://kumi.blog/scss/journal.min.b16b92403170aa4eb662f097e3eb511404d139b4dbc2f3b2a55054fe0b9913c0.css" integrity="sha256-sWuSQDFwqk62YvCX4+tRFATRObTbwvOypVBU/guZE8A=" media="screen">
|
||||||
|
|
||||||
|
<script src="https://kumi.blog//js/loadCSS.js"></script>
|
||||||
|
<script>
|
||||||
|
loadCSS("https://fonts.googleapis.com/css?family=Lora|Montserrat|Fira+Mono|Noto+Serif+SC|Material+Icons");
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</head><body>
|
||||||
|
<div id="app"><div ref="sideContainer" class="side-container">
|
||||||
|
|
||||||
|
<a class="a-block nav-head active" href="https://kumi.blog/">
|
||||||
|
|
||||||
|
<div class="nav-title">
|
||||||
|
Kumi.Blog
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="nav-subtitle">
|
||||||
|
The Blog.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<div class="nav-link-list">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a class="a-block nav-link-item false" href="https://kumi.blog/categories/">
|
||||||
|
Categories
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a class="a-block nav-link-item false" href="https://kumi.blog/tags/">
|
||||||
|
Tags
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="nav-footer">
|
||||||
|
Hugo Theme <a href="https://github.com/amazingrise/hugo-theme-diary">Diary</a> by <a href="https://amazingrise.net">Rise</a>
|
||||||
|
<br>
|
||||||
|
Ported from <a href="https://mak1t0.cc/" target="_blank" rel="noreferrer noopener">Makito</a>'s <a href="https://github.com/SumiMakito/hexo-theme-journal/" target="_blank" rel="noreferrer noopener">Journal.</a> <br>
|
||||||
|
<br>
|
||||||
|
©
|
||||||
|
|
||||||
|
2019 Kumi.Blog
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div><div ref="extraContainer" class="extra-container">
|
||||||
|
<div class="pagination">
|
||||||
|
<a id="globalBackToTop" class="pagination-action animated-visibility" href="#top" :class="{ invisible: scrollY == 0 }">
|
||||||
|
<i class="material-icons pagination-action-icon">
|
||||||
|
keyboard_arrow_up
|
||||||
|
</i>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div><div class="single-column-drawer-container" ref="drawer"
|
||||||
|
v-bind:class="{ 'single-column-drawer-container-active': isDrawerOpen }">
|
||||||
|
<div class="drawer-content">
|
||||||
|
<div class="drawer-menu">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a class="a-block drawer-menu-item false" href="https://kumi.blog/categories/">
|
||||||
|
Categories
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a class="a-block drawer-menu-item false" href="https://kumi.blog/tags/">
|
||||||
|
Tags
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<transition name="fade">
|
||||||
|
<div v-bind:class="{ 'single-column-drawer-mask': mounted }" v-if="isDrawerOpen" v-on:click="toggleDrawer"></div>
|
||||||
|
</transition>
|
||||||
|
<nav ref="navBar" class="navbar sticky-top navbar-light single-column-nav-container">
|
||||||
|
<div ref="navBackground" class="nav-background"></div>
|
||||||
|
<div class="container container-narrow nav-content">
|
||||||
|
<button id="nav_dropdown_btn" class="nav-dropdown-toggle" type="button" v-on:click="toggleDrawer">
|
||||||
|
<i class="material-icons">
|
||||||
|
menu
|
||||||
|
</i>
|
||||||
|
</button>
|
||||||
|
<a ref="navTitle" class="navbar-brand" href="https://kumi.blog/">
|
||||||
|
Kumi.Blog
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<div class="single-column-header-container" ref="pageHead"
|
||||||
|
v-bind:style="{ transform: 'translateZ(0px) translateY('+.3*scrollY+'px)', opacity: 1-navOpacity }">
|
||||||
|
<a href="https://kumi.blog/">
|
||||||
|
<div class="single-column-header-title">Kumi.Blog</div>
|
||||||
|
|
||||||
|
<div class="single-column-header-subtitle">The Blog.</div>
|
||||||
|
|
||||||
|
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div id="content">
|
||||||
|
|
||||||
|
<div ref="streamContainer" class="stream-container">
|
||||||
|
<div class="post-list-container post-list-container-no-background">
|
||||||
|
|
||||||
|
|
||||||
|
<a href="https://kumi.blog/posts/hello-world/" class="a-block">
|
||||||
|
<div class="post-item-wrapper">
|
||||||
|
<div class="post-item post-item-no-divider">
|
||||||
|
<div class="post-item-info-wrapper">
|
||||||
|
<div class="post-item-title">
|
||||||
|
Hello World
|
||||||
|
</div>
|
||||||
|
<div class="post-item-summary">
|
||||||
|
Well, hello. These are the first lines on kumi.blog.
|
||||||
|
</div>
|
||||||
|
<div class="post-item-meta">
|
||||||
|
2019-12-30
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div><div id="single-column-footer">Hugo Theme <a href="https://github.com/amazingrise/hugo-theme-diary">Diary</a> by <a href="https://amazingrise.net">Rise</a>
|
||||||
|
<br>
|
||||||
|
Ported from <a href="https://mak1t0.cc/" target="_blank" rel="noreferrer noopener">Makito</a>'s <a href="https://github.com/SumiMakito/hexo-theme-journal/" target="_blank" rel="noreferrer noopener">Journal.</a> <br>
|
||||||
|
<br>
|
||||||
|
©
|
||||||
|
|
||||||
|
2019 Kumi.Blog
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script src="https://kumi.blog//js/journal.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
25
index.xml
Normal file
25
index.xml
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>Kumi.Blog</title>
|
||||||
|
<link>https://kumi.blog/</link>
|
||||||
|
<description>Recent content on Kumi.Blog</description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-us</language>
|
||||||
|
<lastBuildDate>Mon, 30 Dec 2019 20:21:24 +0100</lastBuildDate>
|
||||||
|
|
||||||
|
<atom:link href="https://kumi.blog/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
|
||||||
|
|
||||||
|
<item>
|
||||||
|
<title>Hello World</title>
|
||||||
|
<link>https://kumi.blog/posts/hello-world/</link>
|
||||||
|
<pubDate>Mon, 30 Dec 2019 20:21:24 +0100</pubDate>
|
||||||
|
|
||||||
|
<guid>https://kumi.blog/posts/hello-world/</guid>
|
||||||
|
<description>Well, hello. These are the first lines on kumi.blog.
|
||||||
|
I&rsquo;m Kumi, this is a blog, so that should explain the name. As for the contents, I&rsquo;m not sure about those either. Expect to see a little bit about my life, a lot of IT related stuff (I&rsquo;m thinking about doing little howtos for server admins and self-datafication, for example), maybe a little politics - well, let&rsquo;s just all sit back and enjoy the show.</description>
|
||||||
|
</item>
|
||||||
|
|
||||||
|
</channel>
|
||||||
|
</rss>
|
70
js/journal.js
Normal file
70
js/journal.js
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
let app;
|
||||||
|
|
||||||
|
app = new Vue({
|
||||||
|
el: '#app',
|
||||||
|
data: {
|
||||||
|
scrollY: 0,
|
||||||
|
navOpacity: 0,
|
||||||
|
isDrawerOpen: false,
|
||||||
|
mounted: false,
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
sgn(t, x) {
|
||||||
|
let k = 1. / (1. - 2 * t);
|
||||||
|
if (x <= t) return 0;
|
||||||
|
else if (x >= 1 - t) return 1;
|
||||||
|
else {
|
||||||
|
return k * (x - t);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleScroll() {
|
||||||
|
this.scrollY = window.scrollY;
|
||||||
|
this.navOpacity = this.sgn(.0, Math.min(1, Math.max(0, window.scrollY / (this.pageHeadHeight() - this.navBarHeight() * 0.8))));
|
||||||
|
const {navBar, navBackground, navTitle, extraContainer, streamContainer} = this.$refs;
|
||||||
|
|
||||||
|
if (this.navOpacity >= 1) {
|
||||||
|
navBackground.style.opacity = 1;
|
||||||
|
navTitle.style.opacity = 1;
|
||||||
|
} else {
|
||||||
|
navBackground.style.opacity = 0;
|
||||||
|
navTitle.style.opacity = 0;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleResize() {
|
||||||
|
const {navBar, navBackground, navTitle, extraContainer, streamContainer} = this.$refs;
|
||||||
|
extraContainer.style.left = (streamContainer.offsetWidth - extraContainer.offsetWidth) + 'px';
|
||||||
|
},
|
||||||
|
navBarHeight() {
|
||||||
|
return this.$refs.navBar.offsetHeight;
|
||||||
|
},
|
||||||
|
pageHeadHeight() {
|
||||||
|
return this.$refs.pageHead.offsetHeight;
|
||||||
|
},
|
||||||
|
toggleDrawer() {
|
||||||
|
this.isDrawerOpen = !this.isDrawerOpen;
|
||||||
|
document.getElementsByTagName('html')[0].style.overflow = this.isDrawerOpen ? 'hidden' : 'unset';
|
||||||
|
},
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
window.addEventListener('scroll', this.handleScroll);
|
||||||
|
window.addEventListener('resize', this.handleResize);
|
||||||
|
window._nonDesktop = function () {
|
||||||
|
let check = false;
|
||||||
|
(function (a) {
|
||||||
|
if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) check = true;
|
||||||
|
})(navigator.userAgent || navigator.vendor || window.opera);
|
||||||
|
return check;
|
||||||
|
};
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.handleScroll();
|
||||||
|
this.handleResize();
|
||||||
|
this.mounted = true;
|
||||||
|
},
|
||||||
|
destroyed() {
|
||||||
|
window.removeEventListener('scroll', this.handleScroll);
|
||||||
|
window.removeEventListener('resize', this.handleResize);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
new SmoothScroll('a#globalBackToTop');
|
79
js/loadCSS.js
Normal file
79
js/loadCSS.js
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
/*! loadCSS. [c]2017 Filament Group, Inc. MIT License */
|
||||||
|
(function(w){
|
||||||
|
"use strict";
|
||||||
|
/* exported loadCSS */
|
||||||
|
var loadCSS = function( href, before, media ){
|
||||||
|
// Arguments explained:
|
||||||
|
// `href` [REQUIRED] is the URL for your CSS file.
|
||||||
|
// `before` [OPTIONAL] is the element the script should use as a reference for injecting our stylesheet <link> before
|
||||||
|
// By default, loadCSS attempts to inject the link after the last stylesheet or script in the DOM. However, you might desire a more specific location in your document.
|
||||||
|
// `media` [OPTIONAL] is the media type or query of the stylesheet. By default it will be 'all'
|
||||||
|
var doc = w.document;
|
||||||
|
var ss = doc.createElement( "link" );
|
||||||
|
var ref;
|
||||||
|
if( before ){
|
||||||
|
ref = before;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var refs = ( doc.body || doc.getElementsByTagName( "head" )[ 0 ] ).childNodes;
|
||||||
|
ref = refs[ refs.length - 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
var sheets = doc.styleSheets;
|
||||||
|
ss.rel = "stylesheet";
|
||||||
|
ss.href = href;
|
||||||
|
// temporarily set media to something inapplicable to ensure it'll fetch without blocking render
|
||||||
|
ss.media = "only x";
|
||||||
|
|
||||||
|
// wait until body is defined before injecting link. This ensures a non-blocking load in IE11.
|
||||||
|
function ready( cb ){
|
||||||
|
if( doc.body ){
|
||||||
|
return cb();
|
||||||
|
}
|
||||||
|
setTimeout(function(){
|
||||||
|
ready( cb );
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// Inject link
|
||||||
|
// Note: the ternary preserves the existing behavior of "before" argument, but we could choose to change the argument to "after" in a later release and standardize on ref.nextSibling for all refs
|
||||||
|
// Note: `insertBefore` is used instead of `appendChild`, for safety re: http://www.paulirish.com/2011/surefire-dom-element-insertion/
|
||||||
|
ready( function(){
|
||||||
|
ref.parentNode.insertBefore( ss, ( before ? ref : ref.nextSibling ) );
|
||||||
|
});
|
||||||
|
// A method (exposed on return object for external use) that mimics onload by polling document.styleSheets until it includes the new sheet.
|
||||||
|
var onloadcssdefined = function( cb ){
|
||||||
|
var resolvedHref = ss.href;
|
||||||
|
var i = sheets.length;
|
||||||
|
while( i-- ){
|
||||||
|
if( sheets[ i ].href === resolvedHref ){
|
||||||
|
return cb();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
setTimeout(function() {
|
||||||
|
onloadcssdefined( cb );
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
function loadCB(){
|
||||||
|
if( ss.addEventListener ){
|
||||||
|
ss.removeEventListener( "load", loadCB );
|
||||||
|
}
|
||||||
|
ss.media = media || "all";
|
||||||
|
}
|
||||||
|
|
||||||
|
// once loaded, set link's media back to `all` so that the stylesheet applies once it loads
|
||||||
|
if( ss.addEventListener ){
|
||||||
|
ss.addEventListener( "load", loadCB);
|
||||||
|
}
|
||||||
|
ss.onloadcssdefined = onloadcssdefined;
|
||||||
|
onloadcssdefined( loadCB );
|
||||||
|
return ss;
|
||||||
|
};
|
||||||
|
// commonjs
|
||||||
|
if( typeof exports !== "undefined" ){
|
||||||
|
exports.loadCSS = loadCSS;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
w.loadCSS = loadCSS;
|
||||||
|
}
|
||||||
|
}( typeof global !== "undefined" ? global : this ));
|
1
page/1/index.html
Normal file
1
page/1/index.html
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<!DOCTYPE html><html><head><title>https://kumi.blog/</title><link rel="canonical" href="https://kumi.blog/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://kumi.blog/" /></head></html>
|
|
@ -1,16 +0,0 @@
|
||||||
THEME = "themes/kumi-theme"
|
|
||||||
SITENAME = "Kumi's Blog"
|
|
||||||
SITEURL = "https://kumi.blog"
|
|
||||||
AUTHOR = "Kumi"
|
|
||||||
TIMEZONE = "Europe/Vienna"
|
|
||||||
COPYRIGHT_YEAR = 2025
|
|
||||||
|
|
||||||
# Optional: Configure menu items
|
|
||||||
MENUITEMS = (
|
|
||||||
("About", "/pages/about.html"),
|
|
||||||
("Main Site", "https://kumi.website"),
|
|
||||||
)
|
|
||||||
|
|
||||||
# Display pages and categories in the navigation
|
|
||||||
DISPLAY_PAGES_ON_MENU = False
|
|
||||||
DISPLAY_CATEGORIES_ON_MENU = False
|
|
220
posts/hello-world/index.html
Normal file
220
posts/hello-world/index.html
Normal file
|
@ -0,0 +1,220 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html><head>
|
||||||
|
<title>Hello World</title>
|
||||||
|
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
|
||||||
|
<meta content="telephone=no" name="format-detection">
|
||||||
|
<meta name="renderer" content="webkit">
|
||||||
|
<meta name="theme-color" content="#ffffff">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/vendor/js/jquery.min.js" ></script>
|
||||||
|
<script src="/vendor/js/popper.min.js" ></script>
|
||||||
|
<script src="/vendor/js/bootstrap.min.js" ></script>
|
||||||
|
<script src="/vendor/js/smooth-scroll.polyfills.min.js" ></script>
|
||||||
|
<link type="text/css" rel="stylesheet" href="/vendor/css/bootstrap.min.css">
|
||||||
|
<script src="/vendor/js/vue.min.js" ></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://kumi.blog/scss/journal.min.b16b92403170aa4eb662f097e3eb511404d139b4dbc2f3b2a55054fe0b9913c0.css" integrity="sha256-sWuSQDFwqk62YvCX4+tRFATRObTbwvOypVBU/guZE8A=" media="screen">
|
||||||
|
|
||||||
|
<script src="https://kumi.blog//js/loadCSS.js"></script>
|
||||||
|
<script>
|
||||||
|
loadCSS("https://fonts.googleapis.com/css?family=Lora|Montserrat|Fira+Mono|Noto+Serif+SC|Material+Icons");
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</head><body>
|
||||||
|
<div id="app"><div ref="sideContainer" class="side-container">
|
||||||
|
|
||||||
|
<a class="a-block nav-head false" href="https://kumi.blog/">
|
||||||
|
|
||||||
|
<div class="nav-title">
|
||||||
|
Kumi.Blog
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="nav-subtitle">
|
||||||
|
The Blog.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<div class="nav-link-list">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a class="a-block nav-link-item false" href="https://kumi.blog/categories/">
|
||||||
|
Categories
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a class="a-block nav-link-item false" href="https://kumi.blog/tags/">
|
||||||
|
Tags
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="nav-footer">
|
||||||
|
Hugo Theme <a href="https://github.com/amazingrise/hugo-theme-diary">Diary</a> by <a href="https://amazingrise.net">Rise</a>
|
||||||
|
<br>
|
||||||
|
Ported from <a href="https://mak1t0.cc/" target="_blank" rel="noreferrer noopener">Makito</a>'s <a href="https://github.com/SumiMakito/hexo-theme-journal/" target="_blank" rel="noreferrer noopener">Journal.</a> <br>
|
||||||
|
<br>
|
||||||
|
©
|
||||||
|
|
||||||
|
2019 Kumi.Blog
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div><div ref="extraContainer" class="extra-container">
|
||||||
|
<div class="pagination">
|
||||||
|
<a id="globalBackToTop" class="pagination-action animated-visibility" href="#top" :class="{ invisible: scrollY == 0 }">
|
||||||
|
<i class="material-icons pagination-action-icon">
|
||||||
|
keyboard_arrow_up
|
||||||
|
</i>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div><div class="single-column-drawer-container" ref="drawer"
|
||||||
|
v-bind:class="{ 'single-column-drawer-container-active': isDrawerOpen }">
|
||||||
|
<div class="drawer-content">
|
||||||
|
<div class="drawer-menu">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a class="a-block drawer-menu-item false" href="https://kumi.blog/categories/">
|
||||||
|
Categories
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a class="a-block drawer-menu-item false" href="https://kumi.blog/tags/">
|
||||||
|
Tags
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<transition name="fade">
|
||||||
|
<div v-bind:class="{ 'single-column-drawer-mask': mounted }" v-if="isDrawerOpen" v-on:click="toggleDrawer"></div>
|
||||||
|
</transition>
|
||||||
|
<nav ref="navBar" class="navbar sticky-top navbar-light single-column-nav-container">
|
||||||
|
<div ref="navBackground" class="nav-background"></div>
|
||||||
|
<div class="container container-narrow nav-content">
|
||||||
|
<button id="nav_dropdown_btn" class="nav-dropdown-toggle" type="button" v-on:click="toggleDrawer">
|
||||||
|
<i class="material-icons">
|
||||||
|
menu
|
||||||
|
</i>
|
||||||
|
</button>
|
||||||
|
<a ref="navTitle" class="navbar-brand" href="https://kumi.blog/">
|
||||||
|
Kumi.Blog
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<div class="single-column-header-container" ref="pageHead"
|
||||||
|
v-bind:style="{ transform: 'translateZ(0px) translateY('+.3*scrollY+'px)', opacity: 1-navOpacity }">
|
||||||
|
<a href="https://kumi.blog/">
|
||||||
|
<div class="single-column-header-title">Kumi.Blog</div>
|
||||||
|
|
||||||
|
<div class="single-column-header-subtitle">The Blog.</div>
|
||||||
|
|
||||||
|
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div id="content">
|
||||||
|
<div ref="streamContainer" class="stream-container">
|
||||||
|
<div class="post-list-container post-list-container-shadow">
|
||||||
|
<div class="post">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="post-head-wrapper-text-only"
|
||||||
|
style="background-image: url('/')">
|
||||||
|
<div class="post-title">
|
||||||
|
Hello World
|
||||||
|
<div class="post-meta">
|
||||||
|
<time itemprop="datePublished">
|
||||||
|
2019-12-30 20:21
|
||||||
|
</time>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="post-body-wrapper">
|
||||||
|
<div class="post-body">
|
||||||
|
<p>Well, hello. These are the first lines on kumi.blog.</p>
|
||||||
|
|
||||||
|
<p>I’m Kumi, this is a blog, so that should explain the name. As for the contents,
|
||||||
|
I’m not sure about those either. Expect to see a little bit about my life,
|
||||||
|
a lot of IT related stuff (I’m thinking about doing little howtos for server
|
||||||
|
admins and self-datafication, for example), maybe a little politics - well,
|
||||||
|
let’s just all sit back and enjoy the show.</p>
|
||||||
|
|
||||||
|
<p>That’s all for now. See you all soon!</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<nav class="post-pagination">
|
||||||
|
|
||||||
|
<a class="newer-posts">
|
||||||
|
No newer posts.
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a class="older-posts">
|
||||||
|
No older posts.
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div><div id="single-column-footer">Hugo Theme <a href="https://github.com/amazingrise/hugo-theme-diary">Diary</a> by <a href="https://amazingrise.net">Rise</a>
|
||||||
|
<br>
|
||||||
|
Ported from <a href="https://mak1t0.cc/" target="_blank" rel="noreferrer noopener">Makito</a>'s <a href="https://github.com/SumiMakito/hexo-theme-journal/" target="_blank" rel="noreferrer noopener">Journal.</a> <br>
|
||||||
|
<br>
|
||||||
|
©
|
||||||
|
|
||||||
|
2019 Kumi.Blog
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script src="https://kumi.blog//js/journal.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
25
posts/index.xml
Normal file
25
posts/index.xml
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>Posts on Kumi.Blog</title>
|
||||||
|
<link>https://kumi.blog/posts/</link>
|
||||||
|
<description>Recent content in Posts on Kumi.Blog</description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-us</language>
|
||||||
|
<lastBuildDate>Mon, 30 Dec 2019 20:21:24 +0100</lastBuildDate>
|
||||||
|
|
||||||
|
<atom:link href="https://kumi.blog/posts/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
|
||||||
|
|
||||||
|
<item>
|
||||||
|
<title>Hello World</title>
|
||||||
|
<link>https://kumi.blog/posts/hello-world/</link>
|
||||||
|
<pubDate>Mon, 30 Dec 2019 20:21:24 +0100</pubDate>
|
||||||
|
|
||||||
|
<guid>https://kumi.blog/posts/hello-world/</guid>
|
||||||
|
<description>Well, hello. These are the first lines on kumi.blog.
|
||||||
|
I&rsquo;m Kumi, this is a blog, so that should explain the name. As for the contents, I&rsquo;m not sure about those either. Expect to see a little bit about my life, a lot of IT related stuff (I&rsquo;m thinking about doing little howtos for server admins and self-datafication, for example), maybe a little politics - well, let&rsquo;s just all sit back and enjoy the show.</description>
|
||||||
|
</item>
|
||||||
|
|
||||||
|
</channel>
|
||||||
|
</rss>
|
|
@ -1,2 +0,0 @@
|
||||||
pelican
|
|
||||||
markdown
|
|
File diff suppressed because one or more lines are too long
28
sitemap.xml
Normal file
28
sitemap.xml
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||||
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
||||||
|
xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
||||||
|
|
||||||
|
<url>
|
||||||
|
<loc>https://kumi.blog/posts/hello-world/</loc>
|
||||||
|
<lastmod>2019-12-30T20:21:24+01:00</lastmod>
|
||||||
|
</url>
|
||||||
|
|
||||||
|
<url>
|
||||||
|
<loc>https://kumi.blog/</loc>
|
||||||
|
<lastmod>2019-12-30T20:21:24+01:00</lastmod>
|
||||||
|
</url>
|
||||||
|
|
||||||
|
<url>
|
||||||
|
<loc>https://kumi.blog/posts/</loc>
|
||||||
|
<lastmod>2019-12-30T20:21:24+01:00</lastmod>
|
||||||
|
</url>
|
||||||
|
|
||||||
|
<url>
|
||||||
|
<loc>https://kumi.blog/categories/</loc>
|
||||||
|
</url>
|
||||||
|
|
||||||
|
<url>
|
||||||
|
<loc>https://kumi.blog/tags/</loc>
|
||||||
|
</url>
|
||||||
|
|
||||||
|
</urlset>
|
188
tags/index.html
Normal file
188
tags/index.html
Normal file
|
@ -0,0 +1,188 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html><head>
|
||||||
|
<title>Tags</title>
|
||||||
|
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
|
||||||
|
<meta content="telephone=no" name="format-detection">
|
||||||
|
<meta name="renderer" content="webkit">
|
||||||
|
<meta name="theme-color" content="#ffffff">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/vendor/js/jquery.min.js" ></script>
|
||||||
|
<script src="/vendor/js/popper.min.js" ></script>
|
||||||
|
<script src="/vendor/js/bootstrap.min.js" ></script>
|
||||||
|
<script src="/vendor/js/smooth-scroll.polyfills.min.js" ></script>
|
||||||
|
<link type="text/css" rel="stylesheet" href="/vendor/css/bootstrap.min.css">
|
||||||
|
<script src="/vendor/js/vue.min.js" ></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://kumi.blog/scss/journal.min.b16b92403170aa4eb662f097e3eb511404d139b4dbc2f3b2a55054fe0b9913c0.css" integrity="sha256-sWuSQDFwqk62YvCX4+tRFATRObTbwvOypVBU/guZE8A=" media="screen">
|
||||||
|
|
||||||
|
<script src="https://kumi.blog//js/loadCSS.js"></script>
|
||||||
|
<script>
|
||||||
|
loadCSS("https://fonts.googleapis.com/css?family=Lora|Montserrat|Fira+Mono|Noto+Serif+SC|Material+Icons");
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</head><body>
|
||||||
|
<div id="app"><div ref="sideContainer" class="side-container">
|
||||||
|
|
||||||
|
<a class="a-block nav-head false" href="https://kumi.blog/">
|
||||||
|
|
||||||
|
<div class="nav-title">
|
||||||
|
Kumi.Blog
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="nav-subtitle">
|
||||||
|
The Blog.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<div class="nav-link-list">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a class="a-block nav-link-item false" href="https://kumi.blog/categories/">
|
||||||
|
Categories
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a class="a-block nav-link-item active" href="https://kumi.blog/tags/">
|
||||||
|
Tags
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="nav-footer">
|
||||||
|
Hugo Theme <a href="https://github.com/amazingrise/hugo-theme-diary">Diary</a> by <a href="https://amazingrise.net">Rise</a>
|
||||||
|
<br>
|
||||||
|
Ported from <a href="https://mak1t0.cc/" target="_blank" rel="noreferrer noopener">Makito</a>'s <a href="https://github.com/SumiMakito/hexo-theme-journal/" target="_blank" rel="noreferrer noopener">Journal.</a> <br>
|
||||||
|
<br>
|
||||||
|
©
|
||||||
|
|
||||||
|
2019 Kumi.Blog
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div><div ref="extraContainer" class="extra-container">
|
||||||
|
<div class="pagination">
|
||||||
|
<a id="globalBackToTop" class="pagination-action animated-visibility" href="#top" :class="{ invisible: scrollY == 0 }">
|
||||||
|
<i class="material-icons pagination-action-icon">
|
||||||
|
keyboard_arrow_up
|
||||||
|
</i>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div><div class="single-column-drawer-container" ref="drawer"
|
||||||
|
v-bind:class="{ 'single-column-drawer-container-active': isDrawerOpen }">
|
||||||
|
<div class="drawer-content">
|
||||||
|
<div class="drawer-menu">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a class="a-block drawer-menu-item false" href="https://kumi.blog/categories/">
|
||||||
|
Categories
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a class="a-block drawer-menu-item active" href="https://kumi.blog/tags/">
|
||||||
|
Tags
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<transition name="fade">
|
||||||
|
<div v-bind:class="{ 'single-column-drawer-mask': mounted }" v-if="isDrawerOpen" v-on:click="toggleDrawer"></div>
|
||||||
|
</transition>
|
||||||
|
<nav ref="navBar" class="navbar sticky-top navbar-light single-column-nav-container">
|
||||||
|
<div ref="navBackground" class="nav-background"></div>
|
||||||
|
<div class="container container-narrow nav-content">
|
||||||
|
<button id="nav_dropdown_btn" class="nav-dropdown-toggle" type="button" v-on:click="toggleDrawer">
|
||||||
|
<i class="material-icons">
|
||||||
|
menu
|
||||||
|
</i>
|
||||||
|
</button>
|
||||||
|
<a ref="navTitle" class="navbar-brand" href="https://kumi.blog/">
|
||||||
|
Kumi.Blog
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<div class="single-column-header-container" ref="pageHead"
|
||||||
|
v-bind:style="{ transform: 'translateZ(0px) translateY('+.3*scrollY+'px)', opacity: 1-navOpacity }">
|
||||||
|
<a href="https://kumi.blog/">
|
||||||
|
<div class="single-column-header-title">Kumi.Blog</div>
|
||||||
|
|
||||||
|
<div class="single-column-header-subtitle">The Blog.</div>
|
||||||
|
|
||||||
|
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div id="content">
|
||||||
|
<div ref="streamContainer" class="stream-container">
|
||||||
|
<div class="post-list-container post-list-container-shadow">
|
||||||
|
<a class="a-block">
|
||||||
|
<div class="post-item-wrapper post-item-wrapper-no-hover">
|
||||||
|
<div class="post-item post-item-no-gaps">
|
||||||
|
<div class="post-item-info-wrapper">
|
||||||
|
<div class="post-item-title post-item-title-small">
|
||||||
|
Tags
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div><div id="single-column-footer">Hugo Theme <a href="https://github.com/amazingrise/hugo-theme-diary">Diary</a> by <a href="https://amazingrise.net">Rise</a>
|
||||||
|
<br>
|
||||||
|
Ported from <a href="https://mak1t0.cc/" target="_blank" rel="noreferrer noopener">Makito</a>'s <a href="https://github.com/SumiMakito/hexo-theme-journal/" target="_blank" rel="noreferrer noopener">Journal.</a> <br>
|
||||||
|
<br>
|
||||||
|
©
|
||||||
|
|
||||||
|
2019 Kumi.Blog
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script src="https://kumi.blog//js/journal.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
14
tags/index.xml
Normal file
14
tags/index.xml
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||||
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
|
<channel>
|
||||||
|
<title>Tags on Kumi.Blog</title>
|
||||||
|
<link>https://kumi.blog/tags/</link>
|
||||||
|
<description>Recent content in Tags on Kumi.Blog</description>
|
||||||
|
<generator>Hugo -- gohugo.io</generator>
|
||||||
|
<language>en-us</language>
|
||||||
|
|
||||||
|
<atom:link href="https://kumi.blog/tags/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
|
||||||
|
|
||||||
|
</channel>
|
||||||
|
</rss>
|
1
tags/page/1/index.html
Normal file
1
tags/page/1/index.html
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<!DOCTYPE html><html><head><title>https://kumi.blog/tags/</title><link rel="canonical" href="https://kumi.blog/tags/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://kumi.blog/tags/" /></head></html>
|
|
@ -1,188 +0,0 @@
|
||||||
body {
|
|
||||||
background-color: #121212;
|
|
||||||
color: #c8c8c8;
|
|
||||||
font-family: 'Open Sans', 'Roboto', sans-serif; /* Changed default font */
|
|
||||||
margin: 0;
|
|
||||||
padding: 0 10px;
|
|
||||||
text-align: center;
|
|
||||||
line-height: 1.6;
|
|
||||||
}
|
|
||||||
|
|
||||||
header {
|
|
||||||
padding: 30px 0;
|
|
||||||
background-color: #1d1d1d;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
font-family: 'Press Start 2P', cursive; /* Keep retro font for header */
|
|
||||||
}
|
|
||||||
|
|
||||||
header h1 {
|
|
||||||
font-size: 1.8em;
|
|
||||||
margin: 0;
|
|
||||||
color: #00ff00;
|
|
||||||
}
|
|
||||||
|
|
||||||
header h1 a {
|
|
||||||
color: #00ff00;
|
|
||||||
}
|
|
||||||
|
|
||||||
nav {
|
|
||||||
margin-top: 10px;
|
|
||||||
font-family: 'Press Start 2P', cursive; /* Keep retro font for navigation */
|
|
||||||
font-size: 0.8em; /* Slightly smaller due to the chunky font */
|
|
||||||
}
|
|
||||||
|
|
||||||
nav a {
|
|
||||||
margin: 0 10px;
|
|
||||||
color: #00ff00;
|
|
||||||
text-decoration: none;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
nav a:hover {
|
|
||||||
color: #ff00ff;
|
|
||||||
}
|
|
||||||
|
|
||||||
section, article, .content {
|
|
||||||
padding: 20px;
|
|
||||||
margin: 0 auto 20px;
|
|
||||||
max-width: 700px;
|
|
||||||
background-color: #1e1e1e;
|
|
||||||
border-radius: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
section h2, article h2, article h1, .article-list h3 {
|
|
||||||
font-family: 'Press Start 2P', cursive; /* Keep retro font for headings */
|
|
||||||
color: #00ff00;
|
|
||||||
margin-top: 0;
|
|
||||||
line-height: 1.4; /* Better line height for the chunky font */
|
|
||||||
}
|
|
||||||
|
|
||||||
section h2, article h2 {
|
|
||||||
font-size: 1.4em;
|
|
||||||
}
|
|
||||||
|
|
||||||
article h1 {
|
|
||||||
font-size: 1.6em;
|
|
||||||
}
|
|
||||||
|
|
||||||
section p,
|
|
||||||
section ul,
|
|
||||||
article p,
|
|
||||||
article ul,
|
|
||||||
.summary {
|
|
||||||
font-size: 1em;
|
|
||||||
text-align: left;
|
|
||||||
line-height: 1.7; /* Better line height for readability */
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul {
|
|
||||||
list-style-type: square;
|
|
||||||
padding-left: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
footer {
|
|
||||||
padding: 15px 0;
|
|
||||||
background-color: #1d1d1d;
|
|
||||||
font-size: 0.8em;
|
|
||||||
font-family: 'Press Start 2P', cursive; /* Keep retro font for footer */
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
color: #00ccff;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
a:hover {
|
|
||||||
color: #ff00ff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.article-info {
|
|
||||||
font-size: 0.8em;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
color: #888;
|
|
||||||
font-family: 'Open Sans', 'Roboto', sans-serif; /* Regular font for metadata */
|
|
||||||
}
|
|
||||||
|
|
||||||
.article-list {
|
|
||||||
list-style-type: none;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.article-list li {
|
|
||||||
margin-bottom: 20px;
|
|
||||||
padding-bottom: 20px;
|
|
||||||
border-bottom: 1px solid #333;
|
|
||||||
}
|
|
||||||
|
|
||||||
.article-list li:last-child {
|
|
||||||
border-bottom: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.article-list h3 {
|
|
||||||
font-size: 1.3em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.article-list a {
|
|
||||||
color: #00ccff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.article-list a:hover {
|
|
||||||
color: #ff00ff;
|
|
||||||
}
|
|
||||||
|
|
||||||
code, pre {
|
|
||||||
background-color: #2a2a2a;
|
|
||||||
padding: 2px 5px;
|
|
||||||
border-radius: 3px;
|
|
||||||
font-family: 'Courier New', monospace;
|
|
||||||
font-size: 0.95em;
|
|
||||||
}
|
|
||||||
|
|
||||||
pre {
|
|
||||||
padding: 10px;
|
|
||||||
overflow-x: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
blockquote {
|
|
||||||
border-left: 3px solid #00ff00;
|
|
||||||
padding-left: 15px;
|
|
||||||
margin-left: 0;
|
|
||||||
color: #aaa;
|
|
||||||
}
|
|
||||||
|
|
||||||
img {
|
|
||||||
max-width: 100%;
|
|
||||||
height: auto;
|
|
||||||
display: block;
|
|
||||||
margin: 20px auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pagination {
|
|
||||||
margin: 20px 0;
|
|
||||||
font-family: 'Press Start 2P', cursive; /* Keep retro font for pagination */
|
|
||||||
font-size: 0.8em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pagination a {
|
|
||||||
padding: 5px 10px;
|
|
||||||
margin: 0 5px;
|
|
||||||
background-color: #1d1d1d;
|
|
||||||
border-radius: 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.green-text {
|
|
||||||
color: #00ff00;
|
|
||||||
}
|
|
||||||
|
|
||||||
.read-more {
|
|
||||||
display: inline-block;
|
|
||||||
margin-top: 10px;
|
|
||||||
color: #00ccff;
|
|
||||||
font-family: 'Press Start 2P', cursive; /* Keep retro font for "Read more" links */
|
|
||||||
font-size: 0.8em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.read-more:hover {
|
|
||||||
color: #ff00ff;
|
|
||||||
}
|
|
|
@ -1,20 +0,0 @@
|
||||||
{% extends "base.html" %}
|
|
||||||
{% block title %}Archives - {{ SITENAME }}{% endblock %}
|
|
||||||
{% block content %}
|
|
||||||
<section>
|
|
||||||
<h2>Archives</h2>
|
|
||||||
{% for article in dates %}
|
|
||||||
<article>
|
|
||||||
<h3>
|
|
||||||
<a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a>
|
|
||||||
</h3>
|
|
||||||
<div class="article-info">
|
|
||||||
<span>{{ article.locale_date }}</span>
|
|
||||||
{% if article.category %}
|
|
||||||
<span> | Category: <a href="{{ SITEURL }}/{{ article.category.url }}">{{ article.category }}</a></span>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
{% endfor %}
|
|
||||||
</section>
|
|
||||||
{% endblock %}
|
|
|
@ -1,34 +0,0 @@
|
||||||
{% extends "base.html" %}
|
|
||||||
{% block title %}{{ article.title }} - {{ SITENAME }}{% endblock %}
|
|
||||||
{% block content %}
|
|
||||||
<article>
|
|
||||||
<h1>{{ article.title }}</h1>
|
|
||||||
<div class="article-info">
|
|
||||||
<span>Posted on {{ article.locale_date }}</span>
|
|
||||||
{% if article.category %}
|
|
||||||
<span> | Category: <a href="{{ SITEURL }}/{{ article.category.url }}">{{ article.category }}</a></span>
|
|
||||||
{% endif %}
|
|
||||||
{% if article.tags %}
|
|
||||||
<span> | Tags:
|
|
||||||
{% for tag in article.tags %}
|
|
||||||
<a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a>
|
|
||||||
{% if not loop.last %},{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
</span>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
<div class="article-content">{{ article.content }}</div>
|
|
||||||
{% if article.related_posts %}
|
|
||||||
<div class="related-posts">
|
|
||||||
<h3>Related Posts</h3>
|
|
||||||
<ul>
|
|
||||||
{% for related_post in article.related_posts %}
|
|
||||||
<li>
|
|
||||||
<a href="{{ SITEURL }}/{{ related_post.url }}">{{ related_post.title }}</a>
|
|
||||||
</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
</article>
|
|
||||||
{% endblock %}
|
|
|
@ -1,42 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="{% block html_lang %}{{ DEFAULT_LANG }}{% endblock html_lang %}">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<title>
|
|
||||||
{% block title %}{{ SITENAME }}{% endblock %}
|
|
||||||
</title>
|
|
||||||
<link href="https://googledonts.private.coffee/css2?family=Press+Start+2P&family=Open+Sans:wght@400;600&display=swap"
|
|
||||||
rel="stylesheet">
|
|
||||||
<link rel="stylesheet"
|
|
||||||
href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/css/style.css" />
|
|
||||||
{% block extra_head %}
|
|
||||||
{% endblock extra_head %}
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<header>
|
|
||||||
<h1>
|
|
||||||
<a href="{{ SITEURL }}/">{{ SITENAME }}</a>
|
|
||||||
</h1>
|
|
||||||
<nav>
|
|
||||||
<a href="{{ SITEURL }}/">Home</a>
|
|
||||||
{% for title, link in MENUITEMS %}<a href="{{ link }}">{{ title }}</a>{% endfor %}
|
|
||||||
{% if DISPLAY_PAGES_ON_MENU %}
|
|
||||||
{% for p in pages %}<a href="{{ SITEURL }}/{{ p.url }}">{{ p.title }}</a>{% endfor %}
|
|
||||||
{% endif %}
|
|
||||||
{% if DISPLAY_CATEGORIES_ON_MENU %}
|
|
||||||
{% for cat, null in categories %}<a href="{{ SITEURL }}/{{ cat.url }}">{{ cat }}</a>{% endfor %}
|
|
||||||
{% endif %}
|
|
||||||
<a href="{{ SITEURL }}/archives.html">Archives</a>
|
|
||||||
</nav>
|
|
||||||
</header>
|
|
||||||
<div class="content">
|
|
||||||
{% block content %}{% endblock %}
|
|
||||||
</div>
|
|
||||||
<footer>
|
|
||||||
<p>
|
|
||||||
© {{ COPYRIGHT_YEAR|default(2025) }} {{ AUTHOR }} | Powered by <a href="https://getpelican.com">Pelican</a>, curiosity and caffeine.
|
|
||||||
</p>
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,21 +0,0 @@
|
||||||
{% extends "index.html" %}
|
|
||||||
{% block title %}{{ category }} - {{ SITENAME }}{% endblock %}
|
|
||||||
{% block content %}
|
|
||||||
<section>
|
|
||||||
<h2>Category: {{ category }}</h2>
|
|
||||||
<ul class="article-list">
|
|
||||||
{% for article in articles %}
|
|
||||||
<li>
|
|
||||||
<h3>
|
|
||||||
<a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a>
|
|
||||||
</h3>
|
|
||||||
<div class="article-info">
|
|
||||||
<span>{{ article.locale_date }}</span>
|
|
||||||
</div>
|
|
||||||
<div class="summary">{{ article.summary }}</div>
|
|
||||||
<a href="{{ SITEURL }}/{{ article.url }}">Read more...</a>
|
|
||||||
</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
{% endblock %}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{% extends "base.html" %}
|
|
||||||
{% block content %}
|
|
||||||
<section>
|
|
||||||
<h2>Latest Posts</h2>
|
|
||||||
<ul class="article-list">
|
|
||||||
{% for article in articles_page.object_list %}
|
|
||||||
<li>
|
|
||||||
<h3>
|
|
||||||
<a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a>
|
|
||||||
</h3>
|
|
||||||
<div class="article-info">
|
|
||||||
<span>{{ article.locale_date }}</span>
|
|
||||||
{% if article.category %}
|
|
||||||
<span> | Category: <a href="{{ SITEURL }}/{{ article.category.url }}">{{ article.category }}</a></span>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
<div class="summary">{{ article.summary }}</div>
|
|
||||||
<a href="{{ SITEURL }}/{{ article.url }}">Read more...</a>
|
|
||||||
</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% if articles_page.has_other_pages() %}
|
|
||||||
<div class="pagination">
|
|
||||||
{% if articles_page.has_previous() %}
|
|
||||||
<a href="{{ SITEURL }}/{{ articles_previous_page.url }}">« Previous</a>
|
|
||||||
{% endif %}
|
|
||||||
Page {{ articles_page.number }} / {{ articles_paginator.num_pages }}
|
|
||||||
{% if articles_page.has_next() %}<a href="{{ SITEURL }}/{{ articles_next_page.url }}">Next »</a>{% endif %}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
</section>
|
|
||||||
{% endblock content %}
|
|
|
@ -1,24 +0,0 @@
|
||||||
{% extends "index.html" %}
|
|
||||||
{% block title %}{{ tag }} - {{ SITENAME }}{% endblock %}
|
|
||||||
{% block content %}
|
|
||||||
<section>
|
|
||||||
<h2>Tag: {{ tag }}</h2>
|
|
||||||
<ul class="article-list">
|
|
||||||
{% for article in articles %}
|
|
||||||
<li>
|
|
||||||
<h3>
|
|
||||||
<a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a>
|
|
||||||
</h3>
|
|
||||||
<div class="article-info">
|
|
||||||
<span>{{ article.locale_date }}</span>
|
|
||||||
{% if article.category %}
|
|
||||||
<span> | Category: <a href="{{ SITEURL }}/{{ article.category.url }}">{{ article.category }}</a></span>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
<div class="summary">{{ article.summary }}</div>
|
|
||||||
<a href="{{ SITEURL }}/{{ article.url }}">Read more...</a>
|
|
||||||
</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
{% endblock %}
|
|
7
vendor/css/bootstrap.min.css
vendored
Normal file
7
vendor/css/bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
vendor/css/bootstrap.min.css.map
vendored
Normal file
1
vendor/css/bootstrap.min.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
7
vendor/js/bootstrap.min.js
vendored
Normal file
7
vendor/js/bootstrap.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
vendor/js/bootstrap.min.js.map
vendored
Normal file
1
vendor/js/bootstrap.min.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
2
vendor/js/jquery.min.js
vendored
Normal file
2
vendor/js/jquery.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
79
vendor/js/loadCSS.js
vendored
Normal file
79
vendor/js/loadCSS.js
vendored
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
/*! loadCSS. [c]2017 Filament Group, Inc. MIT License */
|
||||||
|
(function(w){
|
||||||
|
"use strict";
|
||||||
|
/* exported loadCSS */
|
||||||
|
var loadCSS = function( href, before, media ){
|
||||||
|
// Arguments explained:
|
||||||
|
// `href` [REQUIRED] is the URL for your CSS file.
|
||||||
|
// `before` [OPTIONAL] is the element the script should use as a reference for injecting our stylesheet <link> before
|
||||||
|
// By default, loadCSS attempts to inject the link after the last stylesheet or script in the DOM. However, you might desire a more specific location in your document.
|
||||||
|
// `media` [OPTIONAL] is the media type or query of the stylesheet. By default it will be 'all'
|
||||||
|
var doc = w.document;
|
||||||
|
var ss = doc.createElement( "link" );
|
||||||
|
var ref;
|
||||||
|
if( before ){
|
||||||
|
ref = before;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var refs = ( doc.body || doc.getElementsByTagName( "head" )[ 0 ] ).childNodes;
|
||||||
|
ref = refs[ refs.length - 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
var sheets = doc.styleSheets;
|
||||||
|
ss.rel = "stylesheet";
|
||||||
|
ss.href = href;
|
||||||
|
// temporarily set media to something inapplicable to ensure it'll fetch without blocking render
|
||||||
|
ss.media = "only x";
|
||||||
|
|
||||||
|
// wait until body is defined before injecting link. This ensures a non-blocking load in IE11.
|
||||||
|
function ready( cb ){
|
||||||
|
if( doc.body ){
|
||||||
|
return cb();
|
||||||
|
}
|
||||||
|
setTimeout(function(){
|
||||||
|
ready( cb );
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// Inject link
|
||||||
|
// Note: the ternary preserves the existing behavior of "before" argument, but we could choose to change the argument to "after" in a later release and standardize on ref.nextSibling for all refs
|
||||||
|
// Note: `insertBefore` is used instead of `appendChild`, for safety re: http://www.paulirish.com/2011/surefire-dom-element-insertion/
|
||||||
|
ready( function(){
|
||||||
|
ref.parentNode.insertBefore( ss, ( before ? ref : ref.nextSibling ) );
|
||||||
|
});
|
||||||
|
// A method (exposed on return object for external use) that mimics onload by polling document.styleSheets until it includes the new sheet.
|
||||||
|
var onloadcssdefined = function( cb ){
|
||||||
|
var resolvedHref = ss.href;
|
||||||
|
var i = sheets.length;
|
||||||
|
while( i-- ){
|
||||||
|
if( sheets[ i ].href === resolvedHref ){
|
||||||
|
return cb();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
setTimeout(function() {
|
||||||
|
onloadcssdefined( cb );
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
function loadCB(){
|
||||||
|
if( ss.addEventListener ){
|
||||||
|
ss.removeEventListener( "load", loadCB );
|
||||||
|
}
|
||||||
|
ss.media = media || "all";
|
||||||
|
}
|
||||||
|
|
||||||
|
// once loaded, set link's media back to `all` so that the stylesheet applies once it loads
|
||||||
|
if( ss.addEventListener ){
|
||||||
|
ss.addEventListener( "load", loadCB);
|
||||||
|
}
|
||||||
|
ss.onloadcssdefined = onloadcssdefined;
|
||||||
|
onloadcssdefined( loadCB );
|
||||||
|
return ss;
|
||||||
|
};
|
||||||
|
// commonjs
|
||||||
|
if( typeof exports !== "undefined" ){
|
||||||
|
exports.loadCSS = loadCSS;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
w.loadCSS = loadCSS;
|
||||||
|
}
|
||||||
|
}( typeof global !== "undefined" ? global : this ));
|
5
vendor/js/popper.min.js
vendored
Normal file
5
vendor/js/popper.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
vendor/js/popper.min.js.map
vendored
Normal file
1
vendor/js/popper.min.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
2
vendor/js/smooth-scroll.polyfills.min.js
vendored
Normal file
2
vendor/js/smooth-scroll.polyfills.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
6
vendor/js/vue.min.js
vendored
Normal file
6
vendor/js/vue.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue