Compare commits

...

17 Commits

Author SHA1 Message Date
65fcd16cab october 24 updates
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2024-10-12 20:19:19 +02:00
fbbb369d2b added static files
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2024-09-01 15:17:00 +02:00
df881e7396 updated structure
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2024-09-01 14:28:35 +02:00
bf844e7371 updated navbar
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2024-07-29 21:46:09 +02:00
4ea89a3899 updated menu links
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2024-06-27 09:16:59 +02:00
d24753ddf7 some error fixes
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2024-04-28 17:48:24 +02:00
2c68009a0b updated website theme
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2023-12-16 00:45:47 +01:00
cbd1c10fff updated website theme
All checks were successful
continuous-integration/drone/push Build is passing
2023-12-16 00:45:03 +01:00
94a9c22cea updated website
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2023-12-15 22:26:47 +01:00
07e032c1e8 small fixes on website
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2023-09-14 16:26:17 +02:00
cd66212131 small fixes on website
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2023-09-14 16:05:41 +02:00
a9b0f33d9a updated website
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2023-07-21 23:30:17 +02:00
cdc4da40e4 updated style on website
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2022-08-08 21:00:45 +02:00
33eef02907 added new article 2022-08-06
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2022-08-06 15:06:23 +02:00
771e3734f5 added new article 2020-06-21
All checks were successful
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is passing
2020-06-21 22:04:25 +02:00
26f1f90c1d cleaned website stylesheets, reactivated ip address ws on artible pages
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2020-06-06 02:32:29 +02:00
ca3719a6e5 updated dipjson management
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2020-05-03 13:00:08 +02:00
61 changed files with 1011 additions and 698 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
*.swp
*.lock
/public
/ressources

View File

@ -1,2 +0,0 @@
all:
hugo

View File

@ -1,4 +1,4 @@
baseurl = "//www.paulbsd.com/"
baseurl = "https://www.paulbsd.com"
languageCode = "en-gb"
title = "PaulBSD website"
googleAnalytics = ""
@ -10,7 +10,7 @@ theme = 'hugo-theme-wave'
[params]
location = "Europe/Paris"
site_description = ""
site_description = "PaulBSD.com infrastructure news, code, fun, open-source and beers"
copyright = "[Hugo](//gohugo.io) powered. Theme by [wave](https://gitlab.com/syui/hugo-theme-wave)."
date_format = "2006-01-02"
dateformat = "2006-01-02"

View File

@ -8,4 +8,6 @@ title = "Welcome"
## Overview
Welcome to PaulBSD.com, website that will show some open-source applications articles
Welcome to PaulBSD.com
It's a website talking about some open-source applications articles, infrastructure, tools, and more ...

View File

@ -6,7 +6,6 @@ tags = ["paulbsd","services","web"]
title = "PaulBSD Web Services"
+++
# PaulBSD Web Services
PaulBSD.com provides many services like :

View File

@ -6,7 +6,6 @@ tags = ["paulbsd","netbsd","legacy"]
title = "NetBSD 9.0 update"
+++
# NetBSD 9.0 update
As the new major release of NetBSD being rolled, PaulBSD upgraded legacy production in Normandy to NetBSD 9.0 which provides new fun features as below :

View File

@ -0,0 +1,42 @@
+++
categories = ["Services", "Proxmox", "Scaleway", "SaltStack"]
date = "2020-06-21"
menu = ""
tags = ["paulbsd", "services", "proxmox", "scaleway", "saltstack"]
title = "PaulBSD migration from Scaleway to Proxmox"
+++
# PaulBSD migration from Scaleway to Proxmox
As announced by Scaleway on April 16th, ARM instances will EOL on end 2020.
PaulBSD infrastructure is based on one ARM64-8GB instance since 1 year with focus to migrate all in house applications.
So it was decided to migrate to Proxmox solution at home.
For reaching this goal, a new Intel NUC7i5BNH has been checked out on April.
Some of it specs below :
- Intel Core i5-7260U @ 2.2GHz CPU
- 8GB DDR4 RAM
- 500GB NVME storage
Proxmox 6.2 was installed using LVM-thin volumes, and instances using LXC technology.
To have a ready instance with many services installed and configured, an heavy work on some SaltStack-based states was done.
In fact, a new instance can be ready in few minutes:
- 5 seconds to provision
- 5 minutes to install and configured all applications and services
This week, PaulBSD infrastructure SaltStack states have been published and released under BSD Licence on [https://git.paulbsd.com/paulbsd/paulbsd-salt](https://git.paulbsd.com/paulbsd/paulbsd-salt)
Many data need to migrate like:
- Nextcloud data
- Mails
- SQL and time-series databases
For network, Free FTTH is working on site to provide internet connectivity with one IPv4 public address and a full IPv6 stack to have direct transfers between all machines on many sites.
Migration will occur on summer 2020
Made with fun !

View File

@ -0,0 +1,67 @@
+++
categories = ["Services", "Proxmox", "SaltStack", "Platform"]
date = "2022-08-06"
menu = ""
tags = ["paulbsd", "services", "proxmox", "saltstack", "platform"]
title = "PaulBSD August '22 updates"
+++
# PaulBSD August '22 updates
After 2 years with no news, there was time to deliver some news and updates about PaulBSD platform and software.
## Infrastructure machines
Starting in late 2020, instances in Scaleway were migrated to the Contabo which is a german hosting service based in Nurnberg, DE for its primary site and in the US.
It delivers for PaulBSD a reliable instance (now 2 years without any downtime) for a relatively low price:
- 6 CPU threads
- 16GB RAM
- 400GB SSD backed storage
- 400Mbps unmetered bandwidth
For only 10,79 euros per mo
## New programming language
As of 2021, rust-lang software was written. As some projets that were made using this language we can list some of these:
- ipblc: a proactive defence system like fail2ban, with a clustered message queuing technique to live update nftables based firewalls blocklist across all client agents. It works with the Go written software ipbl (server part). See above for more details.
- zabbixlaunch: a tool used to have a monitoring dashboard on novation launchpad mini. It works on recent problems on zabbix using its API.
- some challenges on https://root-me.org and https://www.newbiecontest.org/
- and some internal software
Golang and Rust are privileged at PaulBSD as programming languages for internal software, keeping Python for SaltStack modules and small quick and dirty scripts.
## ipblc
As mentioned previously, ipblc is new security software designed to run in clustered mode with a server. Some of it's features are the following :
- Designed for high-performance and a very small CPU / memory footprint.
- inotify based logfiles changes detector
- Multi-threading (a thread is parsing files while, an another thread receives to data from the message queing channel, and the last thread communicates to the firewall running on the host)
- ZMQ Message queing for communication between (REQ/REP mode from client to server to send ip, PUB/SUB for broadcast ip blocking to all ipblc agents)
See https://git.paulbsd.com/paulbsd/ipblc for more information and source code. As always for public sources from PaulBSD, the source code is under two-clause BSD License.
## Continuous evolution
Public scope:
- https://git.paulbsd.com/paulbsd/paulbsd-salt: A plenty of SaltStack states for internal use.
- https://grafana.paulbsd.com: new public dashboard like ip-abuses (based on ipbl/ipblc IP collectors), with the legacy coronafana and fuel prices
- https://paste.paulbsd.com: a pastebin-like service for sharing data between users, docker based instance, deployed using saltstack.
Internal scope:
- A docker registry as been added on a new docker host has been provisioned in PaulBSD datacenter in Caen
- A caching proxy for APT software has been installed and is used / replicated across PaulBSD regions. It's designed to keep deb packages on a local machines for each PaulBSD sites, and limit external bandwidth for already downloaded packages
## Future
Some of these aspects will be the next focus for PaulBSD
- More clusterisable components of the platform, such use of clustered database systems with PostgreSQL and MariaDB, website, applications, etc.
- New software with centralised and network available configurations, with distributed aspect inside. Maybe more on etcd and related software.
- A management panel for many components, with HTML5 / vanilla JS for frontend and a Go or Rust written backend API service.
- Maybe a peertube based video service soon
Made with fun, again !

View File

@ -0,0 +1,38 @@
+++
categories = ["Services", "Fun", "SaltStack", "Platform", "FOSDEM"]
date = "2023-12-15"
menu = ""
tags = ["paulbsd", "services", "fun", "saltstack", "platform", "fosdem2024"]
title = "PaulBSD December '23 updates"
+++
# PaulBSD December '23 updates (xmas)
Please apologies for the delay, few things to say with this post
# FOSDEM 2024
I'm going to Brussels on February to the FOSDEM, it's been a long time ago I'd want to be there to have fun and see something newer on open-source software / technologies / ham radio / hacking and some belgian beer !
It will be a pretty good time (I hope) to have talk to someone like me who enjoys new techs and going futher on them.
My last travel was Portsmouth & London, and the upcoming after Belgium would take place in Germany, Hamburg & Berlin or so ... to be continued
# ipbl / ipblc
ipblc has been turned to websocket protocol to replace the old zmq protocol beeing used.
Some stability improvements have been done in the multhreaded functional level of ipblc
# SaltStack
paulbsd-salt has been improved with automation on new techs as such:
* clickhouse: relational database for analitics, salt state provides automation on building cluster with some nodes
* vector: observability data, data transform. This software injest datafrom many source and sinks, with a powerful transformation language (VRL) and lua bindings. This tool is written in Rust and have very good performance in handling data (logs / sql results / insights)
* kopia: backup tool to replace already used borg with deduplication features / compression and data storage efficiency, written in golang
All automation in paulbsd-salt is free as in free beer and all improvements are welcome
# Christmas
I hope for you, your family and your friends to enjoy chrismas
It's a meeting time where no waste of time should'nt be done, so make it with pleasure !
Made with fun, again !

View File

@ -0,0 +1,43 @@
+++
categories = ["Services", "Fun", "Thailand", "FOSDEM"]
date = "2024-10-12"
menu = ""
tags = ["paulbsd", "fun", "services", "fosdem2025", "life", "edm"]
title = "PaulBSD October '24 updates"
+++
# PaulBSD October '24 updates
Here are some news about me and my platform
## Current plaform tools
ipbl / ipblc / k8s / dip / etc. -> business as usual
## DNS
I'm currently serving requests of domains I own using dnsdist / powerdns / gdnsd.
Those tools are awesome because powerful, pluggable and are coming with great out-of-the-box features.
# Life
## Thailand
I went to Thailand in August, it's the farest, greatest trip of my life. I'll certainly go back soon.
This country is just 😍, only the plane trip is aweful (around 11h without stop to 15h and more with stop)
## FOSDEM 2025
On the next year FOSDEM will occur on 1 & 2 February 2025, I will certainly go to Brussel 'One More Time' 😜 to see very interesting conferences, eat Belgian fries with Mayonnaise and drink some beer.
## Music
My vinyl flightcase is full (I have now a new one). I now have dozens of EPs and LPs.
I will have to buy a new turntable, my current one is a Reloop RP 2000 (cheap model, but really quality made from my point of view)
A mixer would be required there, I need to find one at some point.
Records I own are mostly French / European / American House, Deep and Disco, from '70 to nowadays, see @paulbsd89 on IG if you want to see them !
## NDK Festival
As of writing, NDK festival takes place in Caen (FR) and so many DJs are performing some EDM.
Don't be so drunk and take care

View File

@ -0,0 +1,8 @@
<html>
<head>
<title>Acknowledgments</title>
</head>
<body>
<h1>Why acknowledge ??</h1>
</body>
</html>

41
static/paulbsd.public.asc Normal file
View File

@ -0,0 +1,41 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
0Ul+jhKnjKXCdTqfJsGFbg==
=T4K0
-----END PGP PUBLIC KEY BLOCK----

8
static/policy.html Normal file
View File

@ -0,0 +1,8 @@
<html>
<head>
<title>Policy</title>
</head>
<body>
<h1>No policy so far, do whatever you want 😄</h1>
</body>
</html>

View File

@ -3,4 +3,3 @@ tags = []
categories = []
menu = ""
+++

File diff suppressed because one or more lines are too long

View File

@ -1,25 +0,0 @@
#!/bin/bash
d=content/post
if [ ! -d ../syui.gitlab.io-comment ];then
git clone https://github.com/mba-hack/syui.gitlab.io-comment.git ../syui.gitlab.io-comment
fi
if [ -d ../${d} ];then
mkdir -p ../syui.gitlab.io-comment/_posts
f=$(echo -e "`ls -A ../${d}`\n`ls -A ../syui.gitlab.io-comment/_posts`" | sort | uniq -u)
cd ../syui.gitlab.io-comment/_posts
if [ -n "$f" ];then
n=`echo "$f" | wc -l`
echo $n
for (( i=1;i<=$n;i++ ))
do
t=`echo "$f" | awk "NR==$i"`
echo $t
touch $t
git add $t
git commit -m "update"
git push
done
fi
fi

View File

@ -1,8 +0,0 @@
#!/bin/zsh
#github=github.com/users/syui/contributions_calendar_data
f=${0:a:h:h}/static/json/datas.json
u=gitlab.com/u/$USER/calendar
t=`curl -sL $u|grep '{"'`
echo ${t%,}|jq .
echo ${t%,} >! $f

View File

@ -1,57 +0,0 @@
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script src="../static/js/jquery.xdomainajax.js"></script>
<script src="../static/bower_components/d3/d3.min.js" charset="utf-8"></script>
<script src="../static/bower_components/cal-heatmap/cal-heatmap.min.js"></script>
<link rel="stylesheet" href="../static/bower_components/cal-heatmap/cal-heatmap.css" />
<!--<script src="https://raw.githubusercontent.com/syui/jquery.fn/master/cross-domain-ajax/jquery.xdomainajax.js"></script>-->
<!--diff : https://github.com/syui/jquery.fn/blob/master/cross-domain-ajax/jquery.xdomainajax.js#L62 -->
<h3>Calendar Activities</h3>
<div id="cal-heatmap"></div>
<div id="example-heatmap"></div>
<script>
jQuery(function ($) {
var json;
$.ajax({
type: 'GET',
url: 'https://gitlab.com/u/syui/calendar',
dataType: 'html',
async: false,
cache: false,
success: function(data) {
var content = $(data.responseText).find('script').html();
var tmp = content.replace("<![CDATA[", "").replace("]]>", "");
var s = tmp.indexOf( "{" );
var e = tmp.indexOf( "}" );
json = tmp.substring( s, e+1 );
$('#gitlab-calendar-activities').text(json);
}
});
setTimeout( $('#example-heatmap').each(function () {
//setTimeout( function() {
if( json != null ){
var obj = $.parseJSON(json);
var now = new Date();
new CalHeatMap().init({
data: obj,
domain: 'month',
domainLabelFormat: '%Y-%m',
itemSelector: '#example-heatmap',
legend: [1, 3, 5, 7],
legendColors: {
min: "#efefef",
max: "steelblue",
empty: "#efefef"
},
tooltip: true,
start: new Date(now.getFullYear(), now.getMonth() - 9)
});
} else {
setTimeout( arguments.callee, 100 );
}
}));
});
</script>
<div id="gitlab-calendar-activities" style="display:none;"></div>

View File

@ -1,24 +0,0 @@
#!/bin/zsh
d=${0:a:h:h}
# backup
h=${0:a:h}
if cat $j|jq . ;then
cp $j $h
fi
h=$h/PagesIndex.json
j=$d/static/bower_components/lunr.js/PagesIndex.json
t=`cat $j |jq '.[]'|sed -e 's#/post##g'`
a=`cat $j | sed -e 's#/post##g'`
echo $a >! $j
t=`echo $t|jq -r '.href'|cut -d - -f 1-4`
for (( i=1;i<=`echo "$t"|wc -l`;i++ ))
do
f=`echo "$t"|awk "NR==$i"`
c=`echo $f|tr '-' '/'`
sed -i "" "s#${f}#${c}#g" $j
done
cat $j
diff $j $h

View File

@ -1,6 +1,5 @@
{{ partial "head" . }}
{{ partial "header" . }}
<div id="container">
<div class="outer">
{{ partial "profile" . }}
@ -10,12 +9,8 @@
<div class="article-entry" itemprop="articleBody">
<p>
<center>
<h1>
{{with .Site.Data.l10n.page_not_found.title}}{{.}}{{end}}
</h1>
<h3>
{{with .Site.Data.l10n.page_not_found.subtitle}}{{.}}{{end}}
</h3>
<h1>{{with .Site.Data.l10n.page_not_found.title}}{{.}}{{end}}</h1>
<h3>{{with .Site.Data.l10n.page_not_found.subtitle}}{{.}}{{end}}</h3>
</center>
</p>
</div>
@ -25,8 +20,6 @@
{{ partial "sidebar" . }}
</div>
</div>
{{ partial "footer" . }}
</body>
</html>

View File

@ -26,4 +26,5 @@
{{ partial "footer" . }}
</body>
</html>

View File

@ -10,4 +10,5 @@
{{ partial "footer" . }}
</body>
</html>

View File

@ -5,7 +5,8 @@
{{ if isset .Params "banner" }}
<a href="{{ .Permalink }}" class="thumbnail">
<span style="background-image:url({{ .Site.BaseURL }}{{ .Params.banner }})" alt="{{ .Title }}" class="thumbnail-image"></span>
<span style="background-image:url({{ .Site.BaseURL }}/{{ .Params.banner }})" alt="{{ .Title }}"
class="thumbnail-image"></span>
</a>
{{ else }}
<a href="{{ .Permalink }}" class="thumbnail">

View File

@ -6,7 +6,7 @@
<div id="cal-heatmap"></div>
<div id="example-heatmap"></div>
<script type="text/javascript">
<script>
var cal = new CalHeatMap();
cal.init({
itemSelector: "#example-heatmap",
@ -36,10 +36,6 @@ cal.init({
</div>
</div>
{{ partial "footer" . }}
</body>
</html>

View File

@ -13,6 +13,5 @@
</div>
</div>
{{ partial "footer" . }}
{{ partial "footer_js" . }}
</body>
</html>

View File

@ -1,13 +1,4 @@
<div class="article-inner-first">
<h2>
A simple, lightweight theme
</h2>
<p>
You've reached the website for <b>Arch Linux</b> user, I was in mobile-enabled.
</p>
<h2>A simple, lightweight theme</h2>
<p>You've reached the website for <b>Arch Linux</b> user, I was in mobile-enabled.</p>
</div>
<!--
<div class="rss-right"><a href="{{ .RelPermalink }}"><i class="fa fa-rss-square fa-lg"></i></a></div>
-->

View File

@ -1,13 +1,5 @@
<footer class="article-footer">
<!--
<a data-url="{{ .Permalink }}" data-id="{{ .File.UniqueID }}" class="article-share-link">
{{with .Site.Data.l10n.articles.share}}{{.}}{{end}}
</a>
-->
{{ if not (eq .Site.DisqusShortname "") }}
<a href="{{ .Permalink }}/#disqus_thread" class="article-comment-link">
{{with .Site.Data.l10n.articles.comments}}{{.}}{{end}}
</a>
{{ if not (eq .Site.Config.Services.Disqus.Shortname "") }}
<a href="{{ .Permalink }}/#disqus_thread" class="article-comment-link">{{ with .Site.Data.l10n.articles.comments }}{{ . }}{{ end }}</a>
{{end}}
</footer>

View File

@ -1,8 +1,5 @@
<header class="article-header">
<h1 class="article-title" itemprop="name">
<a href="{{ .Permalink }}" class="permalink">{{ .Title }}</a>
</h1>
<time datetime="{{ .Date }}" itemprop="datePublished">{{ .Date.Format "2006-01-02" }}</time>
<div class="article-meta">
</div>
<h1 class="article-title" itemprop="name"><a href="{{ .Permalink }}" class="permalink">{{ .Title }}</a></h1>
<time datetime="{{ .Date | htmlUnescape | safeHTML }}" itemprop="datePublished">{{ .Date.Format "2006-01-02" }}</time>
<div class="article-meta"></div>
</header>

View File

@ -9,31 +9,21 @@
-->
{{ range $paginator.Pages }}
<article class="article article-type-post" itemscope="" itemprop="blogPost">
<div class="article-inner">
{{ if and (isset .Params "banner") (not (eq .Params.banner "")) }}
<a href="{{ .Permalink }}" itemprop="url">
<img src="{{ .Site.BaseURL }}{{ .Params.banner }}" class="article-banner"> {{ end }}
<img src="{{ .Site.BaseURL }}/{{ .Params.banner }}" class="article-banner">
</a>
{{ end }}
{{ partial "article_header" . }}
<div class="article-entry" itemprop="articleBody">
<p>
{{ .Summary }} ...
</p>
<p>{{ .Summary }} ...</p>
<p class="article-more-link">
<a href="{{ .Permalink }}">
Read more
<!--
{{ with .Site.Data.l10n.articles.read_more }}{{ . }}{{ end }}
-->
</a>
</p>
</div>
<!--
{{ partial "article_footer" . }}
-->
</div>
</article>
{{ end }}

View File

@ -5,7 +5,10 @@
&copy; {{ now.Format "2006" }} <a href="https://git.paulbsd.com/paulbsd">paulbsd</a>. <br>
{{ with .Site.Params.copyright }}{{ . | markdownify }}{{ end }}
</footer>
<footer id="footer-right">Your IP address : <a id="dip">{{ "{{" }} dipjson.ip {{ "}}" }}/{{ "{{" }} dipjson.hostname {{ "}}" }}</a></footer>
<footer id="footer-right">Your IP address: <a id="dip" target="_blank" href=""></a></footer>
</div>
</div>
<script src="{{ .Site.BaseURL }}/js/main.js"></script>
<script src="{{ .Site.BaseURL }}/bower_components/jquery/dist/jquery.min.js"></script>
<script src="{{ .Site.BaseURL }}/bower_components/jquery.hotkeys/jquery.hotkeys.js"></script>
</footer>

View File

@ -1,27 +0,0 @@
{{ template "_internal/google_analytics.html" . }}
<script src="{{ .Site.BaseURL }}js/main.js">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.8.0/highlight.min.js">
</script>
<script>
hljs.initHighlightingOnLoad();
</script>
<!--
{{ "<!-- MathJax -->" | safeHTML }}
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {
inlineMath: [['$','$'], ['\\(','\\)']]}
});
</script>
<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
-->
<!--
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
-->
<script type="text/javascript" src="https://raw.githubusercontent.com/jeresig/jquery.hotkeys/master/jquery.hotkeys.js">
</script>

View File

@ -9,34 +9,28 @@
<meta name="description" content="{{ . }}">
{{ end }}
<script src="{{ .Site.BaseURL }}bower_components/jquery/dist/jquery.min.js"></script>
<script src="{{ .Site.BaseURL }}bower_components/bootstrap/js/bootstrap.min.js"></script>
<script src="{{ .Site.BaseURL }}bower_components/bootstrap/js/dropdowns-enhancement.js"></script>
<script src="{{ .Site.BaseURL }}bower_components/bluebird/js/browser/bluebird.js"></script>
<script src="{{ .Site.BaseURL }}bower_components/talaria/dist/talaria.js"></script>
<script src="{{ .Site.BaseURL }}bower_components/d3/d3.min.js"></script>
<script src="{{ .Site.BaseURL }}bower_components/cal-heatmap/cal-heatmap.min.js"></script>
<script src="{{ .Site.BaseURL }}bower_components/highlightjs/highlight.pack.min.js"></script>
<script src="{{ .Site.BaseURL }}bower_components/vue/vue.min.js"></script>
<script src="{{ .Site.BaseURL }}bower_components/axios/axios.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {
inlineMath: [['$','$'], ['\\(','\\)']]}
});
<script src="{{ .Site.BaseURL }}/bower_components/jquery/dist/jquery.min.js"></script>
<script src="{{ .Site.BaseURL }}/bower_components/bootstrap/js/bootstrap.min.js"></script>
<script src="{{ .Site.BaseURL }}/bower_components/bootstrap/js/dropdowns-enhancement.js"></script>
<script src="{{ .Site.BaseURL }}/bower_components/bluebird/js/browser/bluebird.js"></script>
<script src="{{ .Site.BaseURL }}/bower_components/talaria/dist/talaria.js"></script>
<script src="{{ .Site.BaseURL }}/bower_components/d3/d3.min.js"></script>
<script src="{{ .Site.BaseURL }}/bower_components/cal-heatmap/cal-heatmap.min.js"></script>
<script src="{{ .Site.BaseURL }}/bower_components/highlightjs/highlight.pack.min.js"></script>
<script>
hljs.initHighlightingOnLoad();
</script>
<link rel="icon" href="{{ .Site.BaseURL }}favicon.ico" />
<link rel="apple-touch-icon" href="{{ .Site.BaseURL }}apple-touch-icon.png" />
<link rel="stylesheet" href="{{ .Site.BaseURL }}bower_components/highlightjs/styles/monokai.css" />
<link rel="stylesheet" href="{{ .Site.BaseURL }}bower_components/bootstrap/css/bootstrap.min.css" />
<link rel="stylesheet" href="{{ .Site.BaseURL }}bower_components/bootstrap/css/dropdowns-enhancement.css" />
<link rel="stylesheet" href="{{ .Site.BaseURL }}bower_components/talaria/dist/talaria.css" />
<link rel="stylesheet" href="{{ .Site.BaseURL }}bower_components/createjs/createjs.css" />
<link rel="stylesheet" href="{{ .Site.BaseURL }}bower_components/font-awesome/css/font-awesome.min.css" />
<link rel="stylesheet" href="{{ .Site.BaseURL }}bower_components/icomoon/css/icomoon.css" />
<link rel="stylesheet" href="{{ .Site.BaseURL }}bower_components/cal-heatmap/cal-heatmap.css" />
<link rel="stylesheet" href="{{ .Site.BaseURL }}css/style.css" />
<link rel="stylesheet" href="{{ .Site.BaseURL }}css/mobile.css" />
<link rel="icon" href="{{ .Site.BaseURL }}/favicon.ico"/>
<link rel="apple-touch-icon" href="{{ .Site.BaseURL }}/apple-touch-icon.png"/>
<link rel="stylesheet" href="{{ .Site.BaseURL }}/bower_components/highlightjs/styles/monokai.css"/>
<link rel="stylesheet" href="{{ .Site.BaseURL }}/bower_components/bootstrap/css/bootstrap.min.css"/>
<link rel="stylesheet" href="{{ .Site.BaseURL }}/bower_components/bootstrap/css/dropdowns-enhancement.css"/>
<link rel="stylesheet" href="{{ .Site.BaseURL }}/bower_components/talaria/dist/talaria.css"/>
<link rel="stylesheet" href="{{ .Site.BaseURL }}/bower_components/createjs/createjs.css"/>
<link rel="stylesheet" href="{{ .Site.BaseURL }}/bower_components/font-awesome/css/font-awesome.min.css"/>
<link rel="stylesheet" href="{{ .Site.BaseURL }}/bower_components/icomoon/css/icomoon.css"/>
<link rel="stylesheet" href="{{ .Site.BaseURL }}/bower_components/cal-heatmap/cal-heatmap.css"/>
<link rel="stylesheet" href="{{ .Site.BaseURL }}/css/style.css"/>
<link rel="stylesheet" href="{{ .Site.BaseURL }}/css/mobile.css"/>
</head>

View File

@ -1,25 +1,17 @@
<header id="header">
<div id="header-main" class="header-inner">
<div class="outer">
<nav class="navbar navbar-default">
<div class="container-fluid">
{{ partial "title" . }}
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right">
{{ partial "navbar-menu" . }}
{{ partial "navbar-icon" . }}
<!--
{{ partial "navbar-search" . }}
-->
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</div>
</div>
</nav>
</div>
</div>
</header>

View File

@ -1,5 +1,5 @@
<div id="top-image">
<div id="top-image-wrap">
<iframe src="{{ .Site.BaseURL }}bower_components/particlesjs/particlesjs.html"></iframe>
<iframe src="{{ .Site.BaseURL }}/bower_components/particlesjs/particlesjs.html"></iframe>
</div>
</div>

View File

@ -1,20 +1,4 @@
<li>
<a href="https://git.paulbsd.com/paulbsd">
<i class="fa fa-git" aria-hidden="true"></i>
</a>
</li>
<li>
<a href="https://cloud.paulbsd.com/">
<i class="fa fa-cloud" aria-hidden="true"></i>
</a>
</li>
<li>
<a href="https://facebook.com/paul.lecuq">
<i class="fa fa-facebook" aria-hidden="true"></i>
</a>
</li>
<li>
<a href="https://twitter.com/paulbsd">
<i class="fa fa-twitter" aria-hidden="true"></i>
</a>
</li>
<li><a target="_blank" href="https://git.paulbsd.com/paulbsd"><i class="fa fa-git" aria-hidden="true"></i></a></li>
<li><a target="_blank" href="https://cloud.paulbsd.com/"><i class="fa fa-cloud" aria-hidden="true"></i></a></li>
<li><a target="_blank" href="https://facebook.com/paul.lecuq"><i class="fa fa-facebook" aria-hidden="true"></i></a></li>
<li><a target="_blank" href="https://twitter.com/paulbsd"><i class="fa fa-twitter" aria-hidden="true"></i></a></li>

View File

@ -1,14 +1,12 @@
<li><a href="/">Home</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
aria-expanded="false">PaulBSD Applications<span class="caret"></span></a>
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">PaulBSD Applications<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a target="_blank" rel="noopener noreferrer" href="https://mail.paulbsd.com">PMail</a></li>
<li role="separator" class="divider"></li>
<li><a target="_blank" rel="noopener noreferrer" href="https://grafana.paulbsd.com">PGraphs</a></li>
<li><a target="_blank" rel="noopener noreferrer" href="https://docs.paulbsd.com">PWS Docs</a></li>
<li><a target="_blank" rel="noopener noreferrer" href="https://qrz.paulbsd.com">PWS QRZ</a></li>
<li><a target="_blank" rel="noopener noreferrer" href="https://netbox.paulbsd.com">PIPAM</a></li>
<li><a target="_blank" rel="noopener noreferrer" href="https://ip.paulbsd.com">PaulBSD IP Service</a></li>
</ul>
</li>

View File

@ -1,7 +1,5 @@
<form class="navbar-form navbar-left" role="search" action="#" method="get">
<input type="hidden" value="syui.gitlab.io">
<div class="form-group">
<input type="text" class="form-control" placeholder="" name="q">
</div>
<div class="form-group"><input type="text" class="form-control" placeholder="" name="q"></div>
<button type="submit" class="btn btn-default"><i class="fa fa-search"></i></button>
</form>

View File

@ -1,14 +1,10 @@
<nav id="page-nav">
{{ if or (.Paginator.HasPrev) (.Paginator.HasNext) }}
{{ if .Paginator.HasPrev }}
<a class="extend prev" rel="prev" href="{{.Paginator.Prev.URL}}">
« {{with .Site.Data.l10n.pagination.previous}}{{.}}{{end}}
</a>
<a class="extend prev" rel="prev" href="{{.Paginator.Prev.URL}}">« {{with .Site.Data.l10n.pagination.previous}}{{.}}{{end}}</a>
{{ end }}
{{ if .Paginator.HasNext }}
<a class="extend next" rel="next" href="{{.Paginator.Next.URL}}">
{{with .Site.Data.l10n.pagination.next}}{{.}}{{end}} »
</a>
<a class="extend next" rel="next" href="{{.Paginator.Next.URL}}">{{with .Site.Data.l10n.pagination.next}}{{.}}{{end}} »</a>
{{ end }}
{{ end }}
</nav>

View File

@ -1,7 +1,7 @@
<aside id="profile">
<div class="inner profile-inner">
<div class="base-info profile-block">
<img id="avatar" src="{{ .Site.BaseURL }}css/images/avatar.png">
<img id="avatar" src="{{ .Site.BaseURL }}/css/images/avatar.png">
{{ with .Site.Params.author }}<h2 id="name">{{ . }}</h2>{{ end }}
{{ with .Site.Params.bio }}<h3 id="title">{{ . }}</h3>{{ end }}
{{ with .Site.Params.location }}<span id="location"><i class="fa fa-map-marker"></i>{{ . }}</span>{{ end }}
@ -13,7 +13,6 @@
</div>
<div class="article-info profile-block">
<div class="article-info-block">
{{ len (where .Site.RegularPages "Type" "post") }}
<span>{{ with .Site.Data.l10n.profile.posts }}{{ . }}{{ end }}</span>
</div>

View File

@ -2,20 +2,16 @@
<article>
<div class="article-inner">
{{ if and (isset .Params "banner") (not (eq .Params.banner "")) }}
<img src="{{ .Site.BaseURL }}{{ .Params.banner }}" class="article-banner">
<img src="{{ .Site.BaseURL }}/{{ .Params.banner }}" class="article-banner">
{{ end }}
{{ partial "article_header" . }}
<div class="article-entry" itemprop="articleBody">
{{ .Content }}
</div>
{{ partial "article_footer" . }}
</div>
</article>
<section id="comments">
<div id="disqus_thread">
{{ template "_internal/disqus.html" . }}
</div>

View File

@ -1,100 +1,75 @@
{{ with .Site.Social.github }}
<td><a href="//github.com/{{.}}" target="_blank" title="Github"><i class="fa fa-github"></i></a></td>
{{ with .Site.Params.Social.github }}
<td><a href="https://github.com/{{.}}" target="_blank" title="Github"><i class="fa fa-github"></i></a></td>
{{ end }}
{{ with .Site.Social.bitbucket }}
<td><a href="//bitbucket.com/{{.}}" target="_blank" title="Bitbucket"><i class="fa fa-bitbucket"></i></a></td>
{{ with .Site.Params.Social.bitbucket }}
<td><a href="https://bitbucket.com/{{.}}" target="_blank" title="Bitbucket"><i class="fa fa-bitbucket"></i></a></td>
{{ end }}
{{ with .Site.Social.jsfiddle }}
<td><a href="//jsfiddle.com/{{.}}" target="_blank" title="JSFiddle"><i class="fa fa-jsfiddle"></i></a></td>
{{ with .Site.Params.Social.jsfiddle }}
<td><a href="https://jsfiddle.com/{{.}}" target="_blank" title="JSFiddle"><i class="fa fa-jsfiddle"></i></a></td>
{{ end }}
{{ with .Site.Social.codepen }}
<td><a href="//codepen.io/{{.}}" target="_blank" title="Codepen"><i class="fa fa-codepen"></i></a></td>
{{ with .Site.Params.Social.codepen }}
<td><a href="https://codepen.io/{{.}}" target="_blank" title="Codepen"><i class="fa fa-codepen"></i></a></td>
{{ end }}
{{ with .Site.Social.foursquare }}
<td><a href="//foursquare.com/{{.}}" target="_blank" title="Foursquare"><i class="fa fa-foursquare"></i></a></td>
{{ with .Site.Params.Social.foursquare }}
<td><a href="https://foursquare.com/{{.}}" target="_blank" title="Foursquare"><i class="fa fa-foursquare"></i></a></td>
{{ end }}
{{ with .Site.Social.dribbble }}
<td><a href="//dribbble.com/{{.}}" target="_blank" title="Dribbble"><i class="fa fa-dribbble"></i></a></td>
{{ with .Site.Params.Social.dribbble }}
<td><a href="https://dribbble.com/{{.}}" target="_blank" title="Dribbble"><i class="fa fa-dribbble"></i></a></td>
{{ end }}
{{ with .Site.Social.deviantart }}
<td><a href="//{{.}}.deviantart.com/" target="_blank" title="Deviantart"><i class="fa fa-deviantart"></i></a></td>
{{ with .Site.Params.Social.deviantart }}
<td><a href="https://{{.}}.deviantart.com/" target="_blank" title="Deviantart"><i class="fa fa-deviantart"></i></a></td>
{{ end }}
{{ with .Site.Social.behance }}
<td><a href="//behance.net/{{.}}" target="_blank" title="Behance"><i class="fa fa-behance"></i></a></td>
{{ with .Site.Params.Social.behance }}
<td><a href="https://behance.net/{{.}}" target="_blank" title="Behance"><i class="fa fa-behance"></i></a></td>
{{ end }}
{{ with .Site.Social.flickr }}
<td><a href="//flickr.com/photos/{{.}}" target="_blank" title="Flickr"><i class="fa fa-flickr"></i></a></td>
{{ with .Site.Params.Social.flickr }}
<td><a href="https://flickr.com/photos/{{.}}" target="_blank" title="Flickr"><i class="fa fa-flickr"></i></a></td>
{{ end }}
{{ with .Site.Social.instagram }}
<td><a href="//instagram.com/{{.}}" target="_blank" title="Instagram"><i class="fa fa-instagram"></i></a></td>
{{ with .Site.Params.Social.instagram }}
<td><a href="https://instagram.com/{{.}}" target="_blank" title="Instagram"><i class="fa fa-instagram"></i></a></td>
{{ end }}
{{ with .Site.Social.youtube }}
<td><a href="//youtube.com/{{.}}" target="_blank" title="Youtube"><i class="fa fa-youtube"></i></a></td>
{{ with .Site.Params.Social.youtube }}
<td><a href="https://youtube.com/{{.}}" target="_blank" title="Youtube"><i class="fa fa-youtube"></i></a></td>
{{ end }}
{{ with .Site.Social.vimeo }}
<td><a href="//vimeo.com/{{.}}" target="_blank" title="Vimeo"><i class="fa fa-vimeo"></i></a></td>
{{ with .Site.Params.Social.vimeo }}
<td><a href="https://vimeo.com/{{.}}" target="_blank" title="Vimeo"><i class="fa fa-vimeo"></i></a></td>
{{ end }}
{{ with .Site.Social.vine }}
<td><a href="//vine.co/{{.}}" target="_blank" title="Vine"><i class="fa fa-vine"></i></a></td>
{{ with .Site.Params.Social.vine }}
<td><a href="https://vine.co/{{.}}" target="_blank" title="Vine"><i class="fa fa-vine"></i></a></td>
{{ end }}
{{ with .Site.Social.medium}}
<td><a href="//medium.com/@{{.}}" target="_blank" title="Medium"><i class="fa fa-medium"></i></a></td>
{{ with .Site.Params.Social.medium}}
<td><a href="https://medium.com/@{{.}}" target="_blank" title="Medium"><i class="fa fa-medium"></i></a></td>
{{ end }}
{{ with .Site.Social.wordpress }}
<td><a href="//{{.}}.wordpress.com" target="_blank" title="Wordpress"><i class="fa fa-wordpress"></i></a></td>
{{ with .Site.Params.Social.wordpress }}
<td><a href="https://{{.}}.wordpress.com" target="_blank" title="Wordpress"><i class="fa fa-wordpress"></i></a></td>
{{ end }}
{{ with .Site.Social.tumblr }}
<td><a href="//{{.}}.tumblr.com" target="_blank" title="Tumblr"><i class="fa fa-tumblr"></i></a></td>
{{ with .Site.Params.Social.tumblr }}
<td><a href="https://{{.}}.tumblr.com" target="_blank" title="Tumblr"><i class="fa fa-tumblr"></i></a></td>
{{ end }}
{{ with .Site.Social.xing }}
<td><a href="//xing.com/profile/{{.}}" target="_blank" title="Xing"><i class="fa fa-xing"></i></a></td>
{{ with .Site.Params.Social.xing }}
<td><a href="https://xing.com/profile/{{.}}" target="_blank" title="Xing"><i class="fa fa-xing"></i></a></td>
{{ end }}
{{ with .Site.Social.linkedin }}
<td><a href="//linkedin.com/in/{{.}}" target="_blank" title="Linkedin"><i class="fa fa-linkedin"></i></a></td>
{{ with .Site.Params.Social.linkedin }}
<td><a href="https://linkedin.com/in/{{.}}" target="_blank" title="Linkedin"><i class="fa fa-linkedin"></i></a></td>
{{ end }}
{{ with .Site.Social.slideshare }}
<td><a href="//slideshare.com/{{.}}" target="_blank" title="Slideshare"><i class="fa fa-slideshare"></i></a></td>
{{ with .Site.Params.Social.slideshare }}
<td><a href="https://slideshare.com/{{.}}" target="_blank" title="Slideshare"><i class="fa fa-slideshare"></i></a></td>
{{ end }}
{{ with .Site.Social.stackoverflow }}
<td><a href="//stackoverflow.com/users/{{.}}" target="_blank" title="Stackoverflow"><i
class="fa fa-stackoverflow"></i></a></td>
{{ with .Site.Params.Social.stackoverflow }}
<td><a href="https://stackoverflow.com/users/{{.}}" target="_blank" title="Stackoverflow"><i class="fa fa-stackoverflow"></i></a></td>
{{ end }}
{{ with .Site.Social.reddit }}
<td><a href="//reddit.com/user/{{.}}" target="_blank" title="Reddit"><i class="fa fa-reddit"></i></a></td>
{{ with .Site.Params.Social.reddit }}
<td><a href="https://reddit.com/user/{{.}}" target="_blank" title="Reddit"><i class="fa fa-reddit"></i></a></td>
{{ end }}
{{ with .Site.Social.pinterest }}
<td><a href="//pinterest.com/{{.}}" target="_blank" title="Pinterest"><i class="fa fa-pinterest"></i></a></td>
{{ with .Site.Params.Social.pinterest }}
<td><a href="https://pinterest.com/{{.}}" target="_blank" title="Pinterest"><i class="fa fa-pinterest"></i></a></td>
{{ end }}
{{ with .Site.Social.googleplus }}
<td><a href="//plus.google.com/+{{.}}" target="_blank" title="Google+"><i class="fa fa-googleplus"></i></a></td>
{{ with .Site.Params.Social.googleplus }}
<td><a href="https://plus.google.com/+{{.}}" target="_blank" title="Google+"><i class="fa fa-googleplus"></i></a></td>
{{ end }}
{{ with .Site.Social.facebook }}
<td><a href="//facebook.com/{{.}}" target="_blank" title="Facebook"><i class="fa fa-facebook"></i></a></td>
{{ with .Site.Params.Social.facebook }}
<td><a href="https://facebook.com/{{.}}" target="_blank" title="Facebook"><i class="fa fa-facebook"></i></a></td>
{{ end }}
{{ with .Site.Social.twitter }}
<td><a href="//twitter.com/{{.}}" target="_blank" title="Twitter"><i class="fa fa-twitter"></i></a></td>
{{ with .Site.Params.Social.twitter }}
<td><a href="https://twitter.com/{{.}}" target="_blank" title="Twitter"><i class="fa fa-twitter"></i></a></td>
{{ end }}

View File

@ -1,14 +1,9 @@
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<h1>
<a class="navbar-brand" href="{{ .Site.BaseURL }}">
<span id="title">PaulBSD</span>
</a>
</h1>
<h1><a class="navbar-brand" href="{{ .Site.BaseURL }}"><span id="title">PaulBSD</span></a></h1>
</div>

View File

@ -5,11 +5,8 @@
<ul class="category-list">
<h3 class="widget-title">Categories {{with .Site.Data.l10n.widgets.categories.title}}{{.}}{{end}}</h3>
{{ range $name, $items := .Site.Taxonomies.categories }}
<a class="category-list-link" href="{{ $.Site.BaseURL }}categories/{{ $name | urlize | lower }}">
<li class="category-list-item">
{{ $name }}
<span class="category-list-count">{{ len $items }}</span>
</li>
<a class="category-list-link" href="{{ $.Site.BaseURL }}/categories/{{ $name | urlize | lower }}">
<li class="category-list-item">{{ $name }}<span class="category-list-count">{{ len $items }}</span></li>
</a>
{{ end }}
</ul>

View File

@ -1,19 +1,10 @@
<div class="widget-wrap">
<div class="widget">
<h3 class="widget-title">
Docs
<!--{{with .Site.Data.l10n.widgets.documentation.title}}{{.}}{{end}} -->
</h3>
<h3 class="widget-title">Docs</h3>
<ul class="category-list">
<li class="category-list-item">
<a href="#">Wiki</a>
</li>
<li class="category-list-item">
<a href="#">Installation Guide</a>
</li>
<li class="category-list-item">
<a href="#">Beginners' Guide</a>
</li>
<li class="category-list-item"><a href="#">Wiki</a></li>
<li class="category-list-item"><a href="#">Installation Guide</a></li>
<li class="category-list-item"><a href="#">Beginners' Guide</a></li>
</ul>
</div>
</div>

View File

@ -15,8 +15,7 @@
</div>
<div class="btn-group">
<a href="https://gitlab.com/syui">
<button type="button" class="btn btn-default" aria-haspopup="true" aria-expanded="false"><i class="fa fa-gitlab"
aria-hidden="true"></i> GitLab</button>
<button type="button" class="btn btn-default" aria-haspopup="true" aria-expanded="false"><i class="fa fa-gitlab" aria-hidden="true"></i> GitLab</button>
</a>
</div>
</div>

View File

@ -1,15 +1,9 @@
{{ if .Site.Params.widgets.recent_articles }}
<div class="widget-wrap">
<div class="widget">
<ul id="recent-post">
<li id="first-recent"><a href="/index.xml" id="firstmove" class="move">
<h3 class="widget-title">
Posts
</h3>
</a></li>
<li id="first-recent"><a href="/index.xml" id="firstmove" class="move"><h3 class="widget-title">Posts</h3></a></li>
{{ range first 10 (where .Site.RegularPages "Type" "post") }}
<li><a href="{{ .Permalink }}" class="move"> {{ .Title }}</a></li>
{{ end }}
</ul>

View File

@ -1,7 +1,6 @@
<div class="widget-wrap">
<input id="search" type="text" placeholder="search">
<ul id="results">
</ul>
<script type="text/javascript" src="{{ .Site.BaseURL }}js/search.js"></script>
<script type="text/javascript" src="{{ .Site.BaseURL }}bower_components/lunr.js/lunr.min.js"></script>
<ul id="results"></ul>
<script src="{{ .Site.BaseURL }}/js/search.js"></script>
<script src="{{ .Site.BaseURL }}/bower_components/lunr.js/lunr.min.js"></script>
</div>

View File

@ -4,10 +4,8 @@
<ul class="category-list">
<h3 class="widget-title">Tags {{with .Site.Data.l10n.widgets.tag_cloud.title}}{{.}}{{end}} </h3>
<div class="widget tagcloud">
{{ range $name, $items := .Site.Taxonomies.tags }}
<a href="{{ $.Site.BaseURL }}tags/{{ $name | urlize | lower }}" style="font-size: 12px;">{{ $name }}</a>
<a href="{{ $.Site.BaseURL }}/tags/{{ $name | urlize | lower }}" style="font-size: 12px;">{{ $name }}</a>
{{ end }}
</div>
</ul>

View File

@ -8,9 +8,7 @@
<ul class="category-list">
{{ range $name, $items := .Site.Taxonomies.tags }}
<li class="category-list-item">
<a class="category-list-link" href="{{ $.Site.BaseURL }}tags/{{ $name | urlize | lower }}">
{{ $name }}
</a>
<a class="category-list-link" href="{{ $.Site.BaseURL }}/tags/{{ $name | urlize | lower }}">{{ $name }}</a>
<span class="category-list-count">{{ len $items }}</span>
</li>
{{ end }}

View File

@ -1,7 +1,6 @@
<div class="widget-wrap">
<div class="widget">
<h3 class="widget-title">Recent Updates</h3>
<table>
<tbody>
<tr>
@ -10,14 +9,12 @@
<a href="/packages/community/any/pep8/" title="Details for pep8 [community]">any</a>
</td>
</tr>
<tr>
<td class="pkg-name"><span class="community">python-keyring 7.2-1</span></td>
<td class="pkg-arch">
<a href="/packages/community/any/python-keyring/" title="Details for python-keyring [community]">any</a>
</td>
</tr>
<tr>
<td class="pkg-name"><span class="extra">rp-pppoe 3.12-1</span></td>
<td class="pkg-arch">
@ -25,7 +22,6 @@
href="/packages/extra/x86_64/rp-pppoe/" title="Details for rp-pppoe [extra]">x86_64</a>
</td>
</tr>
<tr>
<td class="pkg-name"><span class="extra">gsound 1.0.2-1</span></td>
<td class="pkg-arch">
@ -33,7 +29,6 @@
href="/packages/extra/x86_64/gsound/" title="Details for gsound [extra]">x86_64</a>
</td>
</tr>
<tr>
<td class="pkg-name"><span class="community">go-ipfs 0.3.11-1</span></td>
<td class="pkg-arch">
@ -41,21 +36,18 @@
href="/packages/community/x86_64/go-ipfs/" title="Details for go-ipfs [community]">x86_64</a>
</td>
</tr>
<tr>
<td class="pkg-name"><span class="community">mps-youtube 0.2.6-1</span></td>
<td class="pkg-arch">
<a href="/packages/community/any/mps-youtube/" title="Details for mps-youtube [community]">any</a>
</td>
</tr>
<tr>
<td class="pkg-name"><span class="community">python-sphinx 1.3.4-1</span></td>
<td class="pkg-arch">
<a href="/packages/community/any/python-sphinx/" title="Details for python-sphinx [community]">any</a>
</td>
</tr>
<tr>
<td class="pkg-name"><span class="community">gpsbabel 1.5.3-1</span></td>
<td class="pkg-arch">
@ -63,7 +55,6 @@
href="/packages/community/x86_64/gpsbabel/" title="Details for gpsbabel [community]">x86_64</a>
</td>
</tr>
<tr>
<td class="pkg-name"><span class="extra">marble 15.12.1-2</span></td>
<td class="pkg-arch">
@ -71,7 +62,6 @@
href="/packages/extra/x86_64/marble/" title="Details for marble [extra]">x86_64</a>
</td>
</tr>
<tr>
<td class="pkg-name"><span class="extra">kdepimlibs 15.12.1-1</span></td>
<td class="pkg-arch">
@ -79,7 +69,6 @@
href="/packages/extra/x86_64/kdepimlibs/" title="Details for kdepimlibs [extra]">x86_64</a>
</td>
</tr>
<tr>
<td class="pkg-name"><span class="extra">libkdcraw 15.12.1-1</span></td>
<td class="pkg-arch">
@ -87,7 +76,6 @@
href="/packages/extra/x86_64/libkdcraw/" title="Details for libkdcraw [extra]">x86_64</a>
</td>
</tr>
<tr>
<td class="pkg-name"><span class="extra">dolphin-plugins 15.12.1-1</span></td>
<td class="pkg-arch">
@ -95,7 +83,6 @@
href="/packages/extra/x86_64/dolphin-plugins/" title="Details for dolphin-plugins [extra]">x86_64</a>
</td>
</tr>
<tr>
<td class="pkg-name"><span class="extra">bomber 15.12.1-1</span></td>
<td class="pkg-arch">
@ -103,7 +90,6 @@
href="/packages/extra/x86_64/bomber/" title="Details for bomber [extra]">x86_64</a>
</td>
</tr>
<tr>
<td class="pkg-name"><span class="extra">kross-interpreters 15.12.1-1</span></td>
<td class="pkg-arch">
@ -113,7 +99,6 @@
title="Details for kross-interpreters [extra]">x86_64</a>
</td>
</tr>
<tr>
<td class="pkg-name"><span class="extra">kmplot 15.12.1-1</span></td>
<td class="pkg-arch">
@ -121,7 +106,6 @@
href="/packages/extra/x86_64/kmplot/" title="Details for kmplot [extra]">x86_64</a>
</td>
</tr>
</tbody>
</table>
</div>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -3,8 +3,8 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<script type="text/javascript" src="../createjs/createjs.js"></script>
<script type="text/javascript" src="particlesjs.js"></script>
<script src="../createjs/createjs.js"></script>
<script src="particlesjs.js"></script>
<link href="particlesjs.css" rel="stylesheet" type="text/css">
</head>
<body>

File diff suppressed because one or more lines are too long

View File

@ -1,34 +1,40 @@
@media screen and (min-width: 1300px) {
@media screen and (min-width: 900px) {
#footer-center {
left: 50% !important;
}
}
@media screen and (min-width: 1200px) {
@media screen and (min-width: 800px) {
#sidebar {
display: inline;
float: left;
float: right;
width: auto !important;
margin-left: 10px;
max-width: 400px;
}
#main {
display: inline;
float: left;
width: 60%;
margin: 0 0.7692307692308%;
}
#main-nav-mobile {
display: none;
}
#sub-nav {
display: none;
}
#profile {
display: block;
}
#article-nav {
margin: 40px 0;
}
#article-nav:before {
width: 8px;
height: 8px;
@ -40,15 +46,18 @@
border-radius: 50%;
background: #787c81;
}
.article-nav-link-wrap {
width: 50%;
margin-top: 0;
}
#article-nav-newer {
float: left;
text-align: right;
padding-right: 20px;
}
#article-nav-older {
float: right;
text-align: left;
@ -56,19 +65,23 @@
}
}
@media screen and (max-width: 1100px) {
@media screen and (max-width: 700px) {
#footer-right {
display: none;
}
#footer-left {
display: none;
}
#container>.outer {
width: auto;
}
#footer .outer {
width: auto;
}
.container-fluid {
width: auto;
padding-top: 7px;
@ -79,28 +92,30 @@
header .outer {
border-bottom: solid 0px #428bca;
}
#header a, #header a:visited {
#header a,
#header a:visited {
color: #fff;
position: relative;
margin-bottom: 4px;
}
}
@media screen and (min-width: 800px) and (max-width: 1199px) {
@media screen and (min-width: 500px) and (max-width: 899px) {
#sidebar {
display: inline;
float: left;
width: auto !important;
max-width: 200px;
}
#main {
display: inline;
float: left;
width: 67.6923076923077%;
margin: 0 0.7692307692308%;
}
#sidebar {
width: auto !important;
}
#main-nav-mobile {
display: none;
}
@ -113,9 +128,11 @@
font-size: 28px;
line-height: 54px;
}
#header-sub {
display: none;
}
#main-nav {
display: none;
}
@ -132,24 +149,30 @@
.widget-wrap {
margin: 40px 20px;
}
#toTop {
width: 54px;
height: 54px;
font-size: 28px;
line-height: 54px;
}
.outer {
padding: 0;
}
#header-sub {
display: none;
}
#main-nav {
display: none;
}
#main-nav-mobile .menu .search-form-input {
display: block;
}
.archive-year-wrap,
.archive-category-wrap,
.archive-tag-wrap,
@ -157,13 +180,16 @@
padding: 0 15px;
font-size: 1.2em;
}
.layout-wrap-inner {
padding: 0 15px;
}
.archive-article-thumbnail .thumbnail {
width: 120px;
height: 67.5px;
}
.archive-article-title {
font-size: 1em;
line-height: 1em;
@ -171,6 +197,7 @@
overflow: hidden;
display: block;
}
#page-nav .page-number {
display: none;
}

File diff suppressed because it is too large Load Diff

View File

@ -1,38 +1,18 @@
// dip service
var dip = new Vue({
el: '#dip',
data () {
return {
title: "Public IP Address Service",
dipjson: {"ip": null, "hostname": null, "city": null, "country": null},
autorefresh: false,
interval: null,
var dip;
function get_elements() {
dip = document.getElementById("dip");
}
},
mounted () {
this.updateIP();
this.runTimer();
},
methods: {
updateIP: function () {
axios.get("https://ip.paulbsd.com/json")
.then(response => {
this.dipjson = response.data;
})
.catch(err => {
// Manage the state of the application if the request
// has failed
function get_ip() {
let a = fetch("https://ip.paulbsd.com/json");
a.then((resp) => {
resp.json().then(js => {
dip.innerHTML = js["ip"];
dip.href = `https://ip.paulbsd.com/${js["ip"]}`;
});
});
},
runTimer: function () {
if (this.autorefresh) {
this.interval = setInterval(this.updateIP,10000);
}
}
}
}
);
get_elements();
get_ip();

View File

@ -8,7 +8,6 @@ function initLunr() {
$.getJSON("/bower_components/lunr.js/PagesIndex.json")
.done(function(index) {
pagesIndex = index;
console.log("index:", pagesIndex);
// Set up lunrjs by declaring the fields we use
// Also provide their boost level for the ranking