Compare commits
13 commits
Author | SHA1 | Date | |
---|---|---|---|
76d3af9793 | |||
25660362be | |||
3786d166a0 | |||
3b140ce4a0 | |||
13e166e862 | |||
2a91272b6f | |||
28091400cf | |||
ed23a4dc0c | |||
df6aba4c46 | |||
c84b20b4de | |||
26d3459ea0 | |||
af8d341f86 | |||
c9ef6473f9 |
330 changed files with 24439 additions and 1812 deletions
|
@ -4,20 +4,6 @@ on: push
|
|||
env:
|
||||
DEV_SHELL_NAME: CI
|
||||
jobs:
|
||||
Check config:
|
||||
runs-on: flakes-action
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
name: Checkout
|
||||
- name: Metadata
|
||||
run: |
|
||||
nix flake metadata
|
||||
- name: Statix
|
||||
run: |
|
||||
nix develop -c statix check
|
||||
- name: Flake check
|
||||
run: |
|
||||
nix flake check
|
||||
Publish:
|
||||
runs-on: flakes-action
|
||||
steps:
|
||||
|
@ -34,4 +20,22 @@ jobs:
|
|||
EOF
|
||||
chmod 400 ~/.ssh/id_ed25519
|
||||
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILqDeXcIQwLXxuueu9KTC6y6NPUUzDRdF4Q5NUk+nFwt upload@blog" > ~/.ssh/id_ed25519.pub
|
||||
nix develop -c rsync -avz -e 'ssh -o StrictHostKeyChecking=accept-new' public/ blog@blog.cyplo.net:/var/www/blog/
|
||||
nix develop -c rsync -avz -e 'ssh -o StrictHostKeyChecking=accept-new' public/ blog@blog.cyplo.net:/var/www/blog/
|
||||
- name: Check html
|
||||
run: |
|
||||
nix develop -c htmltest
|
||||
|
||||
Check config:
|
||||
runs-on: flakes-action
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
name: Checkout
|
||||
- name: Metadata
|
||||
run: |
|
||||
nix flake metadata
|
||||
- name: Statix
|
||||
run: |
|
||||
nix develop -c statix check
|
||||
- name: Flake check
|
||||
run: |
|
||||
nix flake check
|
||||
|
|
5
.gitignore
vendored
5
.gitignore
vendored
|
@ -1,7 +1,8 @@
|
|||
.direnv/
|
||||
public/
|
||||
tmp/
|
||||
resources/_gen/
|
||||
node_modules/
|
||||
/assets/jsconfig.json
|
||||
assets/jsconfig.json
|
||||
hugo_stats.json
|
||||
/.hugo_build.lock
|
||||
.hugo_build.lock
|
||||
|
|
4
.htmltest.yml
Normal file
4
.htmltest.yml
Normal file
|
@ -0,0 +1,4 @@
|
|||
DirectoryPath: public/
|
||||
IgnoreDirectoryMissingTrailingSlash: true
|
||||
IgnoreEmptyHref: true
|
||||
RedirectLimit: 32
|
6
archetypes/default.md
Normal file
6
archetypes/default.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
date: {{ .Date }}
|
||||
draft: true
|
||||
---
|
||||
|
29
config.toml
29
config.toml
|
@ -2,17 +2,7 @@ baseurl = "https://blog.cyplo.dev/"
|
|||
|
||||
languageCode = "en-gb"
|
||||
|
||||
theme = 'github.com/canstand/compost'
|
||||
|
||||
[build]
|
||||
_merge = 'deep'
|
||||
|
||||
[markup]
|
||||
_merge = 'deep'
|
||||
|
||||
[minify]
|
||||
_merge = 'deep'
|
||||
|
||||
theme = "beautifulhugo"
|
||||
paginate = 7
|
||||
|
||||
pygmentsUseClasses=true
|
||||
|
@ -24,23 +14,16 @@ title = "Adventurous Computing"
|
|||
series = "series"
|
||||
tags = "tags"
|
||||
|
||||
[params.homepage]
|
||||
showRecent = true
|
||||
|
||||
[params.article]
|
||||
showBreadcrumbs = true
|
||||
showEdit = true
|
||||
editURL = "https://git.cyplo.dev/cyplo/blog/src/branch/main/content"
|
||||
editAppendPath = true
|
||||
[[params.bigimg]]
|
||||
src = "images/header.jpg"
|
||||
position = "center top"
|
||||
|
||||
[params]
|
||||
homeTitle = "Adventurous Computing by Cyryl Płotnicki"
|
||||
keywords = "programming, testing, tdd, rust, golang"
|
||||
logo = "images/avatar.jpg"
|
||||
showRelatedPosts = true
|
||||
rss = true
|
||||
selfHosted = true
|
||||
colorScheme = "auto"
|
||||
|
||||
[[menu.main]]
|
||||
identifier = "about"
|
||||
|
@ -82,8 +65,4 @@ weight = 6
|
|||
name = "Cyryl Płotnicki"
|
||||
website = "https://blog.cyplo.dev/"
|
||||
email = "blog@cyplo.dev"
|
||||
github = "cyplo"
|
||||
gitlab = "cyplo"
|
||||
twitter = "cyplo"
|
||||
linkedin = "cyplo"
|
||||
mastodon = "peninsula.industries/@cyplo"
|
||||
|
|
|
@ -8,11 +8,6 @@ My name is Cyryl and I hope you're having a great day !
|
|||
|
||||
## Interesting random tidbits about me
|
||||
|
||||
I am [running](https://blog.cyplo.net/posts/2018/05/pair-with-me-on-rust.html) remote pairing sessions, helping people with Rust.
|
||||
My recent focus is [adding fuzzer](https://twitter.com/cyplo/status/1094606119421521922) infrastructure to their projects.
|
||||
|
||||
I started a [blog post series](https://blog.cyplo.net/series/rust-testing-tricks/) on testing in [Rust](https://blog.cyplo.net/categories/rust.html) where I share the tricks I've learned.
|
||||
|
||||
I was in both leadership and individual contributor roles, I have respect for all sides involved in the process.
|
||||
|
||||
I like testing, I taught various aspects of TDD in an apprenticeship course.
|
||||
|
@ -30,7 +25,7 @@ As all of the above is on the bleeding edge - I find, report and fix bugs throug
|
|||
|
||||
Helping client teams grow - working within software teams and teaching technical concepts as well as improving the process.
|
||||
Running workshops (e.g. Legacy Code Retreat, advanced git, **TDD**).
|
||||
Running **Rust** pairing sessions and intro to Rust workshops.
|
||||
// Running **Rust** pairing sessions and intro to Rust workshops.
|
||||
Facilitating open-space conferences.
|
||||
Teaching at the apprenticeship programme.
|
||||
|
||||
|
@ -85,7 +80,7 @@ The links provided are for the slide decks.
|
|||
- Mastering Git
|
||||
- Legacy Code Retreat - running a full-day workshop on test-driving changes in legacy code.
|
||||
- A secret to secure software (ssshhh it's TDD)
|
||||
- ["Conferences you did not know existed and now you know you just need to go to"](https://blog.cyplo.net/posts/2016/03/13/conferences.html)
|
||||
- ["Conferences you did not know existed and now you know you just need to go to"](/posts/2016/03/13/conferences/)
|
||||
- "Languages are communities" - impromptu talk about how communities are the most important thing when choosing your programming language.
|
||||
- ["Tor and what it's good for"](https://github.com/cyplo/talks/tree/master/tor_for_beginners)
|
||||
- ["Erlang for the .Net people"](https://github.com/erlang-wroclaw/erlang_tech_night) - introduction to Erlang with some live coding by me and my friend Fabian
|
||||
|
|
|
@ -3,8 +3,8 @@ title: "Projects"
|
|||
date: 2022-10-30
|
||||
---
|
||||
|
||||
- [legdur](https://sr.ht/~cyplo/legdur/) - legdur is a simple CLI program to compute hashes of large sets of files in large directory structures and compare them with a previous snapshot. Think having your photo collection you acquired over time and worrying about bitrot.
|
||||
- [genpass](https://sr.ht/~cyplo/genpass/) - A simple yet robust commandline random password generator written in Rust. Has an extensive generative test suite, including tests against a Rust port of Dropbox's password strength tester zxcvbn.
|
||||
- [netlify deployer](https://pypi.org/project/netlify-deployer/) - A Python CLI tool to deploy a website to Netlify using their incremental API client. Not the best code but works like a charm. This blog [uses](https://git.sr.ht/~cyplo/blog/tree/master/item/.build.yml#L21) it.
|
||||
- [my dotfiles](https://sr.ht/~cyplo/dotfiles/) - all of the settings for all of my machines, automated using Nix
|
||||
- [bakare](https://sr.ht/~cyplo/bakare/) - work in progress on writing a modern backup solution in Rust
|
||||
- [legdur](https://git.cyplo.dev/cyplo/legdur) - legdur is a simple CLI program to compute hashes of large sets of files in large directory structures and compare them with a previous snapshot. Think having your photo collection you acquired over time and worrying about bitrot.
|
||||
- [genpass](https://git.cyplo.dev/cyplo/genpass) - A simple yet robust commandline random password generator written in Rust. Has an extensive generative test suite, including tests against a Rust port of Dropbox's password strength tester zxcvbn.
|
||||
- [netlify deployer](https://pypi.org/project/netlify-deployer/) - A Python CLI tool to deploy a website to Netlify using their incremental API client. Not the best code but works like a charm.
|
||||
- [my dotfiles](https://git.cyplo.dev/cyplo/dotfiles) - all of the settings for all of my machines, automated using Nix
|
||||
- [bakare](https://git.cyplo.dev/cyplo/bakare) - work in progress on writing a modern backup solution in Rust
|
||||
|
|
|
@ -5,8 +5,10 @@ tags: [dotnet, ai, google, mono]
|
|||
category: artificial intelligence
|
||||
---
|
||||
|
||||
> Update 2023: things fall off the face of the internet after a while; removed dead links
|
||||
|
||||
It seems that being so much into other programming things I missed the
|
||||
[Google AI Contest](http://ai-contest.com/) announcement. It's
|
||||
[Google AI Contest]() announcement. It's
|
||||
supercool that they sponsor such challenges but also it's really uncool
|
||||
[so like warm ?] that apparently I won't have time to participate.
|
||||
|
||||
|
|
|
@ -7,11 +7,11 @@ category: games
|
|||
I have always been fascinated by works of Adrian Chmielarz, from the
|
||||
times of Metropolis Software on. Naturally then, I am following really
|
||||
closely on the development of
|
||||
[Bulletstorm](http://www.bulletstorm.com/). Damn, I even hoped to
|
||||
[Bulletstorm](https://www.bulletstorm.com/). Damn, I even hoped to
|
||||
talk to The Guy or Mieszko Zielinski at the
|
||||
[gameaiconf](http://gameaiconf.com/>) in Paris, but
|
||||
[Alex](http://aigamedev.com/) told me that "whoa,
|
||||
[PCF](http://www.peoplecanfly.com/) are so busy with the new IP that
|
||||
[gameaiconf]() in Paris, but
|
||||
[Alex]() told me that "whoa,
|
||||
[PCF](https://www.peoplecanfly.com/) are so busy with the new IP that
|
||||
they didn't have time to come this year, next year they'll be here,
|
||||
hopefully".
|
||||
|
||||
|
@ -23,7 +23,7 @@ that they take this game everywhere with them. To dinner, breakfast,
|
|||
party. That's the way I do like to work.
|
||||
|
||||
Now back on track, an interview which triggered this urge to flush my
|
||||
thoughts here. [Interview with Tanya Jessen](http://techland.com/2010/10/14/origins-tanya-jessen-lead-producer-on-bulletstorm/),
|
||||
thoughts here. [Interview with Tanya Jessen](https://techland.com/2010/10/14/origins-tanya-jessen-lead-producer-on-bulletstorm/),
|
||||
producer at Epic.
|
||||
|
||||
People make games so other people can have fun. How selfless.
|
||||
|
|
|
@ -11,7 +11,7 @@ these days. The question remains where to put them.
|
|||
|
||||
Previously I had my site published within one of the polish hosting
|
||||
companies for free, as my friend was involved in its operations. Thanks
|
||||
[Kajetan](http://www.kajetanwandowicz.com/) for 5 years of support !
|
||||
[Kajetan]() for 5 years of support !
|
||||
And maybe it'd stay that way if not of that desire of mine to tinker and
|
||||
have control of every aspect of the technology power. Some platform with
|
||||
ability to boot the system I want up would be appreciated.
|
||||
|
@ -40,7 +40,7 @@ their 'live' tech support line just to hear that it was really bad of me
|
|||
to change the resolv.conf and I just shouldn't do that. In the meanwhile
|
||||
their DNSes went back so I in fact did revert the resolv.conf after all.
|
||||
|
||||
It's [OpenVZ](http://wiki.openvz.org/Main_Page>)-based hosting, so
|
||||
It's [OpenVZ](https://wiki.openvz.org/Main_Page)-based hosting, so
|
||||
policy of "no-no's" is pretty much embedded in the very system. No
|
||||
kernel reinstallation. No swap space. No system clock write access. No
|
||||
clicking too fast in the administration panel. Back to google then my search for VPS
|
||||
|
|
|
@ -5,9 +5,11 @@ tags: [server, tilaa, ubuntu, virtualization, vps]
|
|||
category: server
|
||||
---
|
||||
|
||||
> Update 2023: the landscape has changed considerably over the last 13 years, a lot of the companies mentioned in this post have died, I've removed dead links
|
||||
|
||||
After some not so pleasurable experiences with the previous VPS hosting
|
||||
provider I started my search for some other one. This time not only
|
||||
google was involved but also [aardvark](http://vark.com/) and some of
|
||||
google was involved but also [aardvark]() and some of
|
||||
the "top XX best hosting providers" sites. Two results kept showing up.
|
||||
[server4you](http://www.server4you.com/) and
|
||||
[tilaa](https://www.tilaa.nl/). Which one to choose then ? I wanted
|
||||
|
@ -30,7 +32,7 @@ are some things I like or don't about its services.
|
|||
- friendly, responsive staff
|
||||
- 2x RAM amount of swap space - seems great compared to no swap on other VPSes
|
||||
- [KVM](http://www.linux-kvm.org/page/Main_Page)- and [qemu](http://en.wikipedia.org/wiki/QEMU)-based, you get full control of your system
|
||||
- good overall system responsiveness - I experienced occasional lags when using [OpenVZ](http://wiki.openvz.org/Main_Page) virtualization before, there's no such thing here
|
||||
- good overall system responsiveness - I experienced occasional lags when using [OpenVZ](https://wiki.openvz.org/Main_Page) virtualization before, there's no such thing here
|
||||
- they work fast - the day the new Ubuntu 10.10 was released, they had the VPS image ready !
|
||||
- their motto "We try to be good open source citizens" just convinces me
|
||||
- the only disadvantage is the price, it's 8.95 euro net montly, it's also easy to miss that info on the site
|
||||
|
|
|
@ -5,6 +5,8 @@ tags: [macosx, virtualbox]
|
|||
categories: [freedom, mac, server]
|
||||
---
|
||||
|
||||
> Updated 2023: sadly nawcom is no more, I've removed dead links
|
||||
|
||||
It all started with my work assignment of installing MacOSX Server 10.6
|
||||
on the XServe rack. Briefly speaking, after debugging some hardware problem
|
||||
with the CPU temperature meter, I managed to install the base OSX server
|
||||
|
@ -26,8 +28,8 @@ and launch was single-core. Both 32 and 64bit guests seem to be working
|
|||
fine. But what's the point of having many cores there if only one can be
|
||||
used per a VM ? Some time after that I found brilliant blog pair by
|
||||
[prasys](http://prasys.info/) and
|
||||
[nawcom](http://blog.nawcom.com/). It seems that the latter one
|
||||
produces what's called [ModCD](http://blog.nawcom.com/?p=446) which
|
||||
[nawcom](). It seems that the latter one
|
||||
produces what's called [ModCD]() which
|
||||
allows booting with the processor checks disabled. Recipe for amd64:
|
||||
|
||||
- create new MacOSX vm in VirtualBox
|
||||
|
|
|
@ -16,3 +16,4 @@ Two speakers per can !
|
|||
Photos taken after replacing the cable and before pots rejuvenation.
|
||||
Enjoy :)
|
||||
|
||||
{{< gallery dir="/galleries/disassembling-pioneer-se-50" />}}
|
||||
|
|
|
@ -11,7 +11,7 @@ aliases:
|
|||
Ever cried over damaged disk holding your bitcoin wallet ? Ever
|
||||
formatted storage holding a perfectly valid and the only copy of your
|
||||
wallet.dat ? Yes, me too. Well, there's
|
||||
[Photorec](http://www.cgsecurity.org/wiki/PhotoRec), an opensource file
|
||||
[Photorec](https://en.wikipedia.org/wiki/PhotoRec), an opensource file
|
||||
recovery software. It just skips the partition and filesystem info and
|
||||
scans for plain file signatures on the disk. Unfortunately it does not
|
||||
recognize Bitcoin's Wallet as a file format. Bitcoin wiki
|
||||
|
@ -33,7 +33,7 @@ detection magic. Let's see whether it works on the wallet.
|
|||
```
|
||||
|
||||
Uhoh. Do not abandon hope for not all is lost ! Photorec [provides a
|
||||
way](http://www.cgsecurity.org/wiki/Add_your_own_extension_to_PhotoRec)
|
||||
way
|
||||
for you to add custom signatures. The only missing ingredient appears to
|
||||
be the knowledge possed by the `file` command. Just check your linux installation for
|
||||
`file`'s detection signatures. On my system these are to be found
|
||||
|
|
|
@ -5,15 +5,15 @@ tags: [BCM43224, crunchbang, dell, linux]
|
|||
category: linux
|
||||
---
|
||||
|
||||
Update:
|
||||
**Please note that I no longer host this kernel as it is very old and also Crunchbang is no more.**
|
||||
> Update 2023: crunchbang is no longer a thing, replaced by [bunsenlabs](https://www.bunsenlabs.org/)
|
||||
> Please note that I no longer host this kernel as it is very old and also Crunchbang is no more.**
|
||||
|
||||
Some time ago I got my hands on [CrunchBang Linux](http://crunchbanglinux.org/) distro, which is great. The only thing there that could be better is that my Broadcom BCM43224 WiFi card is not working. But I'm used to it, as many
|
||||
Some time ago I got my hands on [CrunchBang Linux](https://en.wikipedia.org/wiki/CrunchBang_Linux) distro, which is great. The only thing there that could be better is that my Broadcom BCM43224 WiFi card is not working. But I'm used to it, as many
|
||||
Linux distros do not provide it. As I happen to
|
||||
know from my Fedora experiences that it is resolved in kernel version
|
||||
3.4 . Also as that kernel tends to be generally faster on my machine, I
|
||||
decided to compile just this one. Here you are. [Vanilla 3.4.4](http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.4.4.tar.bz2)
|
||||
kernel, [compiled](http://crunchbanglinux.org/forums/topic/18060/how-to-compile-the-kernel-from-source/)
|
||||
kernel, [compiled]()
|
||||
for Intel Atom and with BCM43224 support. This is a 64bit kernel.
|
||||
Download [crunchbanglinux-kernel-3.4.4-intel\_atom.tar.bz2]
|
||||
and:
|
||||
|
|
|
@ -5,3 +5,4 @@ tags: [CCC]
|
|||
category: freedom
|
||||
---
|
||||
|
||||
{{< gallery dir="galleries/29c3" />}}
|
||||
|
|
|
@ -6,7 +6,7 @@ category: talks
|
|||
---
|
||||
|
||||
I recently gave a two hours presentation on Erlang 101 along with
|
||||
[Fabian](http://fabiankrol.com/). Because of the generous support
|
||||
Fabian. Because of the generous support
|
||||
from Infusion I was able to speak at Institute of Computer Science at
|
||||
University of Wroclaw. The event was a blast, and that is an opinion of
|
||||
the people other than me also ;) Thanks for everyone who was there and
|
||||
|
|
|
@ -8,12 +8,16 @@ category: hardware
|
|||
It was December, 3D printing fever struck me. Here is the first day of
|
||||
me building ReprapPro Mendel printer.
|
||||
|
||||
{{< gallery dir="galleries/assembling-reprap/1" />}}
|
||||
|
||||
Second day of building. Fun fact: you can see the daylight come and go ;)
|
||||
|
||||
{{< gallery dir="galleries/assembling-reprap/2" />}}
|
||||
|
||||
Next few days - Featuring hotbed and plastic extruder !
|
||||
|
||||
{{< gallery dir="galleries/assembling-reprap/3" />}}
|
||||
|
||||
Yet another few days - Hot header installation, lots of wiring, tests and... it's alive !
|
||||
|
||||
{{< gallery dir="galleries/assembling-reprap/4" />}}
|
||||
|
|
|
@ -20,7 +20,7 @@ Disk /dev/sde: 500.1 GB, 500107862016 bytes
|
|||
```
|
||||
|
||||
First one is an SSD drive, I used it for OS
|
||||
installation. I went for [Crunchbang](http://crunchbang.org/) as I
|
||||
installation. I went for [Crunchbang](https://www.bunsenlabs.org/) as I
|
||||
was already familiar with it, however now I'm thinking of just getting
|
||||
newest Debian there, as it's finally released. Nothing fancy about the
|
||||
OS, a regular install really.
|
||||
|
|
|
@ -22,7 +22,7 @@ calibration for you. Game on you say ? Indeed.
|
|||
- 4x USB
|
||||
- HDMI
|
||||
- typing on its keyboard, just clicks with me
|
||||
- survived [OHM2013](https://ohm2013.org/site/) camp - not scared of
|
||||
- survived [OHM2013](https://ohm2013.org/) camp - not scared of
|
||||
humidity and hot air
|
||||
|
||||
## What I do not like so much:
|
||||
|
|
|
@ -5,13 +5,17 @@ tags: [cygwin, dotfiles, linux, mac, vim]
|
|||
category: open source
|
||||
---
|
||||
|
||||
> Update from 10 years into the future ! It's 2023 and the repo is still going strong, using lots of Nix and friends tho and also hosted elsewhere - edited the URLs.
|
||||
> All my dofiles live [here](https://git.cyplo.dev/cyplo/dotfiles/) now. Removed the links from the article below as they don't work anymore.
|
||||
|
||||
Hi ! Just letting you know that I've been working for some time on
|
||||
structuring my dotfiles and finally published them to
|
||||
[github](https://github.com/cyplo/dotfiles). These contain e.g. my
|
||||
[vimrc](https://github.com/cyplo/dotfiles/blob/master/.vimrc) and
|
||||
[font](https://github.com/cyplo/dotfiles/tree/master/.local/share/fonts)
|
||||
[configs](https://github.com/cyplo/dotfiles/tree/master/.config/fontconfig/conf.d).
|
||||
I've [patched](https://github.com/cyplo/vim-colors-solarized)
|
||||
structuring my dotfiles and finally ~~published them to
|
||||
[github]().~~ (No github anymore, selfhosting!)
|
||||
These contain e.g. my
|
||||
[vimrc]() and
|
||||
[font]()
|
||||
[configs]().
|
||||
I've [patched]()
|
||||
the famous [solarized](http://ethanschoonover.com/solarized) theme
|
||||
for vim to allow better
|
||||
[gitgutter](https://github.com/airblade/vim-gitgutter) symbols
|
||||
|
|
|
@ -14,3 +14,4 @@ talks along with general anti-buffer-overflow techniques. [Tor folks talking abo
|
|||
a day. Here are some photos, with no Congress people, except for me, in
|
||||
them, as the tradition goes.
|
||||
|
||||
{{< gallery dir="galleries/30c3" />}}
|
||||
|
|
|
@ -3,7 +3,7 @@ title: Sunpowered server setup
|
|||
date: 2014-02-16 21:13:46
|
||||
tags: [hardware, raspberry pi, sunpowered]
|
||||
bigimg: [{ src: "/galleries/sunpowered/IMG_0942.jpg" }]
|
||||
series: [sunpowered]
|
||||
series: sunpowered
|
||||
---
|
||||
|
||||
Remember my [NAS](/tags/nas) ? It
|
||||
|
@ -87,3 +87,4 @@ Future improvements:
|
|||
system power usage at least
|
||||
- more safety fuses and bypass diodes
|
||||
|
||||
{{< gallery dir="galleries/sunpowered" />}}
|
||||
|
|
|
@ -4,8 +4,10 @@ date: 2014-03-17 10:08:21
|
|||
tags: [pocorgtfo]
|
||||
---
|
||||
|
||||
> Update 2023: I no longer host PoCorGTFO here, it's very much available elsewhere on the internet and I couldn't afford the costs for this server sadly.
|
||||
|
||||
Hey – to all you curious folks – the new issue of PoC or GTFO is well,
|
||||
out ! The best minds in infosec on exploits and more. Lots of hardcore
|
||||
programming knowledge to obtain. For your convenience, as it’s not that
|
||||
easy to get this on the webs, I’ve took a liberty of uploading them
|
||||
[here](/pages/files)
|
||||
[here]()
|
|
@ -1,14 +1,14 @@
|
|||
---
|
||||
title: Adding voltage and current measurements to the sunpowered Pi
|
||||
date: 2014-04-21 14:39:13
|
||||
tags: [hardware, raspberry pi]
|
||||
tags: [hardware, raspberry pi, sunpowered]
|
||||
bigimg:
|
||||
[
|
||||
{
|
||||
src: "/images/adding-voltage-current-measurements-sunpowered-pi/voltages.png",
|
||||
},
|
||||
]
|
||||
series: [sunpowered]
|
||||
series: sunpowered
|
||||
---
|
||||
|
||||
Remember my [sunpowered Pi](/posts/2014/02/16/sunpowered-server-setup/)
|
||||
|
@ -65,3 +65,4 @@ realm of hobby projects:
|
|||
- clean up python stuff, add more unit tests there
|
||||
- write next post on the above ;)
|
||||
|
||||
{{< gallery dir="galleries/adding-voltage-current-measurements-sunpowered-pi/" />}}
|
||||
|
|
|
@ -11,3 +11,4 @@ did to allow filament spools to be mounted securely to a wall. It turns
|
|||
out that if you cut off the bent part the rod it fits perfectly into the
|
||||
spool's handle hole.
|
||||
|
||||
{{< gallery dir="galleries/filament-spool-wall" />}}
|
||||
|
|
|
@ -11,3 +11,4 @@ flipped on its back, motherboard attached to the back of what once was a
|
|||
lid. The whole thing is flying on standard monitor desk mount, using
|
||||
custom vesa-to-acrylic mounting system ;)
|
||||
|
||||
{{< gallery dir="galleries/standing-desk" />}}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
title: Tools - PCB holder
|
||||
date: 2015-03-28 18:33:53
|
||||
tags: [hardware, electronics]
|
||||
series: [tools]
|
||||
series: tools
|
||||
---
|
||||
|
||||
I thought it would be cool to share with you the tools I find
|
||||
|
@ -12,3 +12,4 @@ hand'-type of holders. The grip is very firm but won't scratch the
|
|||
surface nor short anything because the jaws are made from a soft
|
||||
plastic. And the whole thing **ROTATES** !
|
||||
|
||||
{{< gallery dir="galleries/tools-pcb-holder" />}}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
title: CNC router arrives
|
||||
date: 2015-04-26 13:17:05
|
||||
tags: [hardware, cnc]
|
||||
series: [cnc]
|
||||
series: cnc
|
||||
---
|
||||
|
||||
After 2 months of waiting - my CNC router arrives. 8 weeks lead time
|
||||
|
@ -32,3 +32,4 @@ of relying of the accurate timing of the PC. TODOs:
|
|||
- get a vacuum attachment for the spindle
|
||||
- move to LinuxCNC
|
||||
|
||||
{{< gallery dir="galleries/cnc-router-arrives" />}}
|
||||
|
|
|
@ -2,9 +2,12 @@
|
|||
title: Update on the sunpowered server
|
||||
date: 2015-05-02 14:54:05
|
||||
tags: [observability]
|
||||
series: [sunpowered]
|
||||
series: sunpowered
|
||||
---
|
||||
|
||||
> Update 2023: I no longer hosts those dashboards anymore and the server no longer runs in the form described.
|
||||
> You could argue I still run sunpowered servers, as my new house has solar PV ;)
|
||||
|
||||
Some, rather long, time ago I've added a [custom python](/posts/2014/04/21/adding-voltage-current-measurements-sunpowered-pi/)
|
||||
data acquisition and graphing to my sunpowered RaspberryPi installation
|
||||
on the balcony. Since then I've upgraded it to Raspi2 and ported the
|
||||
|
@ -23,7 +26,7 @@ compile the software there. I've [changed the original python scripts slightly](
|
|||
to upload the data to influxdb instead of graphing directly via
|
||||
matplotlib. Then configured grafana to display some cool graphs and that
|
||||
was pretty much it - you can see the result at
|
||||
[data.cyplo.net](http://data.cyplo.net/dashboard/db/sunpowered).
|
||||
[data.cyplo.net]().
|
||||
|
||||
Right now I'm testing 2 different sizes of solar panels and
|
||||
batteries, hooked at the same time. The ADC is connected as it was
|
||||
|
@ -31,3 +34,4 @@ before though, so a TODO is to add more measurements, to see how the
|
|||
individual panels' output change during the data and how does it affect
|
||||
each of the batteries.
|
||||
|
||||
{{< gallery dir="galleries/sunpowered-data" />}}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
---
|
||||
title: My CNC machining workflow
|
||||
date: 2015-05-28 19:01:33
|
||||
tags: []
|
||||
series: [cnc]
|
||||
tags: [cnc]
|
||||
series: cnc
|
||||
---
|
||||
|
||||
Hello ! Today we'll talk about driving CNC machines, toolpaths and
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
title: Tools - precision gauge holder
|
||||
date: 2015-10-17 13:46:36
|
||||
tags: [cnc, tools]
|
||||
series: [tools]
|
||||
series: tools
|
||||
---
|
||||
|
||||
This is the second part in the [series](/series/tools) on the tools I use. Tools that are
|
||||
|
@ -16,3 +16,4 @@ frame of your router using the power of magnets ! Sample item on Amazon
|
|||
Despite being attached to the frame by its back instead of the bottom it
|
||||
still holds beautifully.
|
||||
|
||||
{{< gallery dir="galleries/tools-indicator-holder" />}}
|
||||
|
|
|
@ -13,3 +13,4 @@ components because of that. The whole project is hosted
|
|||
[here](https://github.com/cyplo/sunpowered/tree/master/electronics) - it's
|
||||
open hardware so please do take a look.
|
||||
|
||||
{{< gallery dir="galleries/productive-new-years-eve" />}}
|
||||
|
|
|
@ -7,7 +7,7 @@ tags: [social, conferences]
|
|||
# Go to conferences. It's good for you.
|
||||
|
||||
Ever wondered why to go to conferences ? Is it worth it, especially if
|
||||
you [do not feel confident](http://sarah.thesharps.us/2016/02/02/first-timers-guide-to-foss-conferences/)
|
||||
you [do not feel confident](https://sage.thesharps.us/2016/02/02/first-timers-guide-to-foss-conferences/)
|
||||
that the conference is on something that would be in an immediate realm
|
||||
of your day-to-day interests ? Just go ! You might end up learning
|
||||
something and meeting new people. And new people mean more variables to
|
||||
|
@ -20,7 +20,7 @@ having another misfit ? Here you go.
|
|||
Now imagine something niche within the industry. To me, AI comes to
|
||||
mind. Mages in robes in their towers, sending out autonomous robot
|
||||
armies against each other. Right ? There's a conference for that ! At
|
||||
[nucl.ai](http://nucl.ai/), in July, in Vienna, you can meet AI
|
||||
[nucl.ai](), in July, in Vienna, you can meet AI
|
||||
professionals from academia and industry alike, most of them coming from
|
||||
game development background. The atmosphere is very newcomer-friendly,
|
||||
the only requirement is that you're interested in AI, not necessarily
|
||||
|
|
|
@ -9,3 +9,4 @@ You might learn something.
|
|||
Level 2 - push for things to be easily fixable.
|
||||
It's good for you. It's good for the planet.
|
||||
|
||||
{{< gallery dir="galleries/dont-throw-away-fix" />}}
|
||||
|
|
|
@ -127,6 +127,6 @@ Start the debugging session by pressing `F5` again - this should result in the b
|
|||
|
||||
## Questions ?
|
||||
|
||||
Any questions ? Ask on [https://users.rust-lang.org/](https://users.rust-lang.org/) and ping me the link to the post on [Twitter](https://twitter.com/cyplo) or email it to me at [blog@cyplo.net](mailto:blog@cyplo.net). This way the answer will be visible to everyone in the community.
|
||||
Any questions ? Ask on [https://users.rust-lang.org/](https://users.rust-lang.org/) and ping me the link via email to me at [blog@cyplo.net](mailto:blog@cyplo.net). This way the answer will be visible to everyone in the community.
|
||||
|
||||
Keep on Rusting !
|
||||
|
|
|
@ -15,7 +15,7 @@ We can work on any of the following:
|
|||
|
||||
- Any project of yours !
|
||||
- Contribute back to a larger open source project (I am a contributor to e.g. [cargo](https://github.com/rust-lang/cargo/), [rustc](https://github.com/rust-lang/rust/) and [rustup](https://github.com/rust-lang-nursery/rustup.rs/))
|
||||
- A project of mine - e.g. [genpass](https://github.com/cyplo/genpass)
|
||||
- A project of mine - e.g. [genpass](https://lib.rs/crates/genpass)
|
||||
|
||||
Ping me an [email](mailto:rust@cyplo.dev) to schedule a session - can be a remote one or in person somewhere in London.
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
title: Rust - controlling side effects from the test.
|
||||
date: 2018-07-30 00:00:00
|
||||
tags: [rust, testing, tdd]
|
||||
series: [rust-testing-tricks]
|
||||
series: rust-testing-tricks
|
||||
---
|
||||
|
||||
# Rust: controlling side effects from the test.
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
title: Testing tricks in Rust
|
||||
date: 2018-09-25 00:00:00
|
||||
tags: [rust, tdd, testing]
|
||||
series: [rust-testing-tricks]
|
||||
series: rust-testing-tricks
|
||||
---
|
||||
|
||||
# Use verbs as test module names
|
||||
|
@ -36,7 +36,7 @@ Cargo prints `worker::should::consume_message_from_queue` when running this test
|
|||
Use e.g. the `atomic` types family or `RefCell` itself to get an immutable handle to a internally mutable data.
|
||||
Useful when you don't want your production code to accept anything that can mutate but you still want to control that value from the test.
|
||||
|
||||
See injecting the system clock example in [my previous blog post](/posts/2018/07/rust-injection.html).
|
||||
See injecting the system clock example in [my previous blog post](/posts/2018/07/rust-injection/).
|
||||
|
||||
# Write the test first
|
||||
|
||||
|
@ -58,6 +58,6 @@ Rust allows for more cool tricks and generally writing less test code than menti
|
|||
# Let's talk !
|
||||
|
||||
Have any questions ? Would like to pair on Rust ? Curious about TDD ? Ping me !
|
||||
Email is good - [hello@cyplo.net](mailto:hello@cyplo.net) or try [Twitter](https://twitter.com/cyplo).
|
||||
Email is good - [hello@cyplo.net](mailto:hello@cyplo.net).
|
||||
|
||||
thanks !
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
title: Generate Rust tests from data files
|
||||
date: 2018-12-25
|
||||
tags: [rust, tdd, testing]
|
||||
series: [rust-testing-tricks]
|
||||
series: rust-testing-tricks
|
||||
---
|
||||
|
||||
Sometimes you just have a bunch of example data laying around and you want to make sure your code works with all of them.
|
||||
|
|
|
@ -10,7 +10,7 @@ I am fascinated by the concept of fuzzing. It fits well with my desire to test w
|
|||
|
||||
It's a type of automated testing, especially good with finding edge cases in your code. It runs totally outside of your code and knows nothing about it - it just throws random data at it. Modern fuzzers instrument your code to be able to tell if by changing input they change the code paths covered and by doing that they try to achieve maximum coverage. While this sounds like a very naive approach it can lead to finding incredibly interesting bugs. For that reason fuzzers are oftentimes used in the security community for finding vulnerabilities. Fuzzing is a type of a black box testing - but how you define that box is entirely up to you. It can be the whole program, it can be a single function. It just needs a clear entry point with ability to manipulate input data.
|
||||
|
||||
An example may be in order. We'll look into one provided by [Rust Fuzzing Authority](https://github.com/rust-fuzz) - people behind [cargo fuzz](https://fuzz.rs/book/cargo-fuzz.html) and [afl.rs](https://fuzz.rs/book/afl.html).
|
||||
An example may be in order. We'll look into one provided by [Rust Fuzzing Authority](https://github.com/rust-fuzz) - people behind [cargo fuzz](https://rust-fuzz.github.io/book/cargo-fuzz.html) and [afl.rs](https://rust-fuzz.github.io/book/afl.html).
|
||||
Imagine you're trying to see if you've handled all cases in your url parser. You can just do
|
||||
|
||||
```rust
|
||||
|
@ -40,7 +40,7 @@ When thinking about other types of tests that are driven by randomness and are g
|
|||
|
||||
## Want help with fuzzing your open source project ?
|
||||
|
||||
If you're not sure what fuzzing is, or you want help with adding fuzzer support to your open source project - just tell me ! Either by [email](mailto:fuzzing@cyplo.dev) or on [Twitter](https://twitter.com/cyplo). I'm happy to jump on a call, pair program or whatever you fancy ! I know the most about the Rust fuzzing space, but happy to help with other languages as well - this allows me to learn :)
|
||||
If you're not sure what fuzzing is, or you want help with adding fuzzer support to your open source project - just tell me ! [Email](mailto:fuzzing@cyplo.dev) works best ! I'm happy to jump on a call, pair program or whatever you fancy ! I know the most about the Rust fuzzing space, but happy to help with other languages as well - this allows me to learn :)
|
||||
|
||||
I also run a fuzzing server where I can test your project overnight and see if we find anything.
|
||||
|
||||
|
|
|
@ -1,17 +1,20 @@
|
|||
---
|
||||
title: My 2019 setup
|
||||
date: 2019-11-16
|
||||
series: [my-setup]
|
||||
series: my-setup
|
||||
tags: [tools]
|
||||
---
|
||||
|
||||
> Update 2023: my dotfiles are self-hosted now at [git.cyplo.dev](https://git.cyplo.dev/cyplo/dotfiles);
|
||||
> They also have a different structure than described here; I've removed now-dead links to github.
|
||||
|
||||
Here's a list of software and some hardware I find useful, either things that I use daily or things that make an unusual task pleasant instead of incredibly difficult.
|
||||
This is constantly evolving, so please mind the publish date of this post to gauge how dated it is. The best place to get most recent settings I currently use is my [dotfiles](https://github.com/cyplo/dotfiles) repository, especially the [nixos](https://github.com/cyplo/dotfiles/tree/master/nixos) configuration.
|
||||
This is constantly evolving, so please mind the publish date of this post to gauge how dated it is. The best place to get most recent settings I currently use is my [dotfiles]() repository, especially the [nixos]() configuration.
|
||||
|
||||
## Laptop and OS
|
||||
|
||||
My daily driver is [Thinkpad T480](https://www.thinkwiki.org/wiki/Category:T480#Lenovo_ThinkPad_T480) running [NixOS](https://nixos.org/). I like the hardware for its matte screen, nice keyboard and general sturdiness. It's also black and black is nice.
|
||||
The device-specific config lives [here](https://github.com/cyplo/dotfiles/blob/master/nixos/boxes/foureighty.nix).
|
||||
The device-specific config lives [here]().
|
||||
|
||||
I use [home manager](https://github.com/rycee/home-manager) to manage my dotfiles.
|
||||
I still haven't found a good way of having all this setup ported exactly to non-NixOS operating systems.
|
||||
|
@ -22,18 +25,18 @@ NixOS's ability to boot into a previous version of the whole system is another b
|
|||
|
||||
## Networking gear
|
||||
|
||||
I had a lot of problems with network speed over wifi previously, because of that I bought a Netgear [Nighthawk X4S R7800](https://www.netgear.co.uk/home/products/networking/wifi-routers/R7800.aspx) router and installed [OpenWRT](https://openwrt.org/) on it. After all this change, I am able to run very frequent multi-gigabyte backup transfers over wifi and everything works nicely.
|
||||
I had a lot of problems with network speed over wifi previously, because of that I bought a Netgear [Nighthawk X4S R7800](https://www.netgear.com/home/wifi/routers/r7800/) router and installed [OpenWRT](https://openwrt.org/) on it. After all this change, I am able to run very frequent multi-gigabyte backup transfers over wifi and everything works nicely.
|
||||
|
||||
## Graphical interface
|
||||
|
||||
I started running [i3](https://i3wm.org/) recently because of the strain Gnome3 was putting on my system, and I am liking it so far, mostly for the speed of navigation and little resource usage. There's [polybar](https://github.com/polybar/polybar) on top and not much else in terms of bells and whistles present.
|
||||
I use [autorandr](https://github.com/phillipberndt/autorandr) to keep track of different display devices on different machines - it will automatically set the best resolution for whatever the screen combination I am currently using. See [config](https://github.com/cyplo/dotfiles/blob/master/nixos/user-xsession.nix) for more details.
|
||||
I use [autorandr](https://github.com/phillipberndt/autorandr) to keep track of different display devices on different machines - it will automatically set the best resolution for whatever the screen combination I am currently using. See [config]() for more details.
|
||||
|
||||
[Firefox](https://www.mozilla.org/en-GB/firefox/new/) remains my browser of choice, I highly recommend you try it, it is so much faster now than it used to be. Make sure to switch the tracking protection on.
|
||||
|
||||
## Secrets management
|
||||
|
||||
I have a [veracrypt](https://www.veracrypt.fr/en/Home.html) encrypted container, where my secrets reside, with a small set of scripts to [mount](https://github.com/cyplo/dotfiles/blob/master/tools/mount-vault) and [unmount](https://github.com/cyplo/dotfiles/blob/master/tools/umount-vault) it. The container is synced between different machines using [syncthing](https://syncthing.net/).
|
||||
I have a [veracrypt](https://www.veracrypt.fr/en/Home.html) encrypted container, where my secrets reside, with a small set of scripts to [mount]() and [unmount]() it. The container is synced between different machines using [syncthing](https://syncthing.net/).
|
||||
Inside the container, among other things, there is a [password store](https://www.passwordstore.org/) directory, which I use from either command line or from Firefox, using [this plugin](https://github.com/passff/passff)
|
||||
|
||||
## Sync
|
||||
|
@ -61,14 +64,14 @@ I settled on [Fira Code Retina](https://github.com/tonsky/FiraCode) for most of
|
|||
## Terminal
|
||||
|
||||
I find [termite](https://github.com/thestinger/termite) quite fast, while supporting extended character and colour sets.
|
||||
My shell is [zsh](https://www.zsh.org/) with minimal [oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh) [config](https://github.com/cyplo/dotfiles/blob/master/nixos/programs/zsh.nix). I always run it inside a [tmux](https://github.com/tmux/tmux/wiki) session though, and no matter how many terminal windows I open, I am always greeted with the same state. All history and window state is shared between all terminal windows all tmux windows as well - it is always the same one tmux session. Because I am always running tmux, sometimes I end up in a situation when I ssh into some box and need to run tmux there - for that reason I have my main tmux session having different leader key than the default, this way I can choose which tmux session will receive my command - my machine or the one I'm connecting to. All of the above comes from a combination of [shell](https://github.com/cyplo/dotfiles/blob/master/nixos/programs/zsh.nix) and [tmux](https://github.com/cyplo/dotfiles/blob/master/nixos/programs/tmux.nix) settings.
|
||||
My shell is [zsh](https://www.zsh.org/) with minimal [oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh) [config](). I always run it inside a [tmux](https://github.com/tmux/tmux/wiki) session though, and no matter how many terminal windows I open, I am always greeted with the same state. All history and window state is shared between all terminal windows all tmux windows as well - it is always the same one tmux session. Because I am always running tmux, sometimes I end up in a situation when I ssh into some box and need to run tmux there - for that reason I have my main tmux session having different leader key than the default, this way I can choose which tmux session will receive my command - my machine or the one I'm connecting to. All of the above comes from a combination of [shell]() and [tmux]() settings.
|
||||
|
||||
Here's a small collection of other tools I found help a lot when on the terminal:
|
||||
|
||||
- [ripgrep](https://github.com/BurntSushi/ripgrep) - it is just so much faster than grep
|
||||
- [fd](https://github.com/sharkdp/fd) - same but for `find`
|
||||
- [bat](https://github.com/sharkdp/bat) - a cooler `cat`
|
||||
- [genpass](https://crates.io/crates/genpass) for generating passwords
|
||||
- [genpass](https://lib.rs/crates/genpass) for generating passwords
|
||||
- [z.lua](https://github.com/skywind3000/z.lua) for faster navigation
|
||||
|
||||
And that's it !
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
pairing sessions update
|
||||
|
||||
- using genpass
|
||||
- fuzzing
|
|
@ -1,17 +1,17 @@
|
|||
---
|
||||
title: Don't let failures spread over your suite with process-based tests isolation
|
||||
date: 2020-12-28
|
||||
series: [rust-testing-tricks]
|
||||
series: rust-testing-tricks
|
||||
tags: [rust, testing]
|
||||
---
|
||||
|
||||
Being able to precisely control what failures in underlying systems occur and at what time can be really useful in achieving a fast and stable test suite. While I am a big proponent of dependency inversion and being able to control dependencies via the explicit injection points in your API, sometimes it's impractical to do so. This is where [`fail`](https://crates.io/crates/fail) can help us immensely, providing an escape hatch for situations like those as it allows to inject failures into previously defined failure points.
|
||||
Being able to precisely control what failures in underlying systems occur and at what time can be really useful in achieving a fast and stable test suite. While I am a big proponent of dependency inversion and being able to control dependencies via the explicit injection points in your API, sometimes it's impractical to do so. This is where [`fail`](https://lib.rs/crates/fail) can help us immensely, providing an escape hatch for situations like those as it allows to inject failures into previously defined failure points.
|
||||
|
||||
It comes at a price though. If you would mix your other unit tests and tests activating fail points you will notice some unexpected failures in the test suite. As `cargo test` runs tests in parallel by default, the tests activating a fail point can interfere with another test that did not want that fail point active at all that is ran at the same time. The crate authors [recommend](https://docs.rs/fail/#usage-in-tests) running all of the tests using fail points in a separate executable and using `FailScenario` to serialise test execution.
|
||||
|
||||
There is another way, that I found simpler for the way I write tests, if you allow for yet another helper crate. We can run each test in a separate process, effectively isolating it from the rest, stopping failures from spreading.
|
||||
|
||||
Let's take a look at an example from [`bakare`](https://git.sr.ht/~cyplo/bakare) - my experiment in writing a backup system.
|
||||
Let's take a look at an example from [`bakare`](https://git.cyplo.dev/cyplo/bakare) - my experiment in writing a backup system.
|
||||
|
||||
`cargo.toml`
|
||||
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
---
|
||||
title: My 2020 setup
|
||||
date: 2020-12-29
|
||||
series: [my-setup]
|
||||
series: my-setup
|
||||
tags: [tools]
|
||||
---
|
||||
|
||||
> Update 2023 - updated links to the most current code store - git.cyplo.dev instead of sr.ht
|
||||
|
||||
Hello and welcome to the second edition of me doing a summary of the year of using tech tools.
|
||||
|
||||
Here's a list of software and some hardware I find useful, either things that I use daily or things that make an unusual task pleasant instead of incredibly difficult.
|
||||
|
@ -12,12 +14,12 @@ This is constantly evolving, so please mind the publish date of this post, pleas
|
|||
|
||||
## Laptop, OS and other work hardware
|
||||
|
||||
- [Thinkpad T480](https://www.thinkwiki.org/wiki/Category:T480#Lenovo_ThinkPad_T480), the device-specific config lives [here](https://git.sr.ht/~cyplo/dotfiles/tree/master/item/nixos/boxes/foureighty/default.nix).
|
||||
- [Thinkpad T480](https://www.thinkwiki.org/wiki/Category:T480#Lenovo_ThinkPad_T480), the device-specific config lives [here](https://git.cyplo.dev/cyplo/dotfiles/src/branch/main/nixos/boxes/foureighty/default.nix).
|
||||
- CalDigit TS3 Plus usb-c hub
|
||||
- Iiyama ProLite 27" 4K monitor
|
||||
- IKEA BEKANT motorised standing desk
|
||||
|
||||
No dramatic changes here since the [last year](https://blog.cyplo.dev/posts/2019/11/tools/), I'm still on [NixOS](https://nixos.org/) on the T480. Thinkpad got a RAM upgrade to 48GiB and is handling it well, despite it being above it stated memory limit. I've also managed to get my `home-manager` config [called](https://git.sr.ht/~cyplo/dotfiles/tree/83ddcc09dc68389b129d598722eca9e90a6dff33/item/nixos/boxes/foureighty/default.nix#L33) from the main system configuration, so now I just need to do `sudo nixos-rebuild switch --upgrade` once and it does my `home-manager` setup as well. This allowed me to split the config into modules a bit better.
|
||||
No dramatic changes here since the [last year](https://blog.cyplo.dev/posts/2019/11/tools/), I'm still on [NixOS](https://nixos.org/) on the T480. Thinkpad got a RAM upgrade to 48GiB and is handling it well, despite it being above it stated memory limit. I've also managed to get my `home-manager` config called from the main system configuration, so now I just need to do `sudo nixos-rebuild switch --upgrade` once and it does my `home-manager` setup as well. This allowed me to split the config into modules a bit better.
|
||||
|
||||
I'm really happy with the standing desk as it allows me to switch from sitting to standing and back very quickly.
|
||||
|
||||
|
@ -41,8 +43,8 @@ While I stopped having WiFi speed problems with the purchase of the Netgear R780
|
|||
|
||||
## Graphical interface
|
||||
|
||||
- [i3](https://git.sr.ht/~cyplo/dotfiles/tree/83ddcc09dc68389b129d598722eca9e90a6dff33/item/nixos/i3)
|
||||
- [grobi](https://git.sr.ht/~cyplo/dotfiles/tree/83ddcc09dc68389b129d598722eca9e90a6dff33/item/nixos/i3/grobi.nix)
|
||||
- [i3](https://git.cyplo.dev/cyplo/dotfiles/src/branch/main/nixos/i3)
|
||||
- [grobi](https://git.cyplo.dev/cyplo/dotfiles/src/branch/main/nixos/i3/grobi.nix)
|
||||
|
||||
Running `grobi` now instead of `autorandr` but otherwise the config seems to be stabilising.
|
||||
|
||||
|
@ -52,7 +54,7 @@ Running `grobi` now instead of `autorandr` but otherwise the config seems to be
|
|||
- [password store](https://www.passwordstore.org/) + [passff](https://github.com/passff/passff)
|
||||
- [bitwarden](https://bitwarden.com/)
|
||||
|
||||
I have a `veracrypt` encrypted container, where my secrets reside, with a small set of scripts to [mount](https://git.sr.ht/~cyplo/dotfiles/tree/83ddcc09dc68389b129d598722eca9e90a6dff33/item/tools/mount-vault) and [unmount](https://git.sr.ht/~cyplo/dotfiles/tree/83ddcc09dc68389b129d598722eca9e90a6dff33/item/tools/umount-vault) it. The container is synced between different machines using `syncthing`.
|
||||
I have a `veracrypt` encrypted container, where my secrets reside, with a small set of scripts to [mount](https://git.cyplo.dev/cyplo/dotfiles/src/branch/main/nixos/home-manager/scripts/mount-vault.nix) and [unmount](https://git.cyplo.dev/cyplo/dotfiles/src/branch/main/nixos/home-manager/scripts/umount-vault.nix) it. The container is synced between different machines using `syncthing`.
|
||||
Inside the container, among other things, there is a `password store` directory, which I use from either command line or from Firefox.
|
||||
|
||||
For when I need to share a secret I use `bitwarden` as it allows for that in a quite an easy way.
|
||||
|
@ -77,8 +79,8 @@ I made some progress on [bakare](https://github.com/cyplo/bakare), a small backu
|
|||
|
||||
## Editors
|
||||
|
||||
- vim [configured via nix](https://git.sr.ht/~cyplo/dotfiles/tree/83ddcc09dc68389b129d598722eca9e90a6dff33/item/nixos/home-manager/programs/vim.nix)
|
||||
- VSCode [also configured via nix](https://git.sr.ht/~cyplo/dotfiles/tree/83ddcc09dc68389b129d598722eca9e90a6dff33/item/nixos/gui/vscode.nix)
|
||||
- vim [configured via nix](https://git.cyplo.dev/cyplo/dotfiles/src/branch/main/nixos/vim)
|
||||
- VSCode [also configured via nix](https://git.cyplo.dev/cyplo/dotfiles/src/branch/main/nixos/gui/vscode.nix)
|
||||
|
||||
Not much of a change here.
|
||||
|
||||
|
@ -88,19 +90,19 @@ I settled on [Fira Code Retina](https://github.com/tonsky/FiraCode) for most of
|
|||
|
||||
## Terminal
|
||||
|
||||
- [kitty](https://sw.kovidgoyal.net/kitty/) and [my config](https://git.sr.ht/~cyplo/dotfiles/tree/83ddcc09dc68389b129d598722eca9e90a6dff33/item/nixos/home-manager/programs/kitty.nix) for it
|
||||
- [zsh](https://www.zsh.org/) + [config](https://git.sr.ht/~cyplo/dotfiles/tree/83ddcc09dc68389b129d598722eca9e90a6dff33/item/nixos/home-manager/programs/zsh.nix)
|
||||
- [tmux](https://github.com/tmux/tmux/wiki) + [config](https://git.sr.ht/~cyplo/dotfiles/tree/83ddcc09dc68389b129d598722eca9e90a6dff33/item/nixos/home-manager/programs/tmux.nix)
|
||||
- [kitty](https://sw.kovidgoyal.net/kitty/) and [my config](https://git.cyplo.dev/cyplo/dotfiles/src/branch/main/nixos/home-manager/programs/kitty.nix) for it
|
||||
- [zsh](https://www.zsh.org/) + [config](https://git.cyplo.dev/cyplo/dotfiles/src/branch/main/nixos/zsh)
|
||||
- [tmux](https://github.com/tmux/tmux/wiki) + [config](https://git.cyplo.dev/cyplo/dotfiles/src/branch/main/nixos/home-manager/programs/tmux.nix)
|
||||
|
||||
While I still like `termite` and `alacritty`, I have switched to `kitty` lately as it is still quite fast while providing for some fancy shenanigans like graphics in the terminal. I'm not fully happy with my setup yet, as, for example, kitty sometimes requires restart for the graphics feature to work.
|
||||
|
||||
Here's a small collection of other tools I found help a lot when on the terminal:
|
||||
|
||||
- [newsboat](https://newsboat.org/) - a new one on the list, I find it providing a cool and relaxing way of reading RSS in the terminal, see [here](https://git.sr.ht/~cyplo/dotfiles/tree/83ddcc09dc68389b129d598722eca9e90a6dff33/item/nixos/home-manager/programs/newsboat.nix) for my config, including my subscriptions list
|
||||
- [newsboat](https://newsboat.org/) - a new one on the list, I find it providing a cool and relaxing way of reading RSS in the terminal, see [here](https://git.cyplo.dev/cyplo/dotfiles/src/branch/main/nixos/home-manager/programs/newsboat.nix) for my config, including my subscriptions list
|
||||
- [ripgrep](https://github.com/BurntSushi/ripgrep) - it is just so much faster than grep
|
||||
- [fd](https://github.com/sharkdp/fd) - same but for `find`
|
||||
- [bat](https://github.com/sharkdp/bat) - a cooler `cat`
|
||||
- [genpass](https://crates.io/crates/genpass) for generating passwords
|
||||
- [genpass](https://lib.rs/crates/genpass) for generating passwords
|
||||
- [z.lua](https://github.com/skywind3000/z.lua) for faster navigation
|
||||
|
||||
### TODOs for 2021:
|
||||
|
|
|
@ -9,7 +9,7 @@ I have a collection of photos & documents that I really care about.
|
|||
I synch them between computers using syncthing and also run backups regularly.
|
||||
What I didn't have was a way to quickly detect bitrot.
|
||||
|
||||
Enter [legdur](https://crates.io/crates/legdur)
|
||||
Enter [legdur](https://git.cyplo.dev/cyplo/legdur)
|
||||
|
||||
`legdur` is a simple CLI program to compute hashes of large sets of files in large directory structures and compare them with a previous snapshot.
|
||||
Think having your photo collection you acquired over time and worrying about bitrot.
|
||||
|
@ -18,6 +18,11 @@ Think having your photo collection you acquired over time and worrying about bit
|
|||
|
||||
`cargo install legdur --force` should get you there on a system that has Rust installed already.
|
||||
|
||||
## Try it out without installation
|
||||
|
||||
If you have a nix-flakes enabled system:
|
||||
`nix run git+https://git.cyplo.dev/cyplo/legdur.git`
|
||||
|
||||
## Usage
|
||||
|
||||
`legdur path/to/a/directory/`
|
||||
|
@ -42,15 +47,12 @@ finished:
|
|||
## How it works
|
||||
|
||||
* it will compute a hash of each file present in the directory structure (it works recursively).
|
||||
* if previously computed `legdur.db` exists it will compare the current state of the world to the one represented by `legdur.db` and output any differences. Only files that changed or got deleted get printed out, additions are not.
|
||||
* if previously computed `legdur.db` exists it will compare the current state of the world to the one represented by `legdur.db` and output any differences. Only files that changed or got deleted get printed out, additions or file moves anywhere within the directory are not.
|
||||
* it will move the current `legdur.db` to `legdur.old` and write the new state of the world to a new `legdur.db`
|
||||
|
||||
|
||||
## Contact & contributions
|
||||
* Let me know if you'd like to hack on this by contacting me on `legdur@cyplo.dev` or via `cyplo@todon.nl` on Mastodon.
|
||||
* Discuss on [lobsters](https://lobste.rs/s/klljdd/legdur_keep_your_legacy_durable)
|
||||
* Let me know if you'd like to hack on this by contacting me on `legdur@cyplo.dev` or via `cyplo@peninsula.industries` on the Fediverse.
|
||||
|
||||
## Sources
|
||||
|
||||
`hg clone https://hg.sr.ht/~cyplo/legdur`
|
||||
|
||||
`git clone https://git.cyplo.dev/cyplo/legdur.git`
|
||||
|
|
12
content/posts/2023/08/selfhosting.md
Normal file
12
content/posts/2023/08/selfhosting.md
Normal file
|
@ -0,0 +1,12 @@
|
|||
---
|
||||
title: This blog is now self-hosted !
|
||||
date: 2023-08-19
|
||||
tags: [meta, selfhosting]
|
||||
---
|
||||
|
||||
This is just a quick info that this blog is now self-hosted by yours truly. I'm using a small server at [Mythic Beasts](https://www.mythic-beasts.com/).
|
||||
|
||||
I have a small [CI situation](https://git.cyplo.dev/cyplo/blog/actions) going on via (self-hosted) Gitea Actions, it `rsync`s the contents to the server. Good old `nginx` + `rsync` and that's it.
|
||||
|
||||
I took this as an opportunity to hook up [htmltest](https://github.com/wjdp/htmltest) and it highlighted that a lot of places I linked to no longer exist or have moved. I've [updated](https://git.cyplo.dev/cyplo/blog/commit/df6aba4c4687918f31593e70048c28cf92482b09) all 13 years worth of blog posts and I'm happy to report that there's no longer any dead link present !
|
||||
|
155
content/posts/2023/09/act-runner-image.md
Normal file
155
content/posts/2023/09/act-runner-image.md
Normal file
|
@ -0,0 +1,155 @@
|
|||
---
|
||||
title: Creating a base OCI image for Nix flake builds within Gitea/Forgejo
|
||||
date: 2023-09-18
|
||||
tags: [nix, nixos, ci, docker, oci]
|
||||
---
|
||||
|
||||
I've been moving more and more of my infrastructure to be self-hosted recently.
|
||||
Part of that involves setting up CI jobs for testing and publishing artifacts, mostly rust crates but also this very blog.
|
||||
|
||||
I really wanted to re-use my existing Nix flakes for those projects, this way I know my [local dev env](https://git.cyplo.dev/cyplo/blog/src/branch/main/flake.nix#L15) would be the same env then [used on CI](https://git.cyplo.dev/cyplo/blog/src/branch/main/.gitea/workflows/build.yaml#L14).
|
||||
|
||||
I am [self-hosting](https://git.cyplo.dev/explore/) a Gitea instance (will probably be migrating to Forgejo) and it uses a [CI system](https://docs.gitea.io/en-us/usage/usage/actions/overview/) built to resemble [Github actions](https://github.com/actions) - basically you run your jobs as containers and within those you can run arbitrary commands. You can also take advantage of the existing ecosystem of `actions`.
|
||||
|
||||
I wanted a base image that would have on one hand `nix` with `flakes` enabled but on the other hand would be compatible with running popular actions from other authors. This meant having `nix`, `git` but also `nodejs` available amongts other things. I couldn't find one that would have both, so I built one !
|
||||
|
||||
I'm building on top of the [definitions](https://github.com/nix-community/docker-nixpkgs/blob/master/images/nix-flakes/default.nix) from [docker-nixpkgs](https://github.com/nix-community/docker-nixpkgs) and just tweaking them to add the things needed for `actions` and also for the definition itself to be a flake, for an added flavour. This allows me to add multiple image definitions in the same repo and the build them independently when needed.
|
||||
|
||||
Here's the whole definition in all of its glory, defining 2 images - `hello` and `flakes-action` - the `hello` being a test image for testing the process itself and `flakes-action` is the one I'm using on CI currently.
|
||||
|
||||
```nix
|
||||
{
|
||||
description = "docker base images";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, flake-utils }:
|
||||
flake-utils.lib.eachDefaultSystem
|
||||
(system:
|
||||
let
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
pkgsStatic = pkgs.pkgsStatic;
|
||||
lib = pkgs.lib;
|
||||
|
||||
in
|
||||
{
|
||||
packages = {
|
||||
hello = pkgs.dockerTools.buildImage {
|
||||
name = "hello-docker";
|
||||
config = {
|
||||
Cmd = [ "${pkgs.hello}/bin/hello" ];
|
||||
};
|
||||
};
|
||||
flakes-action = pkgs.dockerTools.buildImageWithNixDb {
|
||||
name = "flakes-action";
|
||||
contents = with pkgs; [
|
||||
./root
|
||||
bash
|
||||
coreutils
|
||||
curl
|
||||
gawk
|
||||
gitFull
|
||||
git-lfs
|
||||
gnused
|
||||
nodejs
|
||||
wget
|
||||
sudo
|
||||
nixFlakes
|
||||
cacert
|
||||
gnutar
|
||||
gzip
|
||||
openssh
|
||||
xz
|
||||
(pkgs.writeTextFile {
|
||||
name = "nix.conf";
|
||||
destination = "/etc/nix/nix.conf";
|
||||
text = ''
|
||||
accept-flake-config = true
|
||||
experimental-features = nix-command flakes
|
||||
'';
|
||||
})
|
||||
];
|
||||
|
||||
extraCommands = ''
|
||||
# for /usr/bin/env
|
||||
mkdir usr
|
||||
ln -s ../bin usr/bin
|
||||
|
||||
# make sure /tmp exists
|
||||
mkdir -m 1777 tmp
|
||||
|
||||
# need a HOME
|
||||
mkdir -vp root
|
||||
'';
|
||||
config = {
|
||||
Cmd = [ "/bin/bash" ];
|
||||
Env = [
|
||||
"LANG=en_GB.UTF-8"
|
||||
"ENV=/etc/profile.d/nix.sh"
|
||||
"BASH_ENV=/etc/profile.d/nix.sh"
|
||||
"NIX_BUILD_SHELL=/bin/bash"
|
||||
"NIX_PATH=nixpkgs=${./fake_nixpkgs}"
|
||||
"PAGER=cat"
|
||||
"PATH=/usr/bin:/bin"
|
||||
"SSL_CERT_FILE=${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"
|
||||
"USER=root"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
});
|
||||
}
|
||||
```
|
||||
|
||||
If you want to build this yourself you can:
|
||||
|
||||
```bash
|
||||
git clone https://git.cyplo.dev/cyplo/base-images.git
|
||||
cd base-images
|
||||
nix build '.#flakes-action'
|
||||
docker load < result # this took me so much time, to realise I need `load` and not `import`...
|
||||
docker tag [image id] yourimage.repo/base-images/flakes-action:latest
|
||||
docker push yourimage.repo/base-images/flakes-action:latest
|
||||
```
|
||||
|
||||
Then to use on CI, an example of a Gitea CI config:
|
||||
```yaml
|
||||
on: push
|
||||
jobs:
|
||||
Publish:
|
||||
runs-on: flakes-action
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
name: Checkout
|
||||
- name: Build
|
||||
run: |
|
||||
nix develop -c hugo --gc --minify
|
||||
```
|
||||
It uses the image pushed and both a custom build script but also a well-known `checkout` action.
|
||||
|
||||
You need to teach your Gitea runner about the image first btw; if you use NixOS for the runner definition, it could look like this:
|
||||
|
||||
```nix
|
||||
services.gitea-actions-runner = {
|
||||
instances.boltyone = {
|
||||
enable = true;
|
||||
url = "https://yourgitea.domain";
|
||||
tokenFile = config.sops.secrets."gitea-runner-token".path;
|
||||
name = "bolty one";
|
||||
labels = [
|
||||
"flakes-action:docker://yourimage.repo/base-images/flakes-action:latest"
|
||||
"ubuntu-kinetic:docker://ubuntu:kinetic"
|
||||
"linux_amd64:host"
|
||||
];
|
||||
};
|
||||
};
|
||||
```
|
||||
|
||||
P.S. shoutout to [nixery](https://nixery.dev/) that I tried first and the resulting images were just a bit off as it was not easy to get them to support flakes. I think it's an amazing tool in its own right though and you should try it, you can do things like `docker run -ti nixery.dev/shell/git/htop bash` and it will happily just give you an image with those arbitrary nixpkgs included !
|
||||
|
||||
Happy hacking !
|
||||
|
||||
[Discuss this post on the Fediverse](https://peninsula.industries/@cyplo/111087014413124274)
|
|
@ -20,6 +20,7 @@
|
|||
git
|
||||
go
|
||||
hugo
|
||||
htmltest
|
||||
hut
|
||||
nodejs
|
||||
ruby
|
||||
|
|
5
go.mod
5
go.mod
|
@ -1,5 +0,0 @@
|
|||
module git.cyplo.dev/cyplo/blog.git
|
||||
|
||||
go 1.20
|
||||
|
||||
require github.com/canstand/compost v0.6.0 // indirect
|
2
go.sum
2
go.sum
|
@ -1,2 +0,0 @@
|
|||
github.com/canstand/compost v0.6.0 h1:MqMcuPeH5s2KCdNzb/UCXIsdXyhLrOPmoujsJTKpmUw=
|
||||
github.com/canstand/compost v0.6.0/go.mod h1:wUf2xCY8s0i4zIiQZwebZR80lwldaFgp7nam+Rn+Vlk=
|
63
layouts/_default/list.html
Normal file
63
layouts/_default/list.html
Normal file
|
@ -0,0 +1,63 @@
|
|||
{{ define "main" }}
|
||||
<div class="container" role="main">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
|
||||
{{ with .Content }}
|
||||
<div class="well">
|
||||
{{.}}
|
||||
</div>
|
||||
{{ end }}
|
||||
<div class="posts-list">
|
||||
{{ range .Paginator.Pages }}
|
||||
<article class="post-preview">
|
||||
<a href="{{ .Permalink }}">
|
||||
<h2 class="post-title">{{ .Title }}</h2>
|
||||
|
||||
{{ if .Params.subtitle }}
|
||||
<h3 class="post-subtitle">
|
||||
{{ .Params.subtitle }}
|
||||
</h3>
|
||||
{{ end }}
|
||||
</a>
|
||||
|
||||
<p class="post-meta">
|
||||
{{ partial "post_meta.html" . }}
|
||||
</p>
|
||||
<div class="post-entry">
|
||||
{{ if .Truncated }}
|
||||
{{ .Summary }}
|
||||
<a href="{{ .Permalink }}" class="post-read-more">[{{ i18n "readMore" }}]</a>
|
||||
{{ else }}
|
||||
{{ .Content }}
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
{{ if .Params.tags }}
|
||||
<div class="blog-tags">
|
||||
{{ range .Params.tags }}
|
||||
{{ partial "tag-link" . }}
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
</article>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ if or (.Paginator.HasPrev) (.Paginator.HasNext) }}
|
||||
<ul class="pager main-pager">
|
||||
{{ if .Paginator.HasPrev }}
|
||||
<li class="previous">
|
||||
<a href="{{ .Permalink }}page/{{ .Paginator.Prev.PageNumber }}/">← {{ i18n "newerPosts" }}</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
{{ if .Paginator.HasNext }}
|
||||
<li class="next">
|
||||
<a href="{{ .Permalink }}page/{{ .Paginator.Next.PageNumber }}/">{{ i18n "olderPosts" }} →</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
64
layouts/_default/single.html
Normal file
64
layouts/_default/single.html
Normal file
|
@ -0,0 +1,64 @@
|
|||
{{ define "main" }}
|
||||
<div class="container" role="main">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
|
||||
<article role="main" class="blog-post">
|
||||
|
||||
{{ partial "top-tags" . }}
|
||||
{{ partial "part-of-series" . }}
|
||||
|
||||
{{ .Content }}
|
||||
|
||||
{{ if .Params.tags }}
|
||||
<div class="blog-tags">
|
||||
{{ range .Params.tags }}
|
||||
{{ partial "tag-link" . }}
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
{{ if $.Param "socialShare" }}
|
||||
<hr/>
|
||||
<section id="social-share">
|
||||
<div class="list-inline footer-links">
|
||||
{{ partial "share-links" . }}
|
||||
</div>
|
||||
</section>
|
||||
{{ end }}
|
||||
|
||||
{{ partial "see-also-series-list" . }}
|
||||
|
||||
{{ if not .Params.series }}
|
||||
{{ if .Site.Params.showRelatedPosts }}
|
||||
{{ $related := .Site.RegularPages.Related . | first 3 }}
|
||||
{{ with $related }}
|
||||
<h4 class="see-also">{{ i18n "seeAlso" }}</h4>
|
||||
<ul>
|
||||
{{ range . }}
|
||||
<li><a href="{{ .RelPermalink }}">{{ .Title }}</a></li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</article>
|
||||
|
||||
{{ if ne .Type "page" }}
|
||||
<ul class="pager blog-pager">
|
||||
{{ if .PrevInSection }}
|
||||
<li class="previous">
|
||||
<a href="{{ .PrevInSection.Permalink }}" data-toggle="tooltip" data-placement="top" title="{{ .PrevInSection.Title }}">← {{ i18n "previousPost" }}</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
{{ if .NextInSection }}
|
||||
<li class="next">
|
||||
<a href="{{ .NextInSection.Permalink }}" data-toggle="tooltip" data-placement="top" title="{{ .NextInSection.Title }}">{{ i18n "nextPost" }} →</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ end }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
84
layouts/partials/footer.html
Normal file
84
layouts/partials/footer.html
Normal file
|
@ -0,0 +1,84 @@
|
|||
{{ if eq .Type "page" }}
|
||||
{{ partial "page_meta.html" . }}
|
||||
{{ end }}
|
||||
<footer>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
|
||||
<ul class="list-inline text-center footer-links">
|
||||
{{ range .Site.Data.beautifulhugo.social.social_icons }}
|
||||
{{- if isset $.Site.Author .id }}
|
||||
<li>
|
||||
<a {{ if .rel }}rel="{{ .rel }}"{{- end -}} href="{{ printf .url (index $.Site.Author .id) }}" title="{{ .title }}">
|
||||
<span class="fa-stack fa-lg">
|
||||
<i class="fas fa-circle fa-stack-2x"></i>
|
||||
<i class="{{ .icon }} fa-stack-1x fa-inverse"></i>
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
{{- end -}}
|
||||
{{ end }}
|
||||
{{ if .Site.Params.rss }}
|
||||
<li>
|
||||
<a href="{{ with .OutputFormats.Get "RSS" }}{{ .RelPermalink }}{{ end }}" title="RSS">
|
||||
<span class="fa-stack fa-lg">
|
||||
<i class="fas fa-circle fa-stack-2x"></i>
|
||||
<i class="fas fa-rss fa-stack-1x fa-inverse"></i>
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
<p class="credits copyright text-muted">
|
||||
{{ if .Site.Author.name }}
|
||||
{{ if .Site.Author.website }}
|
||||
<a href="{{ .Site.Author.website }}">{{ .Site.Author.name }}</a>
|
||||
{{ else }}
|
||||
{{ .Site.Author.name }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
• ©
|
||||
{{ if .Site.Params.since }}
|
||||
{{ .Site.Params.since }} - {{ .Site.LastChange.Format "2006" }}
|
||||
{{ else }}
|
||||
{{ .Site.LastChange.Format "2006" }}
|
||||
{{ end }}
|
||||
|
||||
{{ if .Site.Title }}
|
||||
•
|
||||
<a href="{{ "" | absLangURL }}">{{ .Site.Title }}</a>
|
||||
{{ end }}
|
||||
</p>
|
||||
<!-- Please don't remove this, keep my open source work credited :) -->
|
||||
<p class="credits theme-by text-muted">
|
||||
This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License</a>.
|
||||
<a href="https://gohugo.io">Hugo v{{ .Site.Hugo.Version }}</a> powered • Theme is "peninsula" by me, adapted from <a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a>, adapted from <a href="https://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a>'
|
||||
{{ if $.GitInfo }} • [<a href="{{ .Site.Params.commit }}{{ .GitInfo.Hash }}">{{ substr .GitInfo.Hash 0 8 }}</a>]{{ end }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="{{ "js/katex.min.js" | absURL }}"></script>
|
||||
<script src="{{ "js/auto-render.min.js" | absURL }}"></script>
|
||||
<script src="{{ "js/jquery-3.5.1.slim.min.js" | absURL }}"></script>
|
||||
<script src="{{ "js/bootstrap.min.js" | absURL }}"></script>
|
||||
<script src="{{ "js/main.js" | absURL }}"></script>
|
||||
{{- if .Site.Params.staticman }}
|
||||
<script src="{{ "js/staticman.js" | absURL }}"></script>
|
||||
{{- end }}
|
||||
{{- if .Site.Params.useHLJS }}
|
||||
<script src="{{ "js/highlight.min.js" | absURL }}"></script>
|
||||
<script> hljs.initHighlightingOnLoad(); </script>
|
||||
<script> $(document).ready(function() {$("pre.chroma").css("padding","0");}); </script>
|
||||
{{- end -}}
|
||||
<script> renderMathInElement(document.body); </script>
|
||||
|
||||
<script src="{{ "js/photoswipe.min.js" | absURL }}"></script>
|
||||
<script src="{{ "js/photoswipe-ui-default.min.js" | absURL }}"></script>
|
||||
<script src="{{ "js/load-photoswipe.js" | absURL }}"></script>
|
||||
|
||||
{{- partial "footer_custom.html" . }}
|
8
layouts/partials/part-of-series.html
Normal file
8
layouts/partials/part-of-series.html
Normal file
|
@ -0,0 +1,8 @@
|
|||
{{ if $.Params.series }}
|
||||
<div class="blog-series">
|
||||
<p>
|
||||
This post is part of the <a href="/series/{{ .Params.series }}">{{ replace .Params.series "-" " " }}</a> series.
|
||||
</p>
|
||||
<br />
|
||||
</div>
|
||||
{{ end }}
|
38
layouts/partials/post_meta.html
Normal file
38
layouts/partials/post_meta.html
Normal file
|
@ -0,0 +1,38 @@
|
|||
<span class="post-meta">
|
||||
{{ $lastmodstr := default (i18n "dateFormat") .Site.Params.dateformat | .Lastmod.Format }}
|
||||
{{ $datestr := default (i18n "dateFormat") .Site.Params.dateformat | .Date.Format }}
|
||||
<i class="fas fa-calendar"></i> {{ $datestr | i18n "postedOnDate"}}
|
||||
{{ if ne $datestr $lastmodstr }}
|
||||
{{ $lastmodstr | i18n "lastModified" }}
|
||||
{{ end }}
|
||||
{{ if .Site.Params.readingTime }}
|
||||
| <i class="fas fa-clock"></i> {{ i18n "readingTime"}}{{ .ReadingTime }} {{ i18n "readTime" }}
|
||||
{{ end }}
|
||||
{{ if .Site.Params.wordCount }}
|
||||
| <i class="fas fa-book"></i> {{ .WordCount }} {{ i18n "words" }}
|
||||
{{ end }}
|
||||
{{- if .Site.Params.staticman -}}
|
||||
| <i class="fas fa-comment"></i>
|
||||
{{ $slug := replace .URL "/" "" }}
|
||||
{{ if .Site.Data.comments }}
|
||||
{{ $comments := index $.Site.Data.comments $slug }}
|
||||
{{ if $comments }}
|
||||
{{ if gt (len $comments) 1 }}
|
||||
{{ len $comments }} {{ i18n "moreComment" }}
|
||||
{{ else }}
|
||||
{{ len $comments }} {{ i18n "oneComment" }}
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
0 {{ i18n "oneComment" }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ if .IsTranslated -}}
|
||||
{{- $sortedTranslations := sort .Translations "Site.Language.Weight" -}}
|
||||
{{- $links := apply $sortedTranslations "partial" "translation_link.html" "." -}}
|
||||
{{- $cleanLinks := apply $links "chomp" "." -}}
|
||||
{{- $linksOutput := delimit $cleanLinks (i18n "translationsSeparator") -}}
|
||||
• {{ i18n "translationsLabel" }}{{ $linksOutput }}
|
||||
{{- end }}
|
||||
</span>
|
||||
|
35
layouts/partials/see-also-series-list.html
Normal file
35
layouts/partials/see-also-series-list.html
Normal file
|
@ -0,0 +1,35 @@
|
|||
{{ if .Params.series }}
|
||||
<section>
|
||||
<h4 class="see-also">{{ i18n "seeAlso" }}</h4>
|
||||
<ul>
|
||||
{{ $series_taxonomy_name := "series" }}
|
||||
{{ range $taxonomy_term, $taxonomy := .Site.Taxonomies }}
|
||||
{{ if eq $taxonomy_term $series_taxonomy_name }}
|
||||
{{ with $.Site.GetPage (printf "/%s" $taxonomy_term) }}
|
||||
{{ range $key, $value := $taxonomy }}
|
||||
{{ if eq $key $.Params.series }}
|
||||
{{ range $value.Pages }}
|
||||
{{ if ne .File.UniqueID $.File.UniqueID }}
|
||||
<li hugo-nav="{{ .RelPermalink}}">
|
||||
<a href="{{ .Permalink}}">{{ .LinkTitle }}</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ if $.Site.Params.showRelatedPosts }}
|
||||
{{ $related := $.Site.RegularPages.Related . | first 2 }}
|
||||
{{ with $related }}
|
||||
{{ range . }}
|
||||
<li>
|
||||
<a href="{{ .RelPermalink }}">{{ .Title }}</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</ul>
|
||||
</section>
|
||||
{{ end }}
|
4
layouts/partials/tag-link.html
Normal file
4
layouts/partials/tag-link.html
Normal file
|
@ -0,0 +1,4 @@
|
|||
{{ $baseUrl := absURL "tags" }}
|
||||
{{ $tagName := urlize . }}
|
||||
{{ $tagUrl := printf "%s/%s" $baseUrl $tagName }}
|
||||
<a href="{{ $tagUrl }}">{{ $tagName }}</a>
|
13
layouts/partials/top-tags.html
Normal file
13
layouts/partials/top-tags.html
Normal file
|
@ -0,0 +1,13 @@
|
|||
{{ if not .Params.series }}
|
||||
{{ if .Params.tags }}
|
||||
{{ if .Params.series }}
|
||||
<div class="blog-tags-with-series blog-tags">
|
||||
{{ else}}
|
||||
<div class="blog-tags">
|
||||
{{ end }}
|
||||
{{ range .Params.tags }}
|
||||
{{ partial "tag-link" . }}
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ end }}
|
1631
package-lock.json
generated
1631
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -1,4 +0,0 @@
|
|||
{
|
||||
"name": "blog",
|
||||
"version": "0.1.0"
|
||||
}
|
32
package.json
32
package.json
|
@ -1,32 +0,0 @@
|
|||
{
|
||||
"comments": {
|
||||
"dependencies": {
|
||||
"@alpinejs/intersect": "github.com/canstand/compost",
|
||||
"alpinejs": "github.com/canstand/compost"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@tailwindcss/typography": "github.com/canstand/compost",
|
||||
"autoprefixer": "github.com/canstand/compost",
|
||||
"postcss": "github.com/canstand/compost",
|
||||
"postcss-cli": "github.com/canstand/compost",
|
||||
"prettier": "github.com/canstand/compost",
|
||||
"prettier-plugin-go-template": "github.com/canstand/compost",
|
||||
"tailwindcss": "github.com/canstand/compost"
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@alpinejs/intersect": "^3.12.3",
|
||||
"alpinejs": "^3.12.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@tailwindcss/typography": "^0.5.9",
|
||||
"autoprefixer": "^10.4.14",
|
||||
"postcss": "^8.4.27",
|
||||
"postcss-cli": "^10.1.0",
|
||||
"prettier": "^3.0.0",
|
||||
"prettier-plugin-go-template": "^0.0.15",
|
||||
"tailwindcss": "^3.3.3"
|
||||
},
|
||||
"name": "blog",
|
||||
"version": "0.1.0"
|
||||
}
|
26
static/css/custom.css
Normal file
26
static/css/custom.css
Normal file
|
@ -0,0 +1,26 @@
|
|||
.blog-tags-with-series {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.blog-series {
|
||||
font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
color: #999;
|
||||
font-size: 15px;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.blog-series:before {
|
||||
content: "Series: ";
|
||||
}
|
||||
|
||||
.blog-series a {
|
||||
color: #008aff;
|
||||
text-decoration: none;
|
||||
padding: 0px 5px;
|
||||
}
|
||||
|
||||
.blog-series a:hover {
|
||||
border-radius: 2px;
|
||||
color: #008aff;
|
||||
background-color: #ccc;
|
||||
}
|
59
static/css/syntax.css
Normal file
59
static/css/syntax.css
Normal file
|
@ -0,0 +1,59 @@
|
|||
/* Background */ .chroma { color: #f8f8f2; background-color: #272822 }
|
||||
/* Error */ .chroma .err { color: #960050; background-color: #1e0010 }
|
||||
/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
|
||||
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; }
|
||||
/* LineHighlight */ .chroma .hl { display: block; width: 100%;background-color: #ffffcc }
|
||||
/* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em; }
|
||||
/* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em; }
|
||||
/* Keyword */ .chroma .k { color: #66d9ef }
|
||||
/* KeywordConstant */ .chroma .kc { color: #66d9ef }
|
||||
/* KeywordDeclaration */ .chroma .kd { color: #66d9ef }
|
||||
/* KeywordNamespace */ .chroma .kn { color: #f92672 }
|
||||
/* KeywordPseudo */ .chroma .kp { color: #66d9ef }
|
||||
/* KeywordReserved */ .chroma .kr { color: #66d9ef }
|
||||
/* KeywordType */ .chroma .kt { color: #66d9ef }
|
||||
/* NameAttribute */ .chroma .na { color: #a6e22e }
|
||||
/* NameClass */ .chroma .nc { color: #a6e22e }
|
||||
/* NameConstant */ .chroma .no { color: #66d9ef }
|
||||
/* NameDecorator */ .chroma .nd { color: #a6e22e }
|
||||
/* NameException */ .chroma .ne { color: #a6e22e }
|
||||
/* NameFunction */ .chroma .nf { color: #a6e22e }
|
||||
/* NameOther */ .chroma .nx { color: #a6e22e }
|
||||
/* NameTag */ .chroma .nt { color: #f92672 }
|
||||
/* Literal */ .chroma .l { color: #ae81ff }
|
||||
/* LiteralDate */ .chroma .ld { color: #e6db74 }
|
||||
/* LiteralString */ .chroma .s { color: #e6db74 }
|
||||
/* LiteralStringAffix */ .chroma .sa { color: #e6db74 }
|
||||
/* LiteralStringBacktick */ .chroma .sb { color: #e6db74 }
|
||||
/* LiteralStringChar */ .chroma .sc { color: #e6db74 }
|
||||
/* LiteralStringDelimiter */ .chroma .dl { color: #e6db74 }
|
||||
/* LiteralStringDoc */ .chroma .sd { color: #e6db74 }
|
||||
/* LiteralStringDouble */ .chroma .s2 { color: #e6db74 }
|
||||
/* LiteralStringEscape */ .chroma .se { color: #ae81ff }
|
||||
/* LiteralStringHeredoc */ .chroma .sh { color: #e6db74 }
|
||||
/* LiteralStringInterpol */ .chroma .si { color: #e6db74 }
|
||||
/* LiteralStringOther */ .chroma .sx { color: #e6db74 }
|
||||
/* LiteralStringRegex */ .chroma .sr { color: #e6db74 }
|
||||
/* LiteralStringSingle */ .chroma .s1 { color: #e6db74 }
|
||||
/* LiteralStringSymbol */ .chroma .ss { color: #e6db74 }
|
||||
/* LiteralNumber */ .chroma .m { color: #ae81ff }
|
||||
/* LiteralNumberBin */ .chroma .mb { color: #ae81ff }
|
||||
/* LiteralNumberFloat */ .chroma .mf { color: #ae81ff }
|
||||
/* LiteralNumberHex */ .chroma .mh { color: #ae81ff }
|
||||
/* LiteralNumberInteger */ .chroma .mi { color: #ae81ff }
|
||||
/* LiteralNumberIntegerLong */ .chroma .il { color: #ae81ff }
|
||||
/* LiteralNumberOct */ .chroma .mo { color: #ae81ff }
|
||||
/* Operator */ .chroma .o { color: #f92672 }
|
||||
/* OperatorWord */ .chroma .ow { color: #f92672 }
|
||||
/* Comment */ .chroma .c { color: #75715e }
|
||||
/* CommentHashbang */ .chroma .ch { color: #75715e }
|
||||
/* CommentMultiline */ .chroma .cm { color: #75715e }
|
||||
/* CommentSingle */ .chroma .c1 { color: #75715e }
|
||||
/* CommentSpecial */ .chroma .cs { color: #75715e }
|
||||
/* CommentPreproc */ .chroma .cp { color: #75715e }
|
||||
/* CommentPreprocFile */ .chroma .cpf { color: #75715e }
|
||||
/* GenericDeleted */ .chroma .gd { color: #f92672 }
|
||||
/* GenericEmph */ .chroma .ge { font-style: italic }
|
||||
/* GenericInserted */ .chroma .gi { color: #a6e22e }
|
||||
/* GenericStrong */ .chroma .gs { font-weight: bold }
|
||||
/* GenericSubheading */ .chroma .gu { color: #75715e }
|
17
themes/beautifulhugo/.gitattributes
vendored
Normal file
17
themes/beautifulhugo/.gitattributes
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
# Auto detect text files and perform LF normalization
|
||||
* text=auto
|
||||
|
||||
# Custom for Visual Studio
|
||||
*.cs diff=csharp
|
||||
|
||||
# Standard to msysgit
|
||||
*.doc diff=astextplain
|
||||
*.DOC diff=astextplain
|
||||
*.docx diff=astextplain
|
||||
*.DOCX diff=astextplain
|
||||
*.dot diff=astextplain
|
||||
*.DOT diff=astextplain
|
||||
*.pdf diff=astextplain
|
||||
*.PDF diff=astextplain
|
||||
*.rtf diff=astextplain
|
||||
*.RTF diff=astextplain
|
50
themes/beautifulhugo/.gitignore
vendored
Normal file
50
themes/beautifulhugo/.gitignore
vendored
Normal file
|
@ -0,0 +1,50 @@
|
|||
# Themes directory of example site; ignored so that we can clone the repo
|
||||
# inside the themes directory and test the example site with "hugo server".
|
||||
exampleSite/themes/
|
||||
|
||||
# Windows image file caches
|
||||
Thumbs.db
|
||||
ehthumbs.db
|
||||
|
||||
# Folder config file
|
||||
Desktop.ini
|
||||
|
||||
# Recycle Bin used on file shares
|
||||
$RECYCLE.BIN/
|
||||
|
||||
# Windows Installer files
|
||||
*.cab
|
||||
*.msi
|
||||
*.msm
|
||||
*.msp
|
||||
|
||||
# Windows shortcuts
|
||||
*.lnk
|
||||
|
||||
# Vim swap files
|
||||
*.swp
|
||||
|
||||
# =========================
|
||||
# Operating System Files
|
||||
# =========================
|
||||
|
||||
# OSX
|
||||
# =========================
|
||||
|
||||
.DS_Store
|
||||
.AppleDouble
|
||||
.LSOverride
|
||||
|
||||
# Thumbnails
|
||||
._*
|
||||
|
||||
# Files that might appear on external disk
|
||||
.Spotlight-V100
|
||||
.Trashes
|
||||
|
||||
# Directories potentially created on remote AFP share
|
||||
.AppleDB
|
||||
.AppleDesktop
|
||||
Network Trash Folder
|
||||
Temporary Items
|
||||
.apdisk
|
22
themes/beautifulhugo/LICENSE
Normal file
22
themes/beautifulhugo/LICENSE
Normal file
|
@ -0,0 +1,22 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Original work Copyright (c) 2015 Dean Attali
|
||||
Modified work Copyright (c) 2017 Michael Romero
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
186
themes/beautifulhugo/README.md
Normal file
186
themes/beautifulhugo/README.md
Normal file
|
@ -0,0 +1,186 @@
|
|||
# Beautiful Hugo - An adaptation of the Beautiful Jekyll theme
|
||||
|
||||
![Beautiful Hugo Theme Screenshot](https://github.com/halogenica/beautifulhugo/blob/master/images/screenshot.png)
|
||||
|
||||
## Installation
|
||||
|
||||
$ mkdir themes
|
||||
$ cd themes
|
||||
$ git submodule add https://github.com/halogenica/beautifulhugo.git beautifulhugo
|
||||
|
||||
|
||||
See [the Hugo documentation](https://gohugo.io/themes/installing/) for more information.
|
||||
|
||||
## Extra Features
|
||||
|
||||
### Responsive
|
||||
|
||||
This theme is designed to look great on both large-screen and small-screen (mobile) devices.
|
||||
|
||||
### Syntax highlighting
|
||||
|
||||
This theme has support for either Hugo's lightning fast Chroma, or both server side and client side highlighting. See [the Hugo docs for more](https://gohugo.io/content-management/syntax-highlighting/).
|
||||
|
||||
#### Chroma - New server side syntax highlighting
|
||||
|
||||
To enable Chroma, add the following to your site parameters:
|
||||
|
||||
```
|
||||
pygmentsCodeFences = true
|
||||
pygmentsUseClasses = true
|
||||
```
|
||||
|
||||
Then, you can generate a different style by running:
|
||||
|
||||
```
|
||||
hugo gen chromastyles --style=trac > static/css/syntax.css
|
||||
```
|
||||
|
||||
#### Pygments - Old server side syntax highlighting
|
||||
|
||||
To use this feature install Pygments (`pip install Pygments`) and add the following to your site parameters:
|
||||
|
||||
```
|
||||
pygmentsStyle = "trac"
|
||||
pygmentsUseClassic = true
|
||||
```
|
||||
|
||||
Pygments is mostly compatable with the newer Chroma. It is slower but has some additional theme options. I recommend Chroma over Pygments. Pygments will use `syntax.css` for highlighting, unless you also set the config `pygmentsUseClasses = false` which will generate the style code directly in the HTML file.
|
||||
|
||||
#### Highlight.js - Client side syntax highlighting
|
||||
```
|
||||
[Params]
|
||||
useHLJS = true
|
||||
```
|
||||
|
||||
Client side highlighting does not require pygments to be installed. This will use `highlight.min.css` instead of `syntax.css` for highlighting (effectively disabling Chroma). Highlight.js has a wider range of support for languages and themes, and an alternative highlighting engine.
|
||||
|
||||
### Disqus support
|
||||
|
||||
To use this feature, uncomment and fill out the `disqusShortname` parameter in `config.toml`.
|
||||
|
||||
### Staticman support
|
||||
|
||||
Add *Staticman* configuration section in `config.toml` or `config.yaml`
|
||||
|
||||
Sample `config.toml` configuration
|
||||
|
||||
```
|
||||
[Params.staticman]
|
||||
api = "https://<API-ENDPOINT>/v3/entry/{GIT-HOST}/<USERNAME>/<REPOSITORY-BLOGNAME>/master/comments"
|
||||
[Params.staticman.recaptcha]
|
||||
sitekey: "6LeGeTgUAAAAAAqVrfTwox1kJQFdWl-mLzKasV0v"
|
||||
secret: "hsGjWtWHR4HK4pT7cUsWTArJdZDxxE2pkdg/ArwCguqYQrhuubjj3RS9C5qa8xu4cx/Y9EwHwAMEeXPCZbLR9eW1K9LshissvNcYFfC/b8KKb4deH4V1+oqJEk/JcoK6jp6Rr2nZV4rjDP9M7nunC3WR5UGwMIYb8kKhur9pAic="
|
||||
```
|
||||
|
||||
Note: The public `API-ENDPOINT` https://staticman.net is currently hitting its API limit, so one may use other API instances to provide Staticman comment service.
|
||||
|
||||
The section `[Params.staticman.recaptcha]` is *optional*. To add reCAPTCHA to your site, you have to replace the default values with your own ones (to be obtained from Google.) The site `secret` has to be encrypted with
|
||||
|
||||
https://<API-ENDPOINT>/v3/encrypt/<SITE-SECRET>
|
||||
|
||||
You must also configure the `staticman.yml` in you blog website.
|
||||
|
||||
```
|
||||
comments:
|
||||
allowedFields: ["name", "email", "website", "comment"]
|
||||
branch : "master"
|
||||
commitMessage : "New comment in {options.slug}"
|
||||
path: "data/comments/{options.slug}"
|
||||
filename : "comment-{@timestamp}"
|
||||
format : "yaml"
|
||||
moderation : true
|
||||
requiredFields : ['name', 'email', 'comment']
|
||||
transforms:
|
||||
email : md5
|
||||
generatedFields:
|
||||
date:
|
||||
type : "date"
|
||||
options:
|
||||
format : "iso8601"
|
||||
reCaptcha:
|
||||
enabled: true
|
||||
siteKey: "6LeGeTgUAAAAAAqVrfTwox1kJQFdWl-mLzKasV0v"
|
||||
secret: "hsGjWtWHR4HK4pT7cUsWTArJdZDxxE2pkdg/ArwCguqYQrhuubjj3RS9C5qa8xu4cx/Y9EwHwAMEeXPCZbLR9eW1K9LshissvNcYFfC/b8KKb4deH4V1+oqJEk/JcoK6jp6Rr2nZV4rjDP9M7nunC3WR5UGwMIYb8kKhur9pAic="
|
||||
```
|
||||
|
||||
If you *don't* have the section `[Params.staticman]` in `config.toml`, you *won't* need the section `reCaptcha` in `staticman.yml`
|
||||
|
||||
### Google Analytics
|
||||
|
||||
To add Google Analytics, simply sign up to [Google Analytics](https://www.google.com/analytics/) to obtain your Google Tracking ID, and add this tracking ID to the `googleAnalytics` parameter in `config.toml`.
|
||||
|
||||
Note that the Google Analytics tracking code will only be inserted into the page when the site isn't served on Hugo's built-in server, to prevent tracking from local testing environments.
|
||||
|
||||
### Commit SHA on the footer
|
||||
|
||||
If the source of your site is in a Git repo, the SHA corresponding to the commit the site is built from can be shown on the footer. To do so, two site parameters `commit` has to be defined in the config file `config.toml`:
|
||||
|
||||
```
|
||||
enableGitInfo = true
|
||||
[Params]
|
||||
commit = "https://github.com/<username>/<siterepo>/tree/"
|
||||
```
|
||||
|
||||
See at [vincenttam/vincenttam.gitlab.io](https://gitlab.com/vincenttam/vincenttam.gitlab.io) for an example of how to add it to a continuous integration system.
|
||||
|
||||
### Multilingual
|
||||
|
||||
To allow Beautiful Hugo to go multilingual, you need to define the languages
|
||||
you want to use inside the `languages` parameter on `config.toml` file, also
|
||||
redefining the content dir for each one. Check the `i18n/` folder to see all
|
||||
languages available.
|
||||
|
||||
```toml
|
||||
[languages]
|
||||
[languages.en]
|
||||
contentDir = "content/en" # English
|
||||
[languages.ja]
|
||||
contentDir = "content/ja" # Japanese
|
||||
[languages.br]
|
||||
contentDir = "content/br" # Brazilian Portuguese
|
||||
```
|
||||
|
||||
Now you just need to create a subdir within the `content/` folder for each
|
||||
language and just put stuff inside `page/` and `post/` regular directories.
|
||||
```
|
||||
content/ content/ content/
|
||||
└── en/ └── br/ └── ja/
|
||||
├── page/ ├── page/ ├── page/
|
||||
└── post/ └── post/ └── post/
|
||||
|
||||
```
|
||||
|
||||
### Extra shortcodes
|
||||
|
||||
There are two extra shortcodes provided (along with the customized figure shortcode):
|
||||
|
||||
#### Details
|
||||
|
||||
This simply adds the html5 detail attribute, supported on all *modern* browsers. Use it like this:
|
||||
|
||||
```
|
||||
{{< details "This is the details title (click to expand)" >}}
|
||||
This is the content (hidden until clicked).
|
||||
{{< /details >}}
|
||||
```
|
||||
|
||||
#### Split
|
||||
|
||||
This adds a two column side-by-side environment (will turn into 1 col for narrow devices):
|
||||
|
||||
```
|
||||
{{< columns >}}
|
||||
This is column 1.
|
||||
{{< column >}}
|
||||
This is column 2.
|
||||
{{< endcolumns >}}
|
||||
```
|
||||
|
||||
## About
|
||||
|
||||
This is an adaptation of the Jekyll theme [Beautiful Jekyll](https://deanattali.com/beautiful-jekyll/) by [Dean Attali](https://deanattali.com/aboutme#contact). It supports most of the features of the original theme, and many new features. It has diverged from the Jekyll theme over time, with years of community updates.
|
||||
|
||||
## License
|
||||
|
||||
MIT Licensed, see [LICENSE](https://github.com/halogenica/Hugo-BeautifulHugo/blob/master/LICENSE).
|
9
themes/beautifulhugo/archetypes/default.md
Normal file
9
themes/beautifulhugo/archetypes/default.md
Normal file
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
author: ""
|
||||
type: ""
|
||||
date: {{ .Date }}
|
||||
subtitle: ""
|
||||
image: ""
|
||||
tags: []
|
||||
---
|
174
themes/beautifulhugo/data/beautifulhugo/social.toml
Normal file
174
themes/beautifulhugo/data/beautifulhugo/social.toml
Normal file
|
@ -0,0 +1,174 @@
|
|||
[[social_icons]]
|
||||
id = "email"
|
||||
url = "mailto:%s"
|
||||
title = "Email me"
|
||||
icon = "fas fa-envelope"
|
||||
|
||||
[[social_icons]]
|
||||
id = "facebook"
|
||||
url = "https://www.facebook.com/%s"
|
||||
title = "Facebook"
|
||||
icon = "fab fa-facebook"
|
||||
|
||||
[[social_icons]]
|
||||
id = "github"
|
||||
url = "https://github.com/%s"
|
||||
title = "GitHub"
|
||||
icon = "fab fa-github"
|
||||
|
||||
[[social_icons]]
|
||||
id = "gitlab"
|
||||
url = "https://gitlab.com/%s"
|
||||
title = "GitLab"
|
||||
icon = "fab fa-gitlab"
|
||||
|
||||
[[social_icons]]
|
||||
id = "bitbucket"
|
||||
url = "https://bitbucket.org/%s"
|
||||
title = "Bitbucket"
|
||||
icon = "fab fa-bitbucket"
|
||||
|
||||
[[social_icons]]
|
||||
id = "twitter"
|
||||
url = "https://twitter.com/%s"
|
||||
title = "Twitter"
|
||||
icon = "fab fa-twitter"
|
||||
|
||||
[[social_icons]]
|
||||
id = "slack"
|
||||
url = "https://%s.slack.com/"
|
||||
title = "Slack"
|
||||
icon = "fab fa-slack"
|
||||
|
||||
[[social_icons]]
|
||||
id = "reddit"
|
||||
url = "https://reddit.com/u/%s"
|
||||
title = "Reddit"
|
||||
icon = "fab fa-reddit-alien"
|
||||
|
||||
[[social_icons]]
|
||||
id = "linkedin"
|
||||
url = "https://linkedin.com/in/%s"
|
||||
title = "LinkedIn"
|
||||
icon = "fab fa-linkedin"
|
||||
|
||||
[[social_icons]]
|
||||
id = "xing"
|
||||
url = "https://www.xing.com/profile/%s"
|
||||
title = "Xing"
|
||||
icon = "fab fa-xing"
|
||||
|
||||
[[social_icons]]
|
||||
id = "stackoverflow"
|
||||
url = "https://stackoverflow.com/%s"
|
||||
title = "StackOverflow"
|
||||
icon = "fab fa-stack-overflow"
|
||||
|
||||
[[social_icons]]
|
||||
id = "snapchat"
|
||||
url = "https://www.snapchat.com/add/%s"
|
||||
title = "Snapchat"
|
||||
icon = "fab fa-snapchat-ghost"
|
||||
|
||||
[[social_icons]]
|
||||
id = "instagram"
|
||||
url = "https://www.instagram.com/%s"
|
||||
title = "Instagram"
|
||||
icon = "fab fa-instagram"
|
||||
|
||||
[[social_icons]]
|
||||
id = "youtube"
|
||||
url = "https://www.youtube.com/%s"
|
||||
title = "Youtube"
|
||||
icon = "fab fa-youtube"
|
||||
|
||||
[[social_icons]]
|
||||
id = "soundcloud"
|
||||
url = "https://soundcloud.com/%s"
|
||||
title = "SoundCloud"
|
||||
icon = "fab fa-soundcloud"
|
||||
|
||||
[[social_icons]]
|
||||
id = "spotify"
|
||||
url = "https://open.spotify.com/user/%s"
|
||||
title = "Spotify"
|
||||
icon = "fab fa-spotify"
|
||||
|
||||
[[social_icons]]
|
||||
id = "bandcamp"
|
||||
url = "https://%s.bandcamp.com/"
|
||||
title = "Bandcamp"
|
||||
icon = "fab fa-bandcamp"
|
||||
|
||||
[[social_icons]]
|
||||
id = "itchio"
|
||||
url = "https://itch.io/profile/%s"
|
||||
title = "Itch.io"
|
||||
icon = "fas fa-gamepad"
|
||||
|
||||
[[social_icons]]
|
||||
id = "keybase"
|
||||
url = "https://keybase.io/%s"
|
||||
title = "Keybase"
|
||||
icon = "fab fa-keybase"
|
||||
|
||||
[[social_icons]]
|
||||
id = "vk"
|
||||
url = "https://vk.com/%s"
|
||||
title = "VK"
|
||||
icon = "fab fa-vk"
|
||||
|
||||
[[social_icons]]
|
||||
id = "paypal"
|
||||
url = "https://paypal.me/%s"
|
||||
title = "PayPal"
|
||||
icon = "fab fa-paypal"
|
||||
|
||||
[[social_icons]]
|
||||
id = "telegram"
|
||||
url = "https://telegram.me/%s"
|
||||
title = "Telegram"
|
||||
icon = "fab fa-telegram"
|
||||
|
||||
[[social_icons]]
|
||||
id = "500px"
|
||||
url = "https://500px.com/%s"
|
||||
title = "500px"
|
||||
icon = "fab fa-500px"
|
||||
|
||||
[[social_icons]]
|
||||
id = "codepen"
|
||||
url = "https://codepen.io/%s"
|
||||
title = "CodePen"
|
||||
icon = "fab fa-codepen"
|
||||
|
||||
[[social_icons]]
|
||||
id = "kaggle"
|
||||
url = "https://www.kaggle.com/%s"
|
||||
title = "kaggle"
|
||||
icon = "fab fa-kaggle"
|
||||
|
||||
[[social_icons]]
|
||||
id = "mastodon"
|
||||
url = "https://%s"
|
||||
title = "Mastodon"
|
||||
icon = "fab fa-mastodon"
|
||||
rel = "me"
|
||||
|
||||
[[social_icons]]
|
||||
id = "weibo"
|
||||
url = "https://weibo.com/%s"
|
||||
title = "Weibo"
|
||||
icon = "fab fa-weibo"
|
||||
|
||||
[[social_icons]]
|
||||
id = "discord"
|
||||
url = "https://discord.gg/%s"
|
||||
title = "Discord"
|
||||
icon = "fab fa-discord"
|
||||
|
||||
[[social_icons]]
|
||||
id = "strava"
|
||||
url = "https://www.strava.com/athletes/%s"
|
||||
title = "Strava"
|
||||
icon = "fab fa-strava"
|
115
themes/beautifulhugo/exampleSite/config.toml
Normal file
115
themes/beautifulhugo/exampleSite/config.toml
Normal file
|
@ -0,0 +1,115 @@
|
|||
baseurl = "https://username.github.io"
|
||||
DefaultContentLanguage = "en"
|
||||
#DefaultContentLanguage = "ja"
|
||||
title = "Beautiful Hugo"
|
||||
theme = "beautifulhugo"
|
||||
metaDataFormat = "yaml"
|
||||
pygmentsStyle = "trac"
|
||||
pygmentsUseClasses = true
|
||||
pygmentsCodeFences = true
|
||||
pygmentsCodefencesGuessSyntax = true
|
||||
#pygmentsUseClassic = true
|
||||
#pygmentOptions = "linenos=inline"
|
||||
#disqusShortname = "XXX"
|
||||
#googleAnalytics = "XXX"
|
||||
|
||||
[Params]
|
||||
# homeTitle = "Beautiful Hugo Theme" # Set a different text for the header on the home page
|
||||
subtitle = "Build a beautiful and simple website in minutes"
|
||||
mainSections = ["post","posts"]
|
||||
logo = "img/avatar-icon.png" # Expecting square dimensions
|
||||
favicon = "img/favicon.ico"
|
||||
dateFormat = "January 2, 2006"
|
||||
commit = false
|
||||
rss = true
|
||||
comments = true
|
||||
readingTime = true
|
||||
wordCount = true
|
||||
useHLJS = true
|
||||
socialShare = true
|
||||
delayDisqus = true
|
||||
showRelatedPosts = true
|
||||
# hideAuthor = true
|
||||
# gcse = "012345678901234567890:abcdefghijk" # Get your code from google.com/cse. Make sure to go to "Look and Feel" and change Layout to "Full Width" and Theme to "Classic"
|
||||
|
||||
#[[Params.bigimg]]
|
||||
# src = "img/triangle.jpg"
|
||||
# desc = "Triangle"
|
||||
#[[Params.bigimg]]
|
||||
# src = "img/sphere.jpg"
|
||||
# desc = "Sphere"
|
||||
# # position: see values of CSS background-position.
|
||||
# position = "center top"
|
||||
#[[Params.bigimg]]
|
||||
# src = "img/hexagon.jpg"
|
||||
# desc = "Hexagon"
|
||||
|
||||
[Author]
|
||||
name = "Some Person"
|
||||
website = "yourwebsite.com"
|
||||
email = "youremail@domain.com"
|
||||
facebook = "username"
|
||||
github = "username"
|
||||
gitlab = "username"
|
||||
bitbucket = "username"
|
||||
twitter = "username"
|
||||
reddit = "username"
|
||||
linkedin = "username"
|
||||
xing = "username"
|
||||
stackoverflow = "users/XXXXXXX/username"
|
||||
snapchat = "username"
|
||||
instagram = "username"
|
||||
youtube = "user/username" # or channel/channelname
|
||||
soundcloud = "username"
|
||||
spotify = "username"
|
||||
bandcamp = "username"
|
||||
itchio = "username"
|
||||
vk = "username"
|
||||
paypal = "username"
|
||||
telegram = "username"
|
||||
500px = "username"
|
||||
codepen = "username"
|
||||
mastodon = "url"
|
||||
kaggle = "username"
|
||||
weibo = "username"
|
||||
slack = "username"
|
||||
discord = "invite code (https://discord.gg/XXXXXXX)"
|
||||
strava = "userid"
|
||||
|
||||
[[menu.main]]
|
||||
name = "Blog"
|
||||
url = ""
|
||||
weight = 1
|
||||
|
||||
[[menu.main]]
|
||||
name = "About"
|
||||
url = "page/about/"
|
||||
weight = 3
|
||||
|
||||
[[menu.main]]
|
||||
identifier = "samples"
|
||||
name = "Samples"
|
||||
weight = 2
|
||||
|
||||
[[menu.main]]
|
||||
parent = "samples"
|
||||
name = "Big Image Sample"
|
||||
url = "post/2017-03-07-bigimg-sample"
|
||||
weight = 1
|
||||
|
||||
[[menu.main]]
|
||||
parent = "samples"
|
||||
name = "Math Sample"
|
||||
url = "post/2017-03-05-math-sample"
|
||||
weight = 2
|
||||
|
||||
[[menu.main]]
|
||||
parent = "samples"
|
||||
name = "Code Sample"
|
||||
url = "post/2016-03-08-code-sample"
|
||||
weight = 3
|
||||
|
||||
[[menu.main]]
|
||||
name = "Tags"
|
||||
url = "tags"
|
||||
weight = 3
|
2
themes/beautifulhugo/exampleSite/content/_index.md
Normal file
2
themes/beautifulhugo/exampleSite/content/_index.md
Normal file
|
@ -0,0 +1,2 @@
|
|||
## Front Page Content
|
||||
`beautifulhugo` supports content on your front page. Edit `/content/_index.md` to change what appears here. Delete `/content/_index.md` if you don't want any content here.
|
16
themes/beautifulhugo/exampleSite/content/page/about.md
Normal file
16
themes/beautifulhugo/exampleSite/content/page/about.md
Normal file
|
@ -0,0 +1,16 @@
|
|||
---
|
||||
title: About me
|
||||
subtitle: Why you'd want to go on a date with me
|
||||
comments: false
|
||||
---
|
||||
|
||||
My name is Inigo Montoya. I have the following qualities:
|
||||
|
||||
- I rock a great mustache
|
||||
- I'm extremely loyal to my family
|
||||
|
||||
What else do you need?
|
||||
|
||||
### my history
|
||||
|
||||
To be honest, I'm having some trouble remembering right now, so why don't you just watch [my movie](http://en.wikipedia.org/wiki/The_Princess_Bride_%28film%29) and it will answer **all** your questions.
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: First post!
|
||||
date: 2015-01-05
|
||||
---
|
||||
|
||||
This is my first post, how exciting!
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: Pirates arrrr
|
||||
date: 2015-01-15
|
||||
---
|
||||
|
||||
Piracy is typically an act of robbery or criminal violence at sea. The term can include acts committed on land, in the air, or in other major bodies of water or on a shore. It does not normally include crimes committed against persons traveling on the same vessel as the perpetrator (e.g. one passenger stealing from others on the same vessel). The term has been used throughout history to refer to raids across land borders by non-state agents.
|
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
title: Soccer
|
||||
subtitle: Best sport ever!
|
||||
date: 2015-01-19
|
||||
---
|
||||
|
||||
From Wikipedia:
|
||||
|
||||
Association football, more commonly known as football or soccer,[2] is a sport played between two teams of eleven players with a spherical ball. It is played by 250 million players in over 200 countries, making it the world's most popular sport.[3][4][5][6] The game is played on a rectangular field with a goal at each end. The object of the game is to score by getting the ball into the opposing goal.
|
||||
|
||||
The goalkeepers are the only players allowed to touch the ball with their hands or arms while it is in play and then only in their penalty area. Outfield players mostly use their feet to strike or pass the ball, but may use their head or torso to strike the ball instead. The team that scores the most goals by the end of the match wins. If the score is level at the end of the game, either a draw is declared or the game goes into extra time and/or a penalty shootout depending on the format of the competition. The Laws of the Game were originally codified in England by The Football Association in 1863. Association football is governed internationally by the International Federation of Association Football (FIFA; French: Fédération Internationale de Football Association) which organises a World Cup every four years.[7]
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: Dear diary
|
||||
date: 2015-01-27
|
||||
---
|
||||
|
||||
What is it with that Mary girl? Dragging me to school every day. As if I had a choice. What you don't hear in those nursery rhymes is that she starves me if I don't go to school with her; it's the only way I can stay alive! I'm thinking about being adopted by Little Bo Peep, sure I may get lost, but anything is better than being with Mary and those little brats at school (shudder, shudder).
|
|
@ -0,0 +1,41 @@
|
|||
---
|
||||
title: To be
|
||||
subtitle: ... or not to be?
|
||||
date: 2015-02-13
|
||||
---
|
||||
|
||||
To be, or not to be--that is the question:
|
||||
Whether 'tis nobler in the mind to suffer
|
||||
The slings and arrows of outrageous fortune
|
||||
Or to take arms against a sea of troubles
|
||||
And by opposing end them. To die, to sleep--
|
||||
No more--and by a sleep to say we end
|
||||
The heartache, and the thousand natural shocks
|
||||
That flesh is heir to. 'Tis a consummation
|
||||
Devoutly to be wished. To die, to sleep--
|
||||
To sleep--perchance to dream: ay, there's the rub,
|
||||
For in that sleep of death what dreams may come
|
||||
When we have shuffled off this mortal coil,
|
||||
Must give us pause. There's the respect
|
||||
That makes calamity of so long life.
|
||||
For who would bear the whips and scorns of time,
|
||||
Th' oppressor's wrong, the proud man's contumely
|
||||
The pangs of despised love, the law's delay,
|
||||
The insolence of office, and the spurns
|
||||
That patient merit of th' unworthy takes,
|
||||
When he himself might his quietus make
|
||||
With a bare bodkin? Who would fardels bear,
|
||||
To grunt and sweat under a weary life,
|
||||
But that the dread of something after death,
|
||||
The undiscovered country, from whose bourn
|
||||
No traveller returns, puzzles the will,
|
||||
And makes us rather bear those ills we have
|
||||
Than fly to others that we know not of?
|
||||
Thus conscience does make cowards of us all,
|
||||
And thus the native hue of resolution
|
||||
Is sicklied o'er with the pale cast of thought,
|
||||
And enterprise of great pitch and moment
|
||||
With this regard their currents turn awry
|
||||
And lose the name of action. -- Soft you now,
|
||||
The fair Ophelia! -- Nymph, in thy orisons
|
||||
Be all my sins remembered.
|
|
@ -0,0 +1,35 @@
|
|||
---
|
||||
title: Test markdown
|
||||
subtitle: Each post also has a subtitle
|
||||
date: 2015-02-20
|
||||
tags: ["example", "markdown"]
|
||||
---
|
||||
|
||||
You can write regular [markdown](http://markdowntutorial.com/) here and [Hugo](https://gohugo.io) will automatically convert it to a nice webpage. I strongly encourage you to [take 5 minutes to learn how to write in markdown](http://markdowntutorial.com/) - it'll teach you how to transform regular text into bold/italics/headings/tables/etc.
|
||||
|
||||
**Here is some bold text**
|
||||
|
||||
## Here is a secondary heading
|
||||
|
||||
Here's a useless table:
|
||||
|
||||
| Number | Next number | Previous number |
|
||||
| :------ |:--- | :--- |
|
||||
| Five | Six | Four |
|
||||
| Ten | Eleven | Nine |
|
||||
| Seven | Eight | Six |
|
||||
| Two | Three | One |
|
||||
|
||||
|
||||
How about a yummy crepe?
|
||||
|
||||
![Crepe](http://s3-media3.fl.yelpcdn.com/bphoto/cQ1Yoa75m2yUFFbY2xwuqw/348s.jpg)
|
||||
|
||||
Here's a code chunk with syntax highlighting:
|
||||
|
||||
```javascript
|
||||
var foo = function(x) {
|
||||
return(x + 5);
|
||||
}
|
||||
foo(3)
|
||||
```
|
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
title: Flake it till you make it
|
||||
subtitle: Excerpt from Soulshaping by Jeff Brown
|
||||
date: 2015-02-26
|
||||
bigimg: [{src: "/img/path.jpg", desc: "Path"}]
|
||||
---
|
||||
|
||||
Under what circumstances should we step off a path? When is it essential that we finish what we start? If I bought a bag of peanuts and had an allergic reaction, no one would fault me if I threw it out. If I ended a relationship with a woman who hit me, no one would say that I had a commitment problem. But if I walk away from a seemingly secure route because my soul has other ideas, I am a flake?
|
||||
|
||||
The truth is that no one else can definitively know the path we are here to walk. It’s tempting to listen—many of us long for the omnipotent other—but unless they are genuine psychic intuitives, they can’t know. All others can know is their own truth, and if they’ve actually done the work to excavate it, they will have the good sense to know that they cannot genuinely know anyone else’s. Only soul knows the path it is here to walk. Since you are the only one living in your temple, only you can know its scriptures and interpretive structure.
|
||||
|
||||
At the heart of the struggle are two very different ideas of success—survival-driven and soul-driven. For survivalists, success is security, pragmatism, power over others. Success is the absence of material suffering, the nourishing of the soul be damned. It is an odd and ironic thing that most of the material power in our world often resides in the hands of younger souls. Still working in the egoic and material realms, they love the sensations of power and focus most of their energy on accumulation. Older souls tend not to be as materially driven. They have already played the worldly game in previous lives and they search for more subtle shades of meaning in this one—authentication rather than accumulation. They are often ignored by the culture at large, although they really are the truest warriors.
|
||||
|
||||
A soulful notion of success rests on the actualization of our innate image. Success is simply the completion of a soul step, however unsightly it may be. We have finished what we started when the lesson is learned. What a fear-based culture calls a wonderful opportunity may be fruitless and misguided for the soul. Staying in a passionless relationship may satisfy our need for comfort, but it may stifle the soul. Becoming a famous lawyer is only worthwhile if the soul demands it. It is an essential failure if you are called to be a monastic this time around. If you need to explore and abandon ten careers in order to stretch your soul toward its innate image, then so be it. Flake it till you make it.
|
|
@ -0,0 +1,42 @@
|
|||
---
|
||||
title: Code Sample
|
||||
subtitle: Using Hugo or Pygments
|
||||
date: 2016-03-08
|
||||
tags: ["example", "code"]
|
||||
---
|
||||
|
||||
The following are two code samples using syntax highlighting.
|
||||
|
||||
<!--more-->
|
||||
|
||||
The following is a code sample using triple backticks ( ``` ) code fencing provided in Hugo. This is client side highlighting and does not require any special installation.
|
||||
|
||||
```javascript
|
||||
var num1, num2, sum
|
||||
num1 = prompt("Enter first number")
|
||||
num2 = prompt("Enter second number")
|
||||
sum = parseInt(num1) + parseInt(num2) // "+" means "add"
|
||||
alert("Sum = " + sum) // "+" means combine into a string
|
||||
```
|
||||
|
||||
|
||||
The following is a code sample using the "highlight" shortcode provided in Hugo. This is server side highlighting and requires Python and Pygments to be installed.
|
||||
|
||||
{{< highlight javascript >}}
|
||||
var num1, num2, sum
|
||||
num1 = prompt("Enter first number")
|
||||
num2 = prompt("Enter second number")
|
||||
sum = parseInt(num1) + parseInt(num2) // "+" means "add"
|
||||
alert("Sum = " + sum) // "+" means combine into a string
|
||||
{{</ highlight >}}
|
||||
|
||||
|
||||
And here is the same code with line numbers:
|
||||
|
||||
{{< highlight javascript "linenos=inline">}}
|
||||
var num1, num2, sum
|
||||
num1 = prompt("Enter first number")
|
||||
num2 = prompt("Enter second number")
|
||||
sum = parseInt(num1) + parseInt(num2) // "+" means "add"
|
||||
alert("Sum = " + sum) // "+" means combine into a string
|
||||
{{</ highlight >}}
|
|
@ -0,0 +1,49 @@
|
|||
---
|
||||
title: Math Sample
|
||||
subtitle: Using KaTeX
|
||||
date: 2017-03-05
|
||||
tags: ["example", "math"]
|
||||
---
|
||||
|
||||
KaTeX can be used to generate complex math formulas server-side.
|
||||
|
||||
$$
|
||||
\phi = \frac{(1+\sqrt{5})}{2} = 1.6180339887\cdots
|
||||
$$
|
||||
|
||||
Additional details can be found on [GitHub](https://github.com/Khan/KaTeX) or on the [Wiki](http://tiddlywiki.com/plugins/tiddlywiki/katex/).
|
||||
<!--more-->
|
||||
|
||||
### Example 1
|
||||
|
||||
If the text between $$ contains newlines it will rendered in display mode:
|
||||
```
|
||||
$$
|
||||
f(x) = \int_{-\infty}^\infty\hat f(\xi)\,e^{2 \pi i \xi x}\,d\xi
|
||||
$$
|
||||
```
|
||||
$$
|
||||
f(x) = \int_{-\infty}^\infty\hat f(\xi)\,e^{2 \pi i \xi x}\,d\xi
|
||||
$$
|
||||
|
||||
|
||||
### Example 2
|
||||
```
|
||||
$$
|
||||
\frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} = 1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}} {1+\frac{e^{-8\pi}} {1+\cdots} } } }
|
||||
$$
|
||||
```
|
||||
$$
|
||||
\frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} = 1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}} {1+\frac{e^{-8\pi}} {1+\cdots} } } }
|
||||
$$
|
||||
|
||||
|
||||
### Example 3
|
||||
```
|
||||
$$
|
||||
1 + \frac{q^2}{(1-q)}+\frac{q^6}{(1-q)(1-q^2)}+\cdots = \prod_{j=0}^{\infty}\frac{1}{(1-q^{5j+2})(1-q^{5j+3})}, \quad\quad \text{for }\lvert q\rvert<1.
|
||||
$$
|
||||
```
|
||||
$$
|
||||
1 + \frac{q^2}{(1-q)}+\frac{q^6}{(1-q)(1-q^2)}+\cdots = \prod_{j=0}^{\infty}\frac{1}{(1-q^{5j+2})(1-q^{5j+3})}, \quad\quad \text{for }\lvert q\rvert<1.
|
||||
$$
|
|
@ -0,0 +1,40 @@
|
|||
---
|
||||
title: Big Image Sample
|
||||
subtitle: Using Multiple Images
|
||||
date: 2017-03-07
|
||||
tags: ["example", "bigimg"]
|
||||
bigimg: [{src: "/img/triangle.jpg", desc: "Triangle"}, {src: "/img/sphere.jpg", desc: "Sphere"}, {src: "/img/hexagon.jpg", desc: "Hexagon"}]
|
||||
---
|
||||
|
||||
The image banners at the top of the page are refered to as "bigimg" in this theme. They are optional, and one more more can be specified. If more than one is specified, the images rotate every 10 seconds. In the front matter, bigimgs are specified using an array of hashes.
|
||||
|
||||
<!--more-->
|
||||
|
||||
A single bigimg can be specified in the front matter by the following YAML:
|
||||
```
|
||||
bigimg: [{src: "/img/triangle.jpg", desc: "Triangle"}]
|
||||
```
|
||||
|
||||
Multiple bigimgs can be specified in the front matter by the following YAML:
|
||||
```
|
||||
bigimg: [{src: "/img/triangle.jpg", desc: "Triangle"},
|
||||
{src: "/img/sphere.jpg", desc: "Sphere"},
|
||||
{src: "/img/hexagon.jpg", desc: "Hexagon"}]
|
||||
```
|
||||
|
||||
Also note that the description field is optional, and images could instead be specified by:
|
||||
```
|
||||
bigimg: [{src: "/img/triangle.jpg"},
|
||||
{src: "/img/sphere.jpg"},
|
||||
{src: "/img/hexagon.jpg"}]
|
||||
```
|
||||
|
||||
The above YAML array of hashes were written in "flow" style. However when generating a new page or post with `hugo new post/mypost.md`, hugo may interpret the archetype for bigimg in the default YAML style. Defining multiple bigimg's complete with descriptions in this style would be specified by:
|
||||
```
|
||||
bigimg:
|
||||
- {src: "/img/triangle.jpg", desc: "Triangle"}
|
||||
- {src: "/img/sphere.jpg", desc: "Sphere"}
|
||||
- {src: "/img/hexagon.jpg", desc: "Hexagon"}
|
||||
```
|
||||
|
||||
Additional information can be found [in this YAML tutorial](https://rhnh.net/2011/01/31/yaml-tutorial/).
|
|
@ -0,0 +1,37 @@
|
|||
---
|
||||
title: Photoswipe Gallery Sample
|
||||
subtitle: Making a Gallery
|
||||
date: 2017-03-20
|
||||
tags: ["example", "photoswipe"]
|
||||
---
|
||||
|
||||
Beautiful Hugo adds a few custom shortcodes created by [Li-Wen Yip](https://www.liwen.id.au/heg/) and [Gert-Jan van den Berg](https://github.com/GjjvdBurg/HugoPhotoSwipe) for making galleries with [PhotoSwipe](http://photoswipe.com) .
|
||||
|
||||
{{< gallery caption-effect="fade" >}}
|
||||
{{< figure thumb="-thumb" link="/img/hexagon.jpg" >}}
|
||||
{{< figure thumb="-thumb" link="/img/sphere.jpg" caption="Sphere" >}}
|
||||
{{< figure thumb="-thumb" link="/img/triangle.jpg" caption="Triangle" alt="This is a long comment about a triangle" >}}
|
||||
{{< /gallery >}}
|
||||
|
||||
<!--more-->
|
||||
## Example
|
||||
The above gallery was created using the following shortcodes:
|
||||
```
|
||||
{{</* gallery caption-effect="fade" */>}}
|
||||
{{</* figure thumb="-thumb" link="/img/hexagon.jpg" */>}}
|
||||
{{</* figure thumb="-thumb" link="/img/sphere.jpg" caption="Sphere" */>}}
|
||||
{{</* figure thumb="-thumb" link="/img/triangle.jpg" caption="Triangle" alt="This is a long comment about a triangle" */>}}
|
||||
{{</* /gallery */>}}
|
||||
```
|
||||
|
||||
## Usage
|
||||
For full details please see the [hugo-easy-gallery GitHub](https://github.com/liwenyip/hugo-easy-gallery/) page. Basic usages from above are:
|
||||
|
||||
- Create a gallery with open and close tags `{{</* gallery */>}}` and `{{</* /gallery */>}}`
|
||||
- `{{</* figure src="image.jpg" */>}}` will use `image.jpg` for thumbnail and lightbox
|
||||
- `{{</* figure src="thumb.jpg" link="image.jpg" */>}}` will use `thumb.jpg` for thumbnail and `image.jpg` for lightbox
|
||||
- `{{</* figure thumb="-small" link="image.jpg" */>}}` will use `image-small.jpg` for thumbnail and `image.jpg` for lightbox
|
||||
- All the [features/parameters](https://gohugo.io/extras/shortcodes) of Hugo's built-in `figure` shortcode work as normal, i.e. src, link, title, caption, class, attr (attribution), attrlink, alt
|
||||
- `{{</* gallery caption-effect="fade" */>}}` will fade in captions for all figures in this gallery instead of the default slide-up behavior
|
||||
- Many gallery styles for captions and hover effects exist; view the [hugo-easy-gallery GitHub](https://github.com/liwenyip/hugo-easy-gallery/) for all options
|
||||
- Note that this theme will load the photoswipe gallery theme and scripts by default, no need to load photoswipe on your individual pages
|
|
@ -0,0 +1,7 @@
|
|||
<!--
|
||||
If you want to include any custom html just before </body>, put it in this file.
|
||||
Or you can delete these file if you don't need it.
|
||||
-->
|
||||
<!-- for example, you could include some js libraries:
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vis/4.19.1/vis.js" integrity="sha256-HdIuWBZj4eftihsoDCJoMYjZi6aNVaw7YlUpzKT3ZxI=" crossorigin="anonymous"></script>
|
||||
-->
|
|
@ -0,0 +1,18 @@
|
|||
<!--
|
||||
If you want to include any custom html just before </head>, put it in this file.
|
||||
Or you can delete these file if you don't need it.
|
||||
-->
|
||||
<!-- for example, you could insert this custom css, which makes the bigimg not stretch:
|
||||
<style>
|
||||
.intro-header.big-img, .intro-header.big-img .big-img-transition {
|
||||
-webkit-background-size: contain !important;
|
||||
-moz-background-size: contain !important;
|
||||
background-size: contain !important;
|
||||
-o-background-size: contain !important;
|
||||
background-color: lightgrey;
|
||||
}
|
||||
</style>
|
||||
-->
|
||||
<!-- or you could include some additional css libraries:
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/vis/4.19.1/vis.css" integrity="sha256-I1UoFd33KHIydu88R9owFaQWzwkiZV4hXXug5aYaM28=" crossorigin="anonymous" />
|
||||
-->
|
0
themes/beautifulhugo/exampleSite/static/.gitkeep
Normal file
0
themes/beautifulhugo/exampleSite/static/.gitkeep
Normal file
74
themes/beautifulhugo/i18n/br.yaml
Normal file
74
themes/beautifulhugo/i18n/br.yaml
Normal file
|
@ -0,0 +1,74 @@
|
|||
# Content
|
||||
- id: dateFormat
|
||||
translation: "2 de Janeiro de 2006"
|
||||
- id: shortdateFormat
|
||||
translation: "02/Jan/2006 15:04:05"
|
||||
- id: postedOnDate
|
||||
translation: "Postado em {{ . }}"
|
||||
- id: lastModified
|
||||
translation: "(Ultima modificação em {{ . }})"
|
||||
- id: translationsLabel
|
||||
translation: "Outras linguagens: "
|
||||
- id: translationsSeparator
|
||||
translation: ", "
|
||||
- id: readMore
|
||||
translation: "Saiba mais"
|
||||
- id: olderPosts
|
||||
translation: "Posts antigos"
|
||||
- id: newerPosts
|
||||
translation: "Posts novos"
|
||||
- id: previousPost
|
||||
translation: "Post anterior"
|
||||
- id: nextPost
|
||||
translation: "Próximo Post"
|
||||
- id: readTime
|
||||
translation: "minutos"
|
||||
- id: words
|
||||
translation: "palavras"
|
||||
|
||||
|
||||
# 404 page
|
||||
- id: pageNotFound
|
||||
translation: "Opa, a página não existe"
|
||||
|
||||
# Footer
|
||||
- id: poweredBy # Accepts HTML
|
||||
translation: '<a href="https://gohugo.io">Hugo v{{ .Site.Hugo.Version }}</a> alimentada • Tema <a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a> adaptado de <a href="https://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a>'
|
||||
|
||||
# Navigation
|
||||
- id: toggleNavigation
|
||||
translation: "Ver navegação"
|
||||
- id: languageSwitcherLabel
|
||||
translation: "Idioma"
|
||||
- id: gcseLabelShort
|
||||
translation: "Buscar"
|
||||
- id: gcseLabelLong
|
||||
translation: "Buscar {{ .Site.Title }}"
|
||||
- id: gcseClose
|
||||
translation: "Fechar"
|
||||
|
||||
# Staticman
|
||||
- id: noComment
|
||||
translation: "Sem comentários"
|
||||
- id: oneComment
|
||||
translation: "comentário"
|
||||
- id: moreComment
|
||||
translation: "comentários"
|
||||
- id: useMarkdown
|
||||
translation: "Você pode usar sintaxe MarkDown"
|
||||
- id: yourName
|
||||
translation: "Seu nome"
|
||||
- id: yourEmail
|
||||
translation: "Seu email"
|
||||
- id: yourWebsite
|
||||
translation: "Seu website"
|
||||
|
||||
# Delayed Disqus
|
||||
- id: show
|
||||
translation: "Mostrar"
|
||||
- id: comments
|
||||
translation: "comentários"
|
||||
|
||||
# Related posts
|
||||
- id: seeAlso
|
||||
translation: "Veja também"
|
74
themes/beautifulhugo/i18n/de.yaml
Normal file
74
themes/beautifulhugo/i18n/de.yaml
Normal file
|
@ -0,0 +1,74 @@
|
|||
# Content
|
||||
- id: dateFormat
|
||||
translation: "02.01.2006"
|
||||
- id: shortdateFormat
|
||||
translation: "2 Jan, 2006 15:04:05"
|
||||
- id: postedOnDate
|
||||
translation: "Gepostet am {{ . }}"
|
||||
- id: lastModified
|
||||
translation: "(Zuletzt geändert am {{ . }})"
|
||||
- id: translationsLabel
|
||||
translation: "Andere Sprachen: "
|
||||
- id: translationsSeparator
|
||||
translation: ", "
|
||||
- id: readMore
|
||||
translation: "Mehr"
|
||||
- id: olderPosts
|
||||
translation: "Ältere Posts"
|
||||
- id: newerPosts
|
||||
translation: "Neuere Posts"
|
||||
- id: previousPost
|
||||
translation: "Letzter Post"
|
||||
- id: nextPost
|
||||
translation: "Nächster Post"
|
||||
- id: readTime
|
||||
translation: "Minuten"
|
||||
- id: words
|
||||
translation: "Wörter"
|
||||
|
||||
|
||||
# 404 page
|
||||
- id: pageNotFound
|
||||
translation: "Ups, diese Seite existiert nicht. (404 Error)"
|
||||
|
||||
# Footer
|
||||
- id: poweredBy # Accepts HTML
|
||||
translation: '<a href="https://gohugo.io">Hugo v{{ .Site.Hugo.Version }}</a> angetrieben • Theme <a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a> angepasst von <a href="https://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a>'
|
||||
|
||||
# Navigation
|
||||
- id: toggleNavigation
|
||||
translation: "Navigation"
|
||||
- id: languageSwitcherLabel
|
||||
translation: "Sprache"
|
||||
- id: gcseLabelShort
|
||||
translation: "Suche"
|
||||
- id: gcseLabelLong
|
||||
translation: "Suche {{ .Site.Title }}"
|
||||
- id: gcseClose
|
||||
translation: "Schließen"
|
||||
|
||||
# Staticman
|
||||
- id: noComment
|
||||
translation: "Kein Kommentar"
|
||||
- id: oneComment
|
||||
translation: "Kommentar"
|
||||
- id: moreComment
|
||||
translation: "Kommentare"
|
||||
- id: useMarkdown
|
||||
translation: "Sie können Markdown-Syntax verwenden"
|
||||
- id: yourName
|
||||
translation: "Ihr Name"
|
||||
- id: yourEmail
|
||||
translation: "Ihre Emailadresse"
|
||||
- id: yourWebsite
|
||||
translation: "Ihre Website"
|
||||
|
||||
# Delayed Disqus
|
||||
- id: show
|
||||
translation: "Zeige"
|
||||
- id: comments
|
||||
translation: "Kommentare"
|
||||
|
||||
# Related posts
|
||||
- id: seeAlso
|
||||
translation: "Siehe auch"
|
74
themes/beautifulhugo/i18n/dk.yaml
Normal file
74
themes/beautifulhugo/i18n/dk.yaml
Normal file
|
@ -0,0 +1,74 @@
|
|||
# Content
|
||||
- id: dateFormat
|
||||
translation: "January 2, 2006"
|
||||
- id: shortdateFormat
|
||||
translation: "Jan 2, 2006 15:04:05"
|
||||
- id: postedOnDate
|
||||
translation: "Slået op den {{ .Count }}"
|
||||
- id: lastModified
|
||||
translation: "(Senest redigeret den {{ .Count }})"
|
||||
- id: translationsLabel
|
||||
translation: "Andre sprog: "
|
||||
- id: translationsSeparator
|
||||
translation: ", "
|
||||
- id: readMore
|
||||
translation: "Læs mere"
|
||||
- id: olderPosts
|
||||
translation: "Ældre opslag"
|
||||
- id: newerPosts
|
||||
translation: "Nyere opslag"
|
||||
- id: previousPost
|
||||
translation: "Forrige opslag"
|
||||
- id: nextPost
|
||||
translation: "Næste opslag"
|
||||
- id: readTime
|
||||
translation: "Minutter"
|
||||
- id: words
|
||||
translation: "Ord"
|
||||
|
||||
|
||||
# 404 page
|
||||
- id: pageNotFound
|
||||
translation: "Ups, denne side eksisterer ikke. (404 error)"
|
||||
|
||||
# Footer
|
||||
- id: poweredBy # Accepts HTML
|
||||
translation: '<a href="https://gohugo.io">Hugo v{{ .Site.Hugo.Version }}</a> drevet • Tema <a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a> tilpasset fra <a href="https://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a>'
|
||||
|
||||
# Navigation
|
||||
- id: toggleNavigation
|
||||
translation: "Navigation"
|
||||
- id: languageSwitcherLabel
|
||||
translation: "Sprog"
|
||||
- id: gcseLabelShort
|
||||
translation: "Søg"
|
||||
- id: gcseLabelLong
|
||||
translation: "Søg {{ .Site.Title }}"
|
||||
- id: gcseClose
|
||||
translation: "Luk"
|
||||
|
||||
# Staticman
|
||||
- id: noComment
|
||||
translation: "Ingen kommentar"
|
||||
- id: oneComment
|
||||
translation: "Kommentar"
|
||||
- id: moreComment
|
||||
translation: "Kommentarer"
|
||||
- id: useMarkdown
|
||||
translation: "Du kan anvende Markdown syntax"
|
||||
- id: yourName
|
||||
translation: "Dit navn"
|
||||
- id: yourEmail
|
||||
translation: "Din emailadresse"
|
||||
- id: yourWebsite
|
||||
translation: "Din hjemmeside"
|
||||
|
||||
# Delayed Disqus
|
||||
- id: show
|
||||
translation: "Vis"
|
||||
- id: comments
|
||||
translation: "Kommentarer"
|
||||
|
||||
# Related posts
|
||||
- id: seeAlso
|
||||
translation: "Se også"
|
74
themes/beautifulhugo/i18n/en.yaml
Normal file
74
themes/beautifulhugo/i18n/en.yaml
Normal file
|
@ -0,0 +1,74 @@
|
|||
# Content
|
||||
- id: dateFormat
|
||||
translation: "January 2, 2006"
|
||||
- id: shortdateFormat
|
||||
translation: "Jan 2, 2006 15:04:05"
|
||||
- id: postedOnDate
|
||||
translation: "Posted on {{ . }}"
|
||||
- id: lastModified
|
||||
translation: "(Last modified on {{ . }})"
|
||||
- id: translationsLabel
|
||||
translation: "Other languages: "
|
||||
- id: translationsSeparator
|
||||
translation: ", "
|
||||
- id: readMore
|
||||
translation: "Read More"
|
||||
- id: olderPosts
|
||||
translation: "Older Posts"
|
||||
- id: newerPosts
|
||||
translation: "Newer Posts"
|
||||
- id: previousPost
|
||||
translation: "Previous Post"
|
||||
- id: nextPost
|
||||
translation: "Next Post"
|
||||
- id: readTime
|
||||
translation: "minutes"
|
||||
- id: words
|
||||
translation: "words"
|
||||
|
||||
|
||||
# 404 page
|
||||
- id: pageNotFound
|
||||
translation: "Whoops, this page doesn't exist. Move along. (404 error)"
|
||||
|
||||
# Footer
|
||||
- id: poweredBy # Accepts HTML
|
||||
translation: '<a href="https://gohugo.io">Hugo v{{ .Site.Hugo.Version }}</a> powered • Theme <a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a> adapted from <a href="https://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a>'
|
||||
|
||||
# Navigation
|
||||
- id: toggleNavigation
|
||||
translation: "Toggle navigation"
|
||||
- id: languageSwitcherLabel
|
||||
translation: "Language"
|
||||
- id: gcseLabelShort
|
||||
translation: "Search"
|
||||
- id: gcseLabelLong
|
||||
translation: "Search {{ .Site.Title }}"
|
||||
- id: gcseClose
|
||||
translation: "Close"
|
||||
|
||||
# Staticman
|
||||
- id: noComment
|
||||
translation: "No comment"
|
||||
- id: oneComment
|
||||
translation: "comment"
|
||||
- id: moreComment
|
||||
translation: "comments"
|
||||
- id: useMarkdown
|
||||
translation: "You can use Markdown syntax"
|
||||
- id: yourName
|
||||
translation: "Your name"
|
||||
- id: yourEmail
|
||||
translation: "Your email address"
|
||||
- id: yourWebsite
|
||||
translation: "Your website"
|
||||
|
||||
# Delayed Disqus
|
||||
- id: show
|
||||
translation: "Show"
|
||||
- id: comments
|
||||
translation: "comments"
|
||||
|
||||
# Related posts
|
||||
- id: seeAlso
|
||||
translation: "See also"
|
74
themes/beautifulhugo/i18n/eo.yaml
Normal file
74
themes/beautifulhugo/i18n/eo.yaml
Normal file
|
@ -0,0 +1,74 @@
|
|||
# Content
|
||||
- id: dateFormat
|
||||
translation: "2006-01-02"
|
||||
- id: shortdateFormat
|
||||
translation: "2 Jan, 2006 15:04:05"
|
||||
- id: postedOnDate
|
||||
translation: "Afiŝiĝis je {{ . }}"
|
||||
- id: lastModified
|
||||
translation: "(Laste aliiĝis je {{ . }})"
|
||||
- id: translationsLabel
|
||||
translation: "Aliaj lingvoj: "
|
||||
- id: translationsSeparator
|
||||
translation: ", "
|
||||
- id: readMore
|
||||
translation: "Legi pli"
|
||||
- id: olderPosts
|
||||
translation: "Plimalnovaj afiŝoj"
|
||||
- id: newerPosts
|
||||
translation: "Plinovaj afiŝoj"
|
||||
- id: previousPost
|
||||
translation: "Antaŭa afiŝo"
|
||||
- id: nextPost
|
||||
translation: "Sekva afiŝo"
|
||||
- id: readTime
|
||||
translation: "minutoj"
|
||||
- id: words
|
||||
translation: "vortoj"
|
||||
|
||||
|
||||
# 404 page
|
||||
- id: pageNotFound
|
||||
translation: "Ups, ĉi tiu paĝo ne ekzistas. (404 Error)"
|
||||
|
||||
# Footer
|
||||
- id: poweredBy # Accepts HTML
|
||||
translation: '<a href="https://gohugo.io">Hugo v{{ .Site.Hugo.Version }}</a>-povigita • Haŭto de <a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a> adaptiĝis de <a href="https://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a>'
|
||||
|
||||
# Navigation
|
||||
- id: toggleNavigation
|
||||
translation: "Navigacio"
|
||||
- id: languageSwitcherLabel
|
||||
translation: "Lingvo"
|
||||
- id: gcseLabelShort
|
||||
translation: "Serĉi"
|
||||
- id: gcseLabelLong
|
||||
translation: "Serĉi {{ .Site.Title }}"
|
||||
- id: gcseClose
|
||||
translation: "Fermi"
|
||||
|
||||
# Staticman
|
||||
- id: noComment
|
||||
translation: "Sen komentoj"
|
||||
- id: oneComment
|
||||
translation: "komento"
|
||||
- id: moreComment
|
||||
translation: "komentoj"
|
||||
- id: useMarkdown
|
||||
translation: "Vi povus uzi Markdown-sintakson"
|
||||
- id: yourName
|
||||
translation: "Via nomo"
|
||||
- id: yourEmail
|
||||
translation: "Via retpoŝtadreso"
|
||||
- id: yourWebsite
|
||||
translation: "Via retpaĝaro"
|
||||
|
||||
# Delayed Disqus
|
||||
- id: show
|
||||
translation: "Montru"
|
||||
- id: comments
|
||||
translation: "komentoj"
|
||||
|
||||
# Related posts
|
||||
- id: seeAlso
|
||||
translation: "Vidu ankaŭ"
|
74
themes/beautifulhugo/i18n/es.yaml
Normal file
74
themes/beautifulhugo/i18n/es.yaml
Normal file
|
@ -0,0 +1,74 @@
|
|||
# Content
|
||||
- id: dateFormat
|
||||
translation: "2 de enero, 2006"
|
||||
- id: shortdateFormat
|
||||
translation: "2 Jan, 2006 15:04:05"
|
||||
- id: postedOnDate
|
||||
translation: "Publicado el {{ . }}"
|
||||
- id: lastModified
|
||||
translation: "(Última modificación en {{ . }})"
|
||||
- id: translationsLabel
|
||||
translation: "Otros idiomas: "
|
||||
- id: translationsSeparator
|
||||
translation: ", "
|
||||
- id: readMore
|
||||
translation: "Leer más"
|
||||
- id: olderPosts
|
||||
translation: "Artículos anteriores"
|
||||
- id: newerPosts
|
||||
translation: "Artículos siguientes"
|
||||
- id: previousPost
|
||||
translation: "Artículo anterior"
|
||||
- id: nextPost
|
||||
translation: "Artículo siguiente"
|
||||
- id: readTime
|
||||
translation: "minutos"
|
||||
- id: words
|
||||
translation: "palabras"
|
||||
|
||||
|
||||
# 404 page
|
||||
- id: pageNotFound
|
||||
translation: "¡Vaya! Esta página no existe (error 404)"
|
||||
|
||||
# Footer
|
||||
- id: poweredBy # Accepts HTML
|
||||
translation: '<a href="https://gohugo.io">Hugo v{{ .Site.Hugo.Version }}</a> alimentada • Tema <a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a> adaptado de <a href="https://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a>'
|
||||
|
||||
# Navigation
|
||||
- id: toggleNavigation
|
||||
translation: "Conmuta navegación"
|
||||
- id: languageSwitcherLabel
|
||||
translation: "Idioma"
|
||||
- id: gcseLabelShort
|
||||
translation: "Buscar"
|
||||
- id: gcseLabelLong
|
||||
translation: "Buscar en {{ .Site.Title }}"
|
||||
- id: gcseClose
|
||||
translation: "Cerrar"
|
||||
|
||||
# Staticman
|
||||
- id: noComment
|
||||
translation: "Sin comentarios"
|
||||
- id: oneComment
|
||||
translation: "comentario"
|
||||
- id: moreComment
|
||||
translation: "comentarios"
|
||||
- id: useMarkdown
|
||||
translation: "Puedes usar la sintaxis de Markdown"
|
||||
- id: yourName
|
||||
translation: "Tu nombre"
|
||||
- id: yourEmail
|
||||
translation: "Tu correo electrónico"
|
||||
- id: yourWebsite
|
||||
translation: "Tu sitio web"
|
||||
|
||||
# Delayed Disqus
|
||||
- id: show
|
||||
translation: "Mostrar"
|
||||
- id: comments
|
||||
translation: "comentarios"
|
||||
|
||||
# Related posts
|
||||
- id: seeAlso
|
||||
translation: "Ver también"
|
76
themes/beautifulhugo/i18n/fr.yaml
Normal file
76
themes/beautifulhugo/i18n/fr.yaml
Normal file
|
@ -0,0 +1,76 @@
|
|||
# Content
|
||||
- id: dateFormat
|
||||
translation: "2·01·2006"
|
||||
- id: shortdateFormat
|
||||
translation: "2·01·2006 - 15:04:05"
|
||||
- id: postedOnDate
|
||||
translation: "Publié le {{ . }}"
|
||||
- id: lastModified
|
||||
translation: "(Mise à jour le {{ . }})"
|
||||
- id: translationsLabel
|
||||
translation: "Traductions : "
|
||||
- id: translationsSeparator
|
||||
translation: ", "
|
||||
- id: readMore
|
||||
translation: "Lire"
|
||||
- id: olderPosts
|
||||
translation: "Anciens posts"
|
||||
- id: newerPosts
|
||||
translation: "Nouveaux posts"
|
||||
- id: previousPost
|
||||
translation: "Post précédent"
|
||||
- id: nextPost
|
||||
translation: "Post suivant"
|
||||
- id: readTime
|
||||
translation: "minutes"
|
||||
- id: words
|
||||
translation: "mots"
|
||||
|
||||
|
||||
# 404 page
|
||||
- id: pageNotFound
|
||||
translation: "Oups, cette page n'existe pas. (erreur 404)"
|
||||
|
||||
# Footer
|
||||
- id: poweredBy # Accepts HTML
|
||||
translation: 'Carbure avec <a href="https://gohugo.io">Hugo v{{ .Site.Hugo.Version }}</a> • Avec le Theme <a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a> adapté de <a href="https://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a>'
|
||||
|
||||
# Navigation
|
||||
- id: toggleNavigation
|
||||
translation: "Activer la navigation"
|
||||
- id: languageSwitcherLabel
|
||||
translation: "Langue"
|
||||
- id: gcseLabelShort
|
||||
translation: "Rechercher"
|
||||
- id: gcseLabelLong
|
||||
translation: "Rechercher {{ .Site.Title }}"
|
||||
- id: gcseClose
|
||||
translation: "Fermer"
|
||||
|
||||
# Staticman
|
||||
- id: noComment
|
||||
translation: "Pas de commentaire"
|
||||
- id: oneComment
|
||||
translation: "commentaire"
|
||||
- id: moreComment
|
||||
translation: "commentaires"
|
||||
- id: useMarkdown
|
||||
translation: "Rédigez votre commentaire ici. (Vous pouvez utiliser la syntaxe Markdown)"
|
||||
- id: yourName
|
||||
translation: "Votre nom"
|
||||
- id: yourEmail
|
||||
translation: "Votre adresse mail"
|
||||
- id: yourWebsite
|
||||
translation: "Votre site web"
|
||||
- id: sendComment
|
||||
translation: "Envoyer"
|
||||
|
||||
# Delayed Disqus
|
||||
- id: show
|
||||
translation: "Afficher"
|
||||
- id: comments
|
||||
translation: "commentaires"
|
||||
|
||||
# Related posts
|
||||
- id: seeAlso
|
||||
translation: "Suggestions de lecture :"
|
74
themes/beautifulhugo/i18n/hr.yaml
Normal file
74
themes/beautifulhugo/i18n/hr.yaml
Normal file
|
@ -0,0 +1,74 @@
|
|||
# Content
|
||||
- id: dateFormat
|
||||
translation: "Siječanj 2, 2006"
|
||||
- id: shortdateFormat
|
||||
translation: "Sij 2, 2006 15:04:05"
|
||||
- id: postedOnDate
|
||||
translation: "Obajvljeno na {{ .Count }}"
|
||||
- id: lastModified
|
||||
translation: "(Zadnja promjena na {{ .Count }})"
|
||||
- id: translationsLabel
|
||||
translation: "Ostali jezici: "
|
||||
- id: translationsSeparator
|
||||
translation: ", "
|
||||
- id: readMore
|
||||
translation: "Pročitaj više"
|
||||
- id: olderPosts
|
||||
translation: "Starije objave"
|
||||
- id: newerPosts
|
||||
translation: "Novije objave"
|
||||
- id: previousPost
|
||||
translation: "Prethodna objava"
|
||||
- id: nextPost
|
||||
translation: "Slijedeća objava"
|
||||
- id: readTime
|
||||
translation: "minuta"
|
||||
- id: words
|
||||
translation: "riječi"
|
||||
|
||||
|
||||
# 404 page
|
||||
- id: pageNotFound
|
||||
translation: "Whoops, ova stranica ne postoji. Idemo dalje. (404 error)"
|
||||
|
||||
# Footer
|
||||
- id: poweredBy # Accepts HTML
|
||||
translation: '<a href="https://gohugo.io">Pokreće Hugo v{{ .Site.Hugo.Version }}</a> • Tema <a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a> prilagođena od <a href="https://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a>'
|
||||
|
||||
# Navigation
|
||||
- id: toggleNavigation
|
||||
translation: "Uključi/isključi navigaciju"
|
||||
- id: languageSwitcherLabel
|
||||
translation: "Jezik"
|
||||
- id: gcseLabelShort
|
||||
translation: "Traži"
|
||||
- id: gcseLabelLong
|
||||
translation: "Traži {{ .Site.Title }}"
|
||||
- id: gcseClose
|
||||
translation: "Zatvori"
|
||||
|
||||
# Staticman
|
||||
- id: noComment
|
||||
translation: "Nema komenatara"
|
||||
- id: oneComment
|
||||
translation: "komentar"
|
||||
- id: moreComment
|
||||
translation: "komenatari"
|
||||
- id: useMarkdown
|
||||
translation: "Možete koristiti Markdown sintaksu"
|
||||
- id: yourName
|
||||
translation: "Vaše ime"
|
||||
- id: yourEmail
|
||||
translation: "Vaša email adresa"
|
||||
- id: yourWebsite
|
||||
translation: "You web stranica"
|
||||
|
||||
# Delayed Disqus
|
||||
- id: show
|
||||
translation: "Pokaži"
|
||||
- id: comments
|
||||
translation: "komentari"
|
||||
|
||||
# Related posts
|
||||
- id: seeAlso
|
||||
translation: "Također vidi"
|
74
themes/beautifulhugo/i18n/it.yaml
Normal file
74
themes/beautifulhugo/i18n/it.yaml
Normal file
|
@ -0,0 +1,74 @@
|
|||
# Content
|
||||
- id: dateFormat
|
||||
translation: "2 January 2006"
|
||||
- id: shortdateFormat
|
||||
translation: "2 Jan 2006 15:04:05"
|
||||
- id: postedOnDate
|
||||
translation: "Pubblicato il {{ . }}"
|
||||
- id: lastModified
|
||||
translation: "(Ultima modifica il {{ . }})"
|
||||
- id: translationsLabel
|
||||
translation: "Altre lingue: "
|
||||
- id: translationsSeparator
|
||||
translation: ", "
|
||||
- id: readMore
|
||||
translation: "Leggi"
|
||||
- id: olderPosts
|
||||
translation: "Articoli più vecchi"
|
||||
- id: newerPosts
|
||||
translation: "Articoli più recenti"
|
||||
- id: previousPost
|
||||
translation: "Articolo precedente"
|
||||
- id: nextPost
|
||||
translation: "Articolo successivo"
|
||||
- id: readTime
|
||||
translation: "minuti"
|
||||
- id: words
|
||||
translation: "parole"
|
||||
|
||||
|
||||
# 404 page
|
||||
- id: pageNotFound
|
||||
translation: "Ops, questa pagina non esiste. (errore 404)"
|
||||
|
||||
# Footer
|
||||
- id: poweredBy # Accepts HTML
|
||||
translation: '<a href="https://gohugo.io">Sviluppato con Hugo v{{ .Site.Hugo.Version }}</a> • Tema <a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a> adattato da <a href="https://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a>'
|
||||
|
||||
# Navigation
|
||||
- id: toggleNavigation
|
||||
translation: "Menu"
|
||||
- id: languageSwitcherLabel
|
||||
translation: "Lingua"
|
||||
- id: gcseLabelShort
|
||||
translation: "Cerca"
|
||||
- id: gcseLabelLong
|
||||
translation: "Cerca {{ .Site.Title }}"
|
||||
- id: gcseClose
|
||||
translation: "Chiudi"
|
||||
|
||||
# Staticman
|
||||
- id: noComment
|
||||
translation: "Nessun commento"
|
||||
- id: oneComment
|
||||
translation: "commento"
|
||||
- id: moreComment
|
||||
translation: "commenti"
|
||||
- id: useMarkdown
|
||||
translation: "Puoi usare la sintassi Markdown"
|
||||
- id: yourName
|
||||
translation: "Il tuo nome"
|
||||
- id: yourEmail
|
||||
translation: "Il tuo indirizzo mail"
|
||||
- id: yourWebsite
|
||||
translation: "Il tuo website"
|
||||
|
||||
# Delayed Disqus
|
||||
- id: show
|
||||
translation: "Mostra"
|
||||
- id: comments
|
||||
translation: "commenti"
|
||||
|
||||
# Related posts
|
||||
- id: seeAlso
|
||||
translation: "Vedi anche"
|
74
themes/beautifulhugo/i18n/ja.yaml
Normal file
74
themes/beautifulhugo/i18n/ja.yaml
Normal file
|
@ -0,0 +1,74 @@
|
|||
# Content
|
||||
- id: dateFormat
|
||||
translation: "2006年1月2日"
|
||||
- id: shortdateFormat
|
||||
translation: "2 Jan, 2006 15:04:05"
|
||||
- id: postedOnDate
|
||||
translation: "{{ . }}に投稿"
|
||||
- id: lastModified
|
||||
translation: "(最終更新日時{{ . }})"
|
||||
- id: translationsLabel
|
||||
translation: "翻訳:"
|
||||
- id: translationsSeparator
|
||||
translation: "・"
|
||||
- id: readMore
|
||||
translation: "続きを読む"
|
||||
- id: olderPosts
|
||||
translation: "古いページ"
|
||||
- id: newerPosts
|
||||
translation: "新しいページ"
|
||||
- id: previousPost
|
||||
translation: "前ページ"
|
||||
- id: nextPost
|
||||
translation: "次ページ"
|
||||
- id: readTime
|
||||
translation: "分間"
|
||||
- id: words
|
||||
translation: "言葉"
|
||||
|
||||
|
||||
# 404 page
|
||||
- id: pageNotFound
|
||||
translation: "おっと、このページが存在しない。他にあたってください。(404エラー)"
|
||||
|
||||
# Footer
|
||||
- id: poweredBy # Accepts HTML
|
||||
translation: '起動力に<a href="https://gohugo.io">Hugo v{{ .Site.Hugo.Version }}</a> • テーマに<a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a>に基づいている<a href="https://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a>'
|
||||
|
||||
# Navigation
|
||||
- id: toggleNavigation
|
||||
translation: "メニューを切り替え"
|
||||
- id: languageSwitcherLabel
|
||||
translation: "言語"
|
||||
- id: gcseLabelShort
|
||||
translation: "検索"
|
||||
- id: gcseLabelLong
|
||||
translation: "{{ .Site.Title }}を検索"
|
||||
- id: gcseClose
|
||||
translation: "閉じる"
|
||||
|
||||
# Staticman
|
||||
- id: noComment
|
||||
translation: "0 件のコメント"
|
||||
- id: oneComment
|
||||
translation: "件のコメント"
|
||||
- id: moreComment
|
||||
translation: "件のコメント"
|
||||
- id: useMarkdown
|
||||
translation: "Markdown を使用できます"
|
||||
- id: yourName
|
||||
translation: "名前"
|
||||
- id: yourEmail
|
||||
translation: "メールアドレス"
|
||||
- id: yourWebsite
|
||||
translation: "ウェブサイト"
|
||||
|
||||
# Delayed Disqus
|
||||
- id: show
|
||||
translation: "ショー"
|
||||
- id: comments
|
||||
translation: "コメント"
|
||||
|
||||
# Related posts
|
||||
- id: seeAlso
|
||||
translation: "も参照してください"
|
74
themes/beautifulhugo/i18n/ko.yaml
Normal file
74
themes/beautifulhugo/i18n/ko.yaml
Normal file
|
@ -0,0 +1,74 @@
|
|||
# Content
|
||||
- id: dateFormat
|
||||
translation: "2006년 1월 2일"
|
||||
- id: shortdateFormat
|
||||
translation: "2006. 1. 2. 15:04:05"
|
||||
- id: postedOnDate
|
||||
translation: "{{ .Count }}에 게시됨"
|
||||
- id: lastModified
|
||||
translation: "({{ .Count }}에 마지막으로 수정됨)"
|
||||
- id: translationsLabel
|
||||
translation: "다른 언어: "
|
||||
- id: translationsSeparator
|
||||
translation: ", "
|
||||
- id: readMore
|
||||
translation: "더 읽기"
|
||||
- id: olderPosts
|
||||
translation: "이전 페이지"
|
||||
- id: newerPosts
|
||||
translation: "다음 페이지"
|
||||
- id: previousPost
|
||||
translation: "이전 글"
|
||||
- id: nextPost
|
||||
translation: "다음 글"
|
||||
- id: readTime
|
||||
translation: "분"
|
||||
- id: words
|
||||
translation: "단어"
|
||||
|
||||
|
||||
# 404 page
|
||||
- id: pageNotFound
|
||||
translation: "이런, 이 페이지를 찾을 수 없어요. (404 오류)"
|
||||
|
||||
# Footer
|
||||
- id: poweredBy # Accepts HTML
|
||||
translation: '<a href="https://gohugo.io">Hugo v{{ .Site.Hugo.Version }}</a> 을 사용함 • <a href="https://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a> 를 개조한 <a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a> 테마'
|
||||
|
||||
# Navigation
|
||||
- id: toggleNavigation
|
||||
translation: "네비게이션 토글"
|
||||
- id: languageSwitcherLabel
|
||||
translation: "언어"
|
||||
- id: gcseLabelShort
|
||||
translation: "검색"
|
||||
- id: gcseLabelLong
|
||||
translation: "{{ .Site.Title }}에서 검색"
|
||||
- id: gcseClose
|
||||
translation: "닫기"
|
||||
|
||||
# Staticman
|
||||
- id: noComment
|
||||
translation: "댓글이 없습니다."
|
||||
- id: oneComment
|
||||
translation: "개의 댓글"
|
||||
- id: moreComment
|
||||
translation: "개의 댓글들"
|
||||
- id: useMarkdown
|
||||
translation: "마크다운 문법을 쓸 수 있습니다."
|
||||
- id: yourName
|
||||
translation: "이름"
|
||||
- id: yourEmail
|
||||
translation: "이메일"
|
||||
- id: yourWebsite
|
||||
translation: "웹사이트"
|
||||
|
||||
# Delayed Disqus
|
||||
- id: show
|
||||
translation: "표시"
|
||||
- id: comments
|
||||
translation: "댓글들"
|
||||
|
||||
# Related posts
|
||||
- id: seeAlso
|
||||
translation: "더 보면 좋을 글들"
|
297
themes/beautifulhugo/i18n/lmo.yaml
Normal file
297
themes/beautifulhugo/i18n/lmo.yaml
Normal file
|
@ -0,0 +1,297 @@
|
|||
|
||||
|
||||
# Content
|
||||
|
||||
- id: dateFormat
|
||||
|
||||
translation: "2 January 2006"
|
||||
|
||||
- id: shortdateFormat
|
||||
|
||||
translation: "2 Jan 2006 15:04:05"
|
||||
|
||||
- id: postedOnDate
|
||||
|
||||
translation: "Publegaa il {{ .Count }}"
|
||||
|
||||
- id: lastModified
|
||||
|
||||
translation: "(Darrera modifega ell {{ .Count }})"
|
||||
|
||||
- id: translationsLabel
|
||||
|
||||
translation: "Alter lengov: "
|
||||
|
||||
- id: translationsSeparator
|
||||
|
||||
translation: ", "
|
||||
|
||||
- id: readMore
|
||||
|
||||
translation: "Lensg"
|
||||
|
||||
- id: olderPosts
|
||||
|
||||
translation: "Articol pussee vegg"
|
||||
|
||||
- id: newerPosts
|
||||
|
||||
translation: "Articoli pussee noeuv"
|
||||
|
||||
- id: previousPost
|
||||
|
||||
translation: "Articolo de prima"
|
||||
|
||||
- id: nextPost
|
||||
|
||||
translation: "Articolo dopo"
|
||||
|
||||
- id: readTime
|
||||
|
||||
translation: "megnuu"
|
||||
|
||||
- id: words
|
||||
|
||||
translation: "paroll"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# 404 page
|
||||
|
||||
- id: pageNotFound
|
||||
|
||||
translation: "Ocio, quella pagina chi la esist no. (errore 404)"
|
||||
|
||||
|
||||
|
||||
# Footer
|
||||
|
||||
- id: poweredBy # Accepts HTML
|
||||
|
||||
translation: '<a href="https://gohugo.io">Desviluppaa con Hugo v{{ .Site.Hugo.Version }}</a> • Tema <a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a> adattaa de <a href="https://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a>'
|
||||
|
||||
|
||||
|
||||
# Navigation
|
||||
|
||||
- id: toggleNavigation
|
||||
|
||||
translation: "Attiva/disattiva la navigazion"
|
||||
|
||||
- id: languageSwitcherLabel
|
||||
|
||||
translation: "Lengua"
|
||||
|
||||
- id: gcseLabelShort
|
||||
|
||||
translation: "Cerca"
|
||||
|
||||
- id: gcseLabelLong
|
||||
|
||||
translation: "Cerca {{ .Site.Title }}"
|
||||
|
||||
- id: gcseClose
|
||||
|
||||
translation: "Sara su"
|
||||
|
||||
|
||||
|
||||
# Staticman
|
||||
|
||||
- id: noComment
|
||||
|
||||
translation: "Nissub comment"
|
||||
|
||||
- id: oneComment
|
||||
|
||||
translation: "comment"
|
||||
|
||||
- id: moreComment
|
||||
|
||||
translation: "comment"
|
||||
|
||||
- id: useMarkdown
|
||||
|
||||
translation: "Te pòdet doperà la sintassi Markdown"
|
||||
|
||||
- id: yourName
|
||||
|
||||
translation: "El tò nomm"
|
||||
|
||||
- id: yourEmail
|
||||
|
||||
translation: "La toa adressa e-mail"
|
||||
|
||||
- id: yourWebsite
|
||||
|
||||
translation: "El tò sitt web"
|
||||
|
||||
|
||||
|
||||
# Delayed Disqus
|
||||
|
||||
- id: show
|
||||
|
||||
translation: "Mostra"
|
||||
|
||||
- id: comments
|
||||
|
||||
translation: "comment"
|
||||
|
||||
|
||||
|
||||
# Related posts
|
||||
|
||||
- id: seeAlso
|
||||
|
||||
translation: "Varda anca"
|
||||
|
||||
# Content
|
||||
|
||||
- id: dateFormat
|
||||
|
||||
translation: "2 January 2006"
|
||||
|
||||
- id: shortdateFormat
|
||||
|
||||
translation: "2 Jan 2006 15:04:05"
|
||||
|
||||
- id: postedOnDate
|
||||
|
||||
translation: "Publegaa il {{ .Count }}"
|
||||
|
||||
- id: lastModified
|
||||
|
||||
translation: "(Darrera modifega ell {{ .Count }})"
|
||||
|
||||
- id: translationsLabel
|
||||
|
||||
translation: "Alter lengov: "
|
||||
|
||||
- id: translationsSeparator
|
||||
|
||||
translation: ", "
|
||||
|
||||
- id: readMore
|
||||
|
||||
translation: "Lensg"
|
||||
|
||||
- id: olderPosts
|
||||
|
||||
translation: "Articol pussee vegg"
|
||||
|
||||
- id: newerPosts
|
||||
|
||||
translation: "Articoli pussee noeuv"
|
||||
|
||||
- id: previousPost
|
||||
|
||||
translation: "Articolo de prima"
|
||||
|
||||
- id: nextPost
|
||||
|
||||
translation: "Articolo dopo"
|
||||
|
||||
- id: readTime
|
||||
|
||||
translation: "megnuu"
|
||||
|
||||
- id: words
|
||||
|
||||
translation: "paroll"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# 404 page
|
||||
|
||||
- id: pageNotFound
|
||||
|
||||
translation: "Ocio, quella pagina chi la esist no. (errore 404)"
|
||||
|
||||
|
||||
|
||||
# Footer
|
||||
|
||||
- id: poweredBy # Accepts HTML
|
||||
|
||||
translation: '<a href="https://gohugo.io">Desviluppaa con Hugo v{{ .Site.Hugo.Version }}</a> • Tema <a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a> adattaa de <a href="https://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a>'
|
||||
|
||||
|
||||
|
||||
# Navigation
|
||||
|
||||
- id: toggleNavigation
|
||||
|
||||
translation: "Attiva/disattiva la navigazion"
|
||||
|
||||
- id: languageSwitcherLabel
|
||||
|
||||
translation: "Lengua"
|
||||
|
||||
- id: gcseLabelShort
|
||||
|
||||
translation: "Cerca"
|
||||
|
||||
- id: gcseLabelLong
|
||||
|
||||
translation: "Cerca {{ .Site.Title }}"
|
||||
|
||||
- id: gcseClose
|
||||
|
||||
translation: "Sara su"
|
||||
|
||||
|
||||
|
||||
# Staticman
|
||||
|
||||
- id: noComment
|
||||
|
||||
translation: "Nissub comment"
|
||||
|
||||
- id: oneComment
|
||||
|
||||
translation: "comment"
|
||||
|
||||
- id: moreComment
|
||||
|
||||
translation: "comment"
|
||||
|
||||
- id: useMarkdown
|
||||
|
||||
translation: "Te pòdet doperà la sintassi Markdown"
|
||||
|
||||
- id: yourName
|
||||
|
||||
translation: "El tò nomm"
|
||||
|
||||
- id: yourEmail
|
||||
|
||||
translation: "La toa adressa e-mail"
|
||||
|
||||
- id: yourWebsite
|
||||
|
||||
translation: "El tò sitt web"
|
||||
|
||||
|
||||
|
||||
# Delayed Disqus
|
||||
|
||||
- id: show
|
||||
|
||||
translation: "Mostra"
|
||||
|
||||
- id: comments
|
||||
|
||||
translation: "comment"
|
||||
|
||||
|
||||
|
||||
# Related posts
|
||||
|
||||
- id: seeAlso
|
||||
|
||||
translation: "Varda anca"
|
74
themes/beautifulhugo/i18n/nb.yaml
Normal file
74
themes/beautifulhugo/i18n/nb.yaml
Normal file
|
@ -0,0 +1,74 @@
|
|||
# Content
|
||||
- id: dateFormat
|
||||
translation: "02.01.2006"
|
||||
- id: shortdateFormat
|
||||
translation: "2 Jan, 2006 15:04:05"
|
||||
- id: postedOnDate
|
||||
translation: "Postet {{ . }}"
|
||||
- id: lastModified
|
||||
translation: "(Sist endret {{ . }})"
|
||||
- id: translationsLabel
|
||||
translation: "Andre språk: "
|
||||
- id: translationsSeparator
|
||||
translation: ", "
|
||||
- id: readMore
|
||||
translation: "Les Mer"
|
||||
- id: olderPosts
|
||||
translation: "Eldre Poster"
|
||||
- id: newerPosts
|
||||
translation: "Nyere Poster"
|
||||
- id: previousPost
|
||||
translation: "Forrige Post"
|
||||
- id: nextPost
|
||||
translation: "Neste Post"
|
||||
- id: readTime
|
||||
translation: "minutter"
|
||||
- id: words
|
||||
translation: "ord"
|
||||
|
||||
|
||||
# 404 page
|
||||
- id: pageNotFound
|
||||
translation: "Oisann! Denne siden finnes visst ikke. Prøv noe annet. (404 feil)"
|
||||
|
||||
# Footer
|
||||
- id: poweredBy # Accepts HTML
|
||||
translation: 'Kjører på <a href="https://gohugo.io">Hugo v{{ .Site.Hugo.Version }}</a> • Tema fra <a href="https://github.com/halogenica/beautifulhugo">Beautiful Hugo</a> tilpasset fra <a href="https://deanattali.com/beautiful-jekyll/">Beautiful Jekyll</a>'
|
||||
|
||||
# Navigation
|
||||
- id: toggleNavigation
|
||||
translation: "Navigasjon på/av"
|
||||
- id: languageSwitcherLabel
|
||||
translation: "Språk"
|
||||
- id: gcseLabelShort
|
||||
translation: "Søk"
|
||||
- id: gcseLabelLong
|
||||
translation: "Søk {{ .Site.Title }}"
|
||||
- id: gcseClose
|
||||
translation: "Lukk"
|
||||
|
||||
# Staticman
|
||||
- id: noComment
|
||||
translation: "Ingen kommentarer"
|
||||
- id: oneComment
|
||||
translation: "kommentar"
|
||||
- id: moreComment
|
||||
translation: "kommentarer"
|
||||
- id: useMarkdown
|
||||
translation: "Du kan bruke Markdown syntax"
|
||||
- id: yourName
|
||||
translation: "Ditt navn"
|
||||
- id: yourEmail
|
||||
translation: "Din e-postadresse"
|
||||
- id: yourWebsite
|
||||
translation: "Din webside"
|
||||
|
||||
# Delayed Disqus
|
||||
- id: show
|
||||
translation: "Vis"
|
||||
- id: comments
|
||||
translation: "kommentarer"
|
||||
|
||||
# Related posts
|
||||
- id: seeAlso
|
||||
translation: "Se også"
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue