Browse Source

Initial commit.

master
Syfaro 1 year ago
commit
51fadaee23
40 changed files with 1238 additions and 0 deletions
  1. +1
    -0
      .gitignore
  2. +6
    -0
      archetypes/default.md
  3. +6
    -0
      archetypes/project.md
  4. +10
    -0
      config.toml
  5. BIN
      content/blog/engraved-acrylic-led-badges/BadgeBack.jpg
  6. BIN
      content/blog/engraved-acrylic-led-badges/BadgeFinal.jpg
  7. BIN
      content/blog/engraved-acrylic-led-badges/BadgeInternals.jpg
  8. +42
    -0
      content/blog/engraved-acrylic-led-badges/index.md
  9. +7
    -0
      content/blog/hello-world.md
  10. BIN
      content/blog/led-badges-first-pcb/DoneBoard.jpg
  11. BIN
      content/blog/led-badges-first-pcb/LEDs.jpg
  12. +23
    -0
      content/blog/led-badges-first-pcb/index.md
  13. BIN
      content/blog/led-badges-pcb-design/BadgeBoard.png
  14. BIN
      content/blog/led-badges-pcb-design/BoardBottom.jpg
  15. BIN
      content/blog/led-badges-pcb-design/BoardTop.jpg
  16. +90
    -0
      content/blog/led-badges-pcb-design/index.md
  17. +49
    -0
      content/blog/peppershrike.md
  18. +7
    -0
      content/char.md
  19. +6
    -0
      content/project/furry-art-multiuploader.md
  20. +6
    -0
      content/project/go-telegram-bot-api.md
  21. +6
    -0
      content/project/mcapi-us.md
  22. +306
    -0
      data/char.json
  23. +14
    -0
      data/contact.yaml
  24. +10
    -0
      data/others.yaml
  25. +4
    -0
      layouts/shortcodes/en_peppershrike.html
  26. +6
    -0
      layouts/shortcodes/img.html
  27. +6
    -0
      layouts/shortcodes/peppershrike.html
  28. +74
    -0
      static/files/syfaro.asc
  29. +1
    -0
      static/files/syfaro.pub
  30. BIN
      static/img/icon.png
  31. BIN
      static/img/icon@2x.png
  32. +20
    -0
      themes/fox/LICENSE
  33. +2
    -0
      themes/fox/archetypes/default.md
  34. +1
    -0
      themes/fox/layouts/404.html
  35. +49
    -0
      themes/fox/layouts/_default/baseof.html
  36. +11
    -0
      themes/fox/layouts/_default/single.html
  37. +22
    -0
      themes/fox/layouts/blog/list.html
  38. +67
    -0
      themes/fox/layouts/index.html
  39. +379
    -0
      themes/fox/static/css/fox.css
  40. +7
    -0
      themes/fox/theme.toml

+ 1
- 0
.gitignore View File

@@ -0,0 +1 @@
/public

+ 6
- 0
archetypes/default.md View File

@@ -0,0 +1,6 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---


+ 6
- 0
archetypes/project.md View File

@@ -0,0 +1,6 @@
---
title: "untitled project"
projecturl: https://syfaro.net
projectshort: the cool thing
homepage: true
---

+ 10
- 0
config.toml View File

@@ -0,0 +1,10 @@
baseURL = "https://syfaro.net"
languageCode = "en-us"
title = "Syfaro"
theme = "fox"

[params]
description = "Hi. I'm a purple fox."
peppershrike = "https://peppershrike.huefox.com"

[taxonomies]

BIN
content/blog/engraved-acrylic-led-badges/BadgeBack.jpg View File

Before After
Width: 750  |  Height: 1000  |  Size: 72KB

BIN
content/blog/engraved-acrylic-led-badges/BadgeFinal.jpg View File

Before After
Width: 750  |  Height: 1000  |  Size: 101KB

BIN
content/blog/engraved-acrylic-led-badges/BadgeInternals.jpg View File

Before After
Width: 750  |  Height: 1000  |  Size: 90KB

+ 42
- 0
content/blog/engraved-acrylic-led-badges/index.md View File

@@ -0,0 +1,42 @@
---
title: "Engraved Acrylic LED Badges"
date: 2018-05-16T18:00:00-05:00
draft: false
---

Hi all, I'm writing this as an update for what I plan to happen regarding the LED badges.

Based on the experience Rynwar and I had with them at BLFC, there's a huge demand for something like these. In attempting to research what other people have done, I've run across a few other similar things but nothing quite as advanced in terms of color patterns and brightness. There are a number of people who print art onto acrylic or have laser engraved acrylic using art provided by the client. I have not found anyone else using RGB LEDs to create animated effects or ones that can be recharged instead of requiring replaceable batteries. From BLFC, they seem to last for about twelve hours on a single charge on the lower brightness mode. The final product likely would contain a larger battery for even longer battery life.

So far one artist has brought up the possibility of partnering to create artwork for the badges. I'd definitely like to pursue something like that instead of having to deal with the client providing artwork which may not be ideal for the engraving or they may not have permission to use.

Looking around has provided me with interesting ideas for dual layer acrylic which allows for multiple colors at once but I'm not sure how feasible this is with my current design. I believe it would be a very cool effect to get dual color artwork or a name that could flash independently of the artwork. In continuing to improve the features I'm also evaluating whether or not sound reactive patterns are possible (and it currently does seem likely I will be able to add reactive effects).

If you're not already familiar with what they look like, here's a few photos.

{{<img "BadgeFinal.jpg">}}
{{<img "BadgeBack.jpg">}}

I'd love to get some feedback on what people would be comfortable spending on something like this. If you wouldn't mind filling out this quick question about it, I'd really appreciate it.

{{< peppershrike 5 >}}

There's a number of issues with the current revision such as poor user interface (a single switch that controls mode and brightness), a large and clearly 3D printed case, and general imperfections in the acrylic (it was cut quickly on a table saw).

Moving forward, there's a number of refinements that must be reached before they could be sold. I have to figure out a new interface that allows enough configuration without being uncomfortable to use, how to cut and engrave the acrylic without imperfections, and generally improve the reliability and sturdiness of it. Hot gluing the acrylic in place worked well enough for a weekend but it does not feel sturdy. Even with being careful with them, the acrylic was covered in micro-scratches from the weekend. Although these scratches are not visible unless looking at the right angle, evaluating some kind of protective coating seems worthwhile.

The internals must also be significantly improved before I could manufacture them at any kind of reasonable rate. Currently, there are a number of hand soldered components pressure fit into place combined with off the shelf boards I already had. This means the space isn't used as efficiently as possible and the wires are potential points of stress and failure. I've been looking into a PCB design which will allow for more advanced features such as a microphone for sound reactive effects and better charging indicators. After finishing this design and sourcing the required components, I'll be able to get a better idea of how much each one of these costs to produce and therefore be able to determine how much they will be sold for.

{{<img "BadgeInternals.jpg">}}

I'm hoping I'll be able to figure out all these issues within a few months. Once I have working prototypes for a more refined product, I'll open preorders but I cannot guarantee a date for this yet.

tl;dr,

* People seem to want these
* I'm going to look into making them for people
* There's a number of issues I need to figure out first
* I don't know what they cost me yet or what I'm going to charge for them
* I'm hoping to do preorders in a few months assuming everything works out

{{< en_peppershrike >}}

+ 7
- 0
content/blog/hello-world.md View File

@@ -0,0 +1,7 @@
---
title: "Hello, world!"
date: 2018-05-16T12:00:00-05:00
draft: false
---

I have a blog now! Maybe I'll actually do some useful things with it.

BIN
content/blog/led-badges-first-pcb/DoneBoard.jpg View File

Before After
Width: 1440  |  Height: 958  |  Size: 247KB

BIN
content/blog/led-badges-first-pcb/LEDs.jpg View File

Before After
Width: 1440  |  Height: 958  |  Size: 73KB

+ 23
- 0
content/blog/led-badges-first-pcb/index.md View File

@@ -0,0 +1,23 @@
---
title: "LED Badges — First PCB"
date: 2018-06-12T20:00:00-05:00
draft: false
---

I finished creating the first PCB for the prototypes and it seems to mostly work.

As of right now I'm still having issues with charging through the Micro USB port, I believe something is wired incorrectly. Additionally it seems to discharge the battery overnight, suggesting current is still running somewhere it shouldn't be while powered off.

{{<img "DoneBoard.jpg" "PCB with components soldered on">}}

While the soldering job isn't very pretty, it does seem to do the job. You can also see the holes in the board are shifted slightly. That was due to me not properly aligning the board when engraving it.

{{<img "LEDs.jpg" "It's incredibly bright">}}

When evaluating the batteries I got previously, it seems like they only store around 250mAh instead of the advertised 350mAh. While this isn't great, it's not a downgrade from the 240mAh batteries I was using before. I'm going to continue evaluating and see if the one I tested was defective, if my battery charger just isn't that accurate, or if the batteries really are that much lower capacity than advertised.

In order to properly test it, I need to 3D print the case for them. While the board was designed to make it easy, it will still take some work to find the smallest possible design that still can easily hold everything. It is designed so that the switch will be directly exposed, but the buttons will have a printed part covering them.

I also need to figure out how to design the case to most securely hold the acrylic. Hot glue was good for a prototype, but after sitting in my backpack on the flight home, it detached itself.

Next up: resolving circuit issues and designing a 3D printable case.

BIN
content/blog/led-badges-pcb-design/BadgeBoard.png View File

Before After
Width: 857  |  Height: 890  |  Size: 19KB

BIN
content/blog/led-badges-pcb-design/BoardBottom.jpg View File

Before After
Width: 1024  |  Height: 681  |  Size: 78KB

BIN
content/blog/led-badges-pcb-design/BoardTop.jpg View File

Before After
Width: 1024  |  Height: 681  |  Size: 88KB

+ 90
- 0
content/blog/led-badges-pcb-design/index.md View File

@@ -0,0 +1,90 @@
---
title: "LED Badges — PCB design"
date: 2018-05-17T20:00:00-05:00
draft: false
---

I've been attempting to design my own PCBs for the badges.

Using the same machine I engrave the acrylic with, I can engrave copper boards to create traces and drill holes. It seems to struggle with 10mil traces but the 20mil traces pictured below all look fully intact.

{{<img "BoardTop.jpg">}}
{{<img "BoardBottom.jpg">}}

Now that I have boards that seem like they should work, I need to order the parts. My current part list includes:

* ATTINY85-20SU &mdash; the main controller (might be possible to use an ATtiny45 for cost saving, there's enough RAM and storage if I don't add any sound reactive features)
* MCP73831T-2ATI/OT &mdash; charging regulator for the lithium battery
* 4.7µF 0805 capacitor &mdash; decoupling USB power in for charger
* 4.99kΩ 0805 resistor &mdash; program charging regulator to 200mA
* Micro USB female connector &mdash; provide power to the charging regulator
* JST-PH 2 pin right angle connector &mdash; solderless battery connection
* 350mAh 652030 lithium polymer battery &mdash; the battery to power it

I already have the pushbutton and toggle switches from previous projects.

I also need to get a SOIC socket so I can program the ATtinys as the boards don't have space for programming headers.

<table>
<thead>
<tr>
<th>Component</th>
<th>Count</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr>
<th>ATtiny85-20SU</th>
<td>15</td>
<td>$16.93</td>
</tr>
<tr>
<th>MCP73831T-2ATI/OT</th>
<td>10</td>
<td>$5.21</td>
</tr>
<tr>
<th>652030 350mAh battery</th>
<td>2</td>
<td>$11.98</td>
</tr>
<tr>
<th>4.7µF capacitor</th>
<td>25</td>
<td>$1.24</td>
</tr>
<tr>
<th>4.99kΩ resistor</th>
<td>250</td>
<td>$1.60</td>
</tr>
<tr>
<th>Micro USB connector</th>
<td>10</td>
<td>$5.79</td>
</tr>
<tr>
<th>JST-PH 2-pin connector</th>
<td>10</td>
<td>$6.80</td>
</tr>
<tr>
<th>SOIC socket</th>
<td>1</td>
<td>$7.98</td>
</tr>
</tbody>
</table>

**Total: $57.53** (before shipping and tax)

{{<img "BadgeBoard.png">}}

After getting the parts, I can evaluate how difficult everything is to hand solder. If I can't reliably make good connections, I'll have to look into hot air rework stations, solder paste, and solder masks. With those tools I could place everything and use the hot air to solder parts together instead of having to manually align and apply solder to each tiny pad. However, they can be expensive and difficult to get correct.

In addition to board design, some cheap electret microphone and amplifier boards I ordered arrived today. I'm using them to experiment with sound reactive features. I've started working with some example code to get a feel for how well they work. From the little time I've played with them, it feels more like a stretch goal rather than a core feature.

The components were purchased from Amazon, Arrow, and Adafruit. Most items are expected to arrive by Monday, May 21st. However, the JST connectors from Adafruit may take longer but they are not essential to prototyping.

Next up: waiting for the components to arrive and assembling a test board.

+ 49
- 0
content/blog/peppershrike.md View File

@@ -0,0 +1,49 @@
---
title: "Peppershrike"
date: 2018-05-19T12:00:00-05:00
draft: false
---

At times, it's useful to get information from people reading a blog post. However, requiring users to visit another site, potentially deal with advertisements or creating accounts, or other annoyances greatly drives down the number of people willing to answer a quick question.

In an attempt to make it easier for users to quickly respond, I've created a small web app called Peppershrike.

Here's an example of how it works:

{{<peppershrike 1>}}

It's incredibly quick and easy to use and doesn't require users to visit any other sites or fill out any other information. It's easily themeable to fit into any site. And it's [free and open source](https://git.huefox.com/syfaro/peppershrike) software!

All you have to do is create a `div` to contain the survey and include a small JavaScript snippet. Here's an example, using the same code for the survey above.

{{<highlight html>}}
<div class="peppershrike" data-id="1"></div>

<script src="https://peppershrike.huefox.com/peppershrike.js" data-host="https://peppershrike.huefox.com"></script>
<script>
Peppershrike.find();
</script>
{{</highlight>}}

There's an example theme for how to style it in the [git repo](https://git.huefox.com/syfaro/peppershrike/src/branch/master/themes/syfaro.css). I'll hopefully be adding a few more default themes to make it fit in other places better without extra work.

It's also possible to add other types of questions, such as ones that will only accept numeric input.

{{<peppershrike 2>}}

Or if you have specific data or want to make it easier for the user, there's even a multiple choice type.

{{<peppershrike 3>}}

It creates a fairly simple web interface to add surveys and manage responses. Future versions will contain more types of questions and potentially things like graphs of multiple choice responses.

I'd love to hear what you think about it or if you have any suggestions for new features! Of course, here's a simple form through it to answer this. It's also there to show off you don't need to include a description, only a title.

{{<peppershrike 4>}}

If you're curious about the name, I mostly use bird species to title my projects. Naming things is difficult!

<script src="https://peppershrike.huefox.com/peppershrike.js" data-host="https://peppershrike.huefox.com"></script>
<script>
Peppershrike.find();
</script>

+ 7
- 0
content/char.md View File

@@ -0,0 +1,7 @@
---
title: "Character Reference"
date: 2018-10-07T00:12:26-05:00
draft: true
---

### Returning shortly.

+ 6
- 0
content/project/furry-art-multiuploader.md View File

@@ -0,0 +1,6 @@
---
title: "Furry Art Multiuploader"
projecturl: https://multiupload.us
projectshort: A tool that allows artists to upload to multiple sites at once instead of having to upload the same thing on many different sites.
homepage: true
---

+ 6
- 0
content/project/go-telegram-bot-api.md View File

@@ -0,0 +1,6 @@
---
title: "go-telegram-bot-api"
projecturl: https://github.com/go-telegram-bot-api/telegram-bot-api
projectshort: A golang wrapper for the Telegram Bot API.
homepage: true
---

+ 6
- 0
content/project/mcapi-us.md View File

@@ -0,0 +1,6 @@
---
title: "MCApi.us"
projecturl: https://mcapi.us/
projectshort: An API to get the status of or query a Minecraft server.
homepage: true
---

+ 306
- 0
data/char.json View File

@@ -0,0 +1,306 @@
{
"artists": {
"KosseHyena": {
"link": "https://twitter.com/KosseHyena"
},
"Tsaiwolf": {
"link": "https://www.furaffinity.net/user/tsaiwolf"
},
"Growlbeast": {
"link": "https://twitter.com/Growlbeast"
},
"Thrushes": {
"link": "https://www.furaffinity.net/user/thrushes/"
},
"oCe": {
"link": "https://www.furaffinity.net/user/oce/"
},
"crepusculecat": {
"link": "https://twitter.com/crepusculecat"
},
"kelevtov": {
"link": "https://www.furaffinity.net/user/kelevtov."
},
"pig": {
"link": "https://www.furaffinity.net/user/pig"
},
"Nameless_Coyote": {
"link": "https://twitter.com/Nameless_Coyote"
},
"Psychonautic": {
"link": "https://www.furaffinity.net/user/psychonautic/"
},
"Mithmeoi": {
"link": "https://twitter.com/Mithmeoi"
},
"Yuniwolfsky": {
"link": "https://www.furaffinity.net/user/yuniwolfsky"
},
"LydiaPaige": {
"link": "https://twitter.com/Lydiarts"
},
"casparr": {
"link": "https://www.furaffinity.net/user/casparr/"
},
"casual-dhole": {
"link": "https://www.weasyl.com/~casual-dhole"
},
"Paws": {
"link": "https://www.furaffinity.net/user/paws/"
},
"SuncatArt": {
"link": "https://twitter.com/SuncatArt"
},
"wryote": {
"link": "https://twitter.com/wryote"
},
"lilyote": {
"link": "https://www.deviantart.com/lilyote"
},
"PaintlessDog": {
"link": "https://twitter.com/PaintlessDog"
},
"birbdog": {
"link": "https://twitter.com/birbdog"
},
"lostshade": {
"link": "https://www.furaffinity.net/user/lostshade/"
},
"puppytube": {
"link": "https://twitter.com/puppytube"
},
"VermStudio": {
"link": "https://twitter.com/VermStudio"
},
"Kavaeric": {
"link": "https://www.weasyl.com/~kavaeric"
},
"Sirod": {
"link": "https://twitter.com/5irod"
},
"dominate": {
"link": "https://www.furaffinity.net/user/dominate/"
},
"KojiFox": {
"link": "https://twitter.com/KojiFox"
},
"TheShoujoPrince": {
"link": "https://twitter.com/TheShoujoPrince"
},
"Saosin": {
"link": "https://www.furaffinity.net/user/Jawbones"
},
"OrlandoFox": {
"link": "https://www.furaffinity.net/user/thedoggygal"
},
"InuHein": {
"link": "https://twitter.com/inuHein"
},
"Skdaffle": {
"link": "http://skdaffle.art/"
}
},
"artwork": [
{
"artist": "Skdaffle",
"link": "https://www.furaffinity.net/view/28105329",
"filename": "syfarocomm.png",
"message": "nature is beautiful",
"nsfw": true
},
{
"artist": "Tsaiwolf",
"link": "https://www.furaffinity.net/view/28093358/",
"filename": "Tsaiwolf2018-SyfaroMultifox-LR.png",
"message": "A beautiful gift from Tsaiwolf!",
"nsfw": true
}, {
"artist": "KosseHyena",
"link": "https://twitter.com/KosseHyena/status/1002216973823086592",
"filename": "experimental-syfaro_sm.png"
}, {
"artist": "Growlbeast",
"link": "https://twitter.com/Growlbeast/status/871995975375650817",
"filename": "syfaro_sketch_pinup.png",
"nsfw": true
}, {
"artist": "Thrushes",
"link": "https://www.furaffinity.net/view/21371763/",
"filename": "syfaro.png",
"message": "Foxes do lots of things!"
}, {
"artist": "oCe",
"link": "https://www.furaffinity.net/view/20449854/",
"filename": "syfaro-sketch-web.jpg",
"message": "Mmmmm grapes, a great source of purple"
}, {
"artist": "crepusculecat",
"filename": "syfaro.png",
"message": "Isn't my boyfriend cute? :3"
}, {
"artist": "kelevtov",
"filename": "syfaro_sketchcommission1edit.png",
"nsfw": true
}, {
"artist": "kelevtov",
"link": "https://www.furaffinity.net/view/20201962/",
"filename": "syfaro_sketchcommission2edit.png",
"message": "Who wouldn't love to be tied up for public use~",
"nsfw": true
}, {
"artist": "pig",
"filename": "doodle3.png",
"message": "A fox in their natural state",
"nsfw": true
}, {
"artist": "pig",
"link": "https://www.furaffinity.net/view/19787399/",
"filename": "public.png",
"message": "How unusual, a fox that isn't in the middle",
"nsfw": true
}, {
"artist": "Nameless_Coyote",
"filename": "aghjkjhgfdssdg_by_sweetwolf1-d9ywl1h.png",
"message": "Pixels!"
}, {
"artist": "Psychonautic",
"link": "https://www.furaffinity.net/view/19620670/",
"filename": "Syfaro.png",
"message": "Creative liberty is neat and lots of purple is lovely"
}, {
"artist": "Mithmeoi",
"link": "https://twitter.com/Mithmeoi/status/713601307056017408",
"filename": "IMG_014.png",
"message": ":D"
}, {
"artist": "Yuniwolfsky",
"link": "https://www.furaffinity.net/view/18832106/",
"filename": "1453171632.yuniwolfsky_nican_fetish_sheet.png",
"message": "What aren't foxes into?",
"nsfw": true
}, {
"artist": "LydiaPaige",
"filename": "d4su3TH.png",
"message": "Bounce, bounce, bounce"
}, {
"artist": "casparr",
"link": "https://www.furaffinity.net/view/18492279/",
"filename": "tumblr_nyt4dpHbKd1u7i96po1_1280.png",
"nsfw": true
}, {
"artist": "casual-dhole",
"link": "https://www.weasyl.com/~casualdhole/submissions/1366603/etchings-in-the-ruins",
"filename": "fylninsyf2_(web).png",
"message": "Exploring is fun! Ooh bug"
}, {
"artist": "Paws",
"link": "https://www.furaffinity.net/view/14716486/",
"filename": "1412654852.paws_finchibisyfaro.png"
}
],
"icons": [
{
"artist": "InuHein",
"filename": "nicanbun3.png"
},
{
"artist": "SuncatArt",
"filename": "syfaro_500x1000_by_citriel-dbwqgzs.png"
},
{
"artist": "wryote",
"link": "https://twitter.com/wryote/status/829824956921954308",
"filename": "purpleblck.png",
"message": "Resist!"
},
{
"artist": "Growlbeast",
"link": "https://twitter.com/Growlbeast/status/799036962262892544",
"filename": "syfarobadgefull.png",
"message": "Growly face from Growlbeast is <3"
}, {
"artist": "lilyote",
"link": "http://lilyote.deviantart.com/art/headshot-for-syfaro-628673205",
"filename": "5_copy_by_lilyote-daean4t.png",
"message": ":P"
}, {
"artist": "PaintlessDog",
"link": "https://twitter.com/PaintlessDog/status/758754257147351040",
"filename": "Coei7XrVUAEEpph.jpg",
"message": "Still smells like coffee!"
}, {
"artist": "birbdog",
"link": "https://twitter.com/birbdog/status/752275044840116228",
"filename": "comforsy.png"
}, {
"artist": "lostshade",
"filename": "1.png"
}, {
"artist": "crepusculecat",
"link": "https://twitter.com/crepusculecat/status/742161098472706048",
"filename": "paintitntin.png",
"message": "Glitchy and unusual colors and patterns are fantastic"
}, {
"artist": "LydiaPaige",
"link": "https://twitter.com/Lydiarts/status/653415262482378752",
"filename": "syfaro.png",
"message": "Imma purple fox! :D"
}, {
"artist": "puppytube",
"filename": "puppytube-syfaro.png"
}, {
"artist": "VermStudio",
"link": "https://twitter.com/VermStudio/status/639629069114474496",
"filename": "maw.png"
}, {
"artist": "Kavaeric",
"link": "https://www.weasyl.com/~kavaeric/submissions/1002529/com-headshot-syfaro",
"filename": "kavaeric-commish-headshot-syfaro.png"
}, {
"artist": "Growlbeast",
"link": "https://twitter.com/growlbeast/status/603283035002273792",
"filename": "pJI1Rpe.png",
"message": "Sly fox~"
}, {
"artist": "Sirod",
"link": "https://twitter.com/5irod/status/585877842010902528",
"filename": "icon.png"
}, {
"artist": "dominate",
"filename": "ss+(2015-03-08+at+08.07.10).png"
}, {
"artist": "KojiFox",
"link": "https://twitter.com/KojiFox/status/555723010397990912",
"filename": "Syfaro_Minimal_Twitter_500x500_Corrected.png",
"message": "Minimalism is neat"
}, {
"artist": "wryote",
"link": "https://www.weasyl.com/~kunacoyote/submissions/827857/syfaro-icon-commission",
"filename": "TkqIgov9.png"
}, {
"artist": "TheShoujoPrince",
"link": "https://twitter.com/TheShoujoPrince/status/540043973369561089",
"filename": "B36fIcoCAAE-kta.jpg"
}, {
"artist": "Saosin",
"link": "http://www.furryteens.org/forum/index.php?topic=19598.msg450475#msg450475",
"filename": "Syfaro_zps145ea355.png"
}, {
"artist": "OrlandoFox",
"filename": "vzzkAii.png"
}, {
"artist": "dominate",
"link": "https://twitter.com/BA5ILEUS/status/480205213765091328",
"filename": "BqoIGK2CcAA6QFM.png"
}, {
"artist": "dominate",
"link": "https://twitter.com/BA5ILEUS/status/469630670310883328",
"filename": "BoR2mqnIUAAL5hU.png"
}, {
"artist": "dominate",
"link": "https://twitter.com/BA5ILEUS/status/468955025004589056",
"filename": "BoIQGwFIQAESpvr.png",
"message": "My first commissioned artwork!!"
}
]
}

+ 14
- 0
data/contact.yaml View File

@@ -0,0 +1,14 @@
- name: Telegram
link: https://t.me/Syfaro
display: "@Syfaro"
- name: Twitter
link: https://twitter.com/Syfaro
display: "@Syfaro"
- name: Discord
display: "Syfaro#2129"
- name: Email
link: "mailto:syfaro@huefox.com"
display: "syfaro@huefox.com"
- name: Mastodon
link: https://foxesare.sexy/user/syfaro
display: "@Syfaro@foxesare.sexy"

+ 10
- 0
data/others.yaml View File

@@ -0,0 +1,10 @@
- name: "ssh public key"
link: "files/syfaro.pub"
- name: "gpg public key"
link: "files/syfaro.asc"
- name: "git repos"
link: "https://git.huefox.com"
desc: "source code for projects (including this site)"
- name: "ko-fi"
link: "https://ko-fi.com/syfaro"
desc: "if you really enjoy something I've done"

+ 4
- 0
layouts/shortcodes/en_peppershrike.html View File

@@ -0,0 +1,4 @@
<script src="https://peppershrike.huefox.com/peppershrike.js" data-host="{{ .Site.Params.peppershrike }}"></script>
<script>
Peppershrike.find();
</script>

+ 6
- 0
layouts/shortcodes/img.html View File

@@ -0,0 +1,6 @@
{{ $img := $.Page.Resources.GetMatch (.Get 0)}}

<figure>
<img src="{{ $img.RelPermalink }}" alt="(.Get 1)" />
<figcaption>{{ .Get 1 }}</figcaption>
</figure>

+ 6
- 0
layouts/shortcodes/peppershrike.html View File

@@ -0,0 +1,6 @@
{{ if .IsNamedParams }}
<div class="peppershrike" data-id="{{ .Get "id" }}"></div>
{{ else }}
<div class="peppershrike" data-id="{{ .Get 0 }}"></div>
{{ end }}


+ 74
- 0
static/files/syfaro.asc View File

@@ -0,0 +1,74 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
=sh04
-----END PGP PUBLIC KEY BLOCK-----

+ 1
- 0
static/files/syfaro.pub View File

@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDZu4Qe2mrE1ASqvBZxmpYna1ogIoPhOdNM3mQ+e8sQrEaqnBiorsG2aZkQ/hSkncg6Zpo2FWqeAFzzHO5LOv6yDOusG4G5KWKCehkADmDCwlxLxKz1geTM0ORavNQcORIB1URpq/OL5yZlhhdFe0tlVbaVDtDrAaHM+hDmlgOs8Zh6R9HGOy2E2oUpUESBHzErNVD7qy8W82q4zDo+wXh+vUbhtFYbR3WuGcnlpvozWb+VLxbCSG2vgfarH7jkwYH/ywyR+fh76jbK86LT6qNo03EmXj/hiwj2lcSfIVRH96nMr9FBXvG3qBRBzvwOsQWv4m+9TLlivL10Juy+cxSCrKFcHOiVr93jldMP9TAHyEMtrfKGdsSfva1ckmGazF4CTxBVQw0SFCnroOzpFDX928qQswbDw9Zetgk30IqFZyhuLqijmHw4fKrK1ovSMyA//+UOpHdDKD5xwOqjro1+ETS7IXV+bLn7RpdOc64I44NmYiKdnlK1vbd5XCQEWKVglAlX/g3pV/znAfa//X9bNSauYNElPugZmxQRwY03FXsztqTxJ8vRylxpktnJ8pXVxrFDzydnH9linWzCPo/XhqyF1EuSKPsFBsokwzYkD1SI93CF5Cdo8jeYGjsffyBypwalv6ozQAi6jz1yoPTvIG6Qkv1aGQsTY5Dsgxj9Zw==

BIN
static/img/icon.png View File

Before After
Width: 200  |  Height: 200  |  Size: 48KB

BIN
static/img/icon@2x.png View File

Before After
Width: 400  |  Height: 400  |  Size: 123KB

+ 20
- 0
themes/fox/LICENSE View File

@@ -0,0 +1,20 @@
The MIT License (MIT)

Copyright (c) 2018 Syfaro

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.

+ 2
- 0
themes/fox/archetypes/default.md View File

@@ -0,0 +1,2 @@
+++
+++

+ 1
- 0
themes/fox/layouts/404.html View File

@@ -0,0 +1 @@
<h1>404</h1>

+ 49
- 0
themes/fox/layouts/_default/baseof.html View File

@@ -0,0 +1,49 @@
<!DOCTYPE html>
<html>

<head>
<title>{{ block "title" . }}{{ .Site.Title }}{{ end }}</title>

<base href="{{ .Site.BaseURL }}">

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/hack-font/3.003/web/hack.css">
<link rel="stylesheet" href="{{ "css/fox.css" | relURL }}">

{{ block "head" . }}{{ end }}
</head>

<body>
<header>
{{ if not .IsHome }}
{{ if and (eq .Section "blog") .IsPage }}
<a href="{{ .Section | relURL }}">
{{ else }}
<a href="{{ "" | relURL }}">
{{ end }}
{{ end }}

<picture>
<source srcset="{{ "img/icon.png" | relURL }} 1x, {{ "img/icon@2x.png" | relURL }} 2x">
<img src="{{ "img/icon.png" | relURL }}">
</picture>

{{ if not .IsHome }}
</a>
{{ end}}

{{ if .IsHome }}
<h1>{{ .Site.Title }}</h1>
<h2>{{ .Site.Params.description }}</h2>
{{ end }}
</header>

{{ block "container" . }}{{ end }}

<footer>
{{ block "footer" . }}
🦊🐾
{{ end }}
</footer>
</body>

</html>

+ 11
- 0
themes/fox/layouts/_default/single.html View File

@@ -0,0 +1,11 @@
{{ define "container" }}
<div class="container post">
<article>
<h2>{{ .Title }}</h2>

<section>
{{ .Content }}
</section>
</article>
</div>
{{ end }}

+ 22
- 0
themes/fox/layouts/blog/list.html View File

@@ -0,0 +1,22 @@
{{ define "container" }}
<section class="container post">
<h2>Blog</h2>

{{ range (where .Pages "Section" "blog").ByDate.Reverse }}
<article class="post-preview">
<section class="post-info">
<h3><a href="{{ .RelPermalink }}">{{ .Title }}</a></h3>
<h6>Published {{ dateFormat "2006-01-02" .Date }}</h6>
</section>

<section>
{{ .Summary }}
</section>

{{ if .Truncated }}
<a href="{{ .RelPermalink }}">Read more &hellip;</a>
{{ end }}
</article>
{{ end }}
</section>
{{ end }}

+ 67
- 0
themes/fox/layouts/index.html View File

@@ -0,0 +1,67 @@
{{ define "container" }}
<main class="container">
<section>
<a href="{{ "char" | relURL }}">Character ref & artwork</a>
</section>

<section class="posts">
<h3>Recent Blog Posts</h3>

<ul>
{{ range first 3 (where .Pages "Section" "blog").ByDate.Reverse }}
<li><a href="{{ .RelPermalink }}">{{ .Title }}</a> &mdash; {{ dateFormat "2006-01-02" .Date }}</li>
{{ end }}
<li><a href="{{ "blog" | relURL }}">Read More</a></li>
</ul>
</section>

<section>
<h3>Things I Work On</h3>

{{ range where (where .Pages ".Params.homepage" true) "Section" "project" }}
<div class="project">
<p class="project-name">
<a href="{{ .Params.projecturl }}">{{ .Title }}</a>
</p>

<p>
{{ .Params.projectshort }}
</p>
</div>
{{ end }}
</section>

<section id="contact" class="contact">
<h3>Get In Touch</h3>

<table>
{{ range .Site.Data.contact }}
<tr>
<td>{{ .name }}</td>
<td>
{{ if eq .link nil }}
{{ .display }}
{{ else }}
<a href="{{ .link }}">{{ .display }}</a>
{{ end }}
</td>
</tr>
{{ end }}
</table>
</section>

<section class="others">
<h3>Other Things</h3>

{{ range .Site.Data.others }}
<div>
<a href="{{ .link }}">{{ .name }}</a>

{{ if ne .desc nil }}
&mdash; {{ .desc }}
{{ end }}
</div>
{{ end }}
</section>
</main>
{{ end }}

+ 379
- 0
themes/fox/static/css/fox.css View File

@@ -0,0 +1,379 @@
html {
height: 100%;
}

html,
body {
margin: 0;
padding: 0;
background-color: #362b70;
color: #eadef6;
}

body {
font-family: "Hack", monospace;
font-size: 1.35em;
line-height: 1.65em;
text-rendering: optimizeLegibility;
font-variant-ligatures: no-common-ligatures no-discretionary-ligatures;
text-align: center;
}

a,
a:visited,
a:active {
text-decoration: none;
color: #02cfff;
padding-bottom: 2px;
transition: border-bottom 0.05s ease-in;
border-bottom: 2px solid transparent;
}

a:hover {
border-bottom: 2px solid #02cfff;
}

header {
margin-top: 30px;
}

header img {
border-radius: 50%;
border: 5px solid #eadef6;
transition: border 0.1s ease-in-out;
}

header a {
border: none;
}

header a:hover {
border: none;
}

header a:hover img {
border: 5px solid #02cfff;
}

article {
text-align: left;
}

article h1,
article h2 {
text-align: center;
}

section {
margin-top: 75px;
}

.post section {
margin-top: 1em;
}

.post h6 {
margin: 0;
padding: 0;
}

footer {
padding: 1em;

min-height: 200px;
display: flex;
justify-content: center;
align-items: center;
}

img {
display: block;
margin: 5px auto;
max-width: 100%;
border-radius: 5px;
}

table {
border-collapse: collapse;
width: 100%;
text-align: left;
}

table th,
table td {
padding: 5px;
}

table tbody tr:hover {
background-color: rgba(5, 5, 5, 0.2);
}

table tbody tr:not(:last-child) {
border-bottom: 1px solid lightgray;
}

code {
font-family: "Hack", Courier, monospace;
}

pre code {
display: block;
box-sizing: border-box;
overflow: auto;

font-size: 0.8em;
background-color: rgba(0, 0, 0, 0.1);

border-radius: 5px;
padding: 5px;
}

figcaption {
margin-top: -10px;
padding: 5px 5px 0 5px;
background-color: rgba(0, 0, 0, 0.25);
border-radius: 0 0 5px 5px;
text-align: center;
}

.container {
width: 90%;
max-width: 1200px;
margin: 0 auto 2em;
}

.container.post {
font-family: -apple-system, "Helvetica Neue", "Lucida Sans Unicode", "Lucida Grande", sans-serif;

max-width: 800px;
}

.project-name {
font-size: 1.2em;
}

.posts ul {
list-style: none;
margin: 0;
padding: 0;
}

.contact {
margin: 0 auto;
max-width: 425px;
}

.contact h3 {
padding-top: 1em;
}

.contact table {
width: 100%;
}

.contact td:first-of-type {
text-align: left;
}

.contact td:last-of-type {
text-align: right;
}

.others div:not(:last-of-type) {
margin-bottom: 20px;
}

.services {
text-align: left;
}

.handles {
text-align: right;
}

.reference {
max-width: 800px;
margin: 0 auto;
}

.reference p,
.reference ul {
text-align: left;
}

.artwork {
margin-bottom: 3rem;
}

.artwork a {
border: 0;
}

a[data-message]:hover:after {
z-index: 999;
font-size: 0.7em;
content: attr(data-message);
text-align: center;
background-color: black;
color: #eadef6;
border-radius: 5px;
border: 2px solid #eadef6;
padding: 5px;
width: 300px;
position: fixed;
bottom: 20px;
left: 50%;
margin-left: -150px;
}

.nsfw {
display: none;
}

.color {
border-radius: 5px;
padding: 3px;
}

.color-dark-purple {
color: white;
background-color: #503a92;
}

.color-light-purple {
color: white;
background-color: #6635c7;
}

.color-blue {
color: black;
background-color: #02cfff;
}

.color-blueberry {
color: white;
background-color: #604db6;
}

.color-gold {
color: black;
background-color: #d7a849;
}

.post-info h3,
.post-info h6 {
display: inline-block;
}

.peppershrike {
width: 100%;
background-color: #eadef6;
color: black;
border-radius: 5px;
padding: 15px;
box-sizing: border-box;
}

.peppershrike-title {
font-size: 1.2em;
font-weight: 500;
}

.peppershrike-input,
.peppershrike-submit {
font-family: inherit;
width: 100%;
padding: 5px;
border: none;
border-radius: 5px;
color: black;
background-color: #eee;
transition: background-color 50ms ease-out;
}

.peppershrike-input:hover,
.peppershrike-submit:hover {
background-color: #fff;
}

.peppershrike-input:focus {
outline: 1px solid black;
border-radius: 0;
background-color: #fff;
}

.peppershrike-input {
box-sizing: border-box;
}

.peppershrike-submit {
display: block;
max-width: 250px;
margin: 10px auto 0 auto;
}

.peppershrike-submit:disabled,
.peppershrike-submit:disabled:hover {
background-color: #eee;
color: gray;
}

.peppershrike-done {
text-align: center;
}

@media (min-width: 451px) {
.reference ul {
padding: 0;
margin: 0;
}

.post-info h6 {
margin-left: 1em;
}
}

@media (max-width: 450px) {
a[data-message]:hover:after {
display: none;
}

.container {
margin-bottom: 5vh;
}

.contact .items {
flex-grow: 0;
}

.contact tr:not(:last-of-type) {
display: block;
margin-bottom: 1em;
}

.contact td,
.contact td:first-of-type,
.contact td:last-of-type {
display: block;
text-align: center;
}

.reference {
width: 100%;
padding: 0 2vw;
}

.color {
padding: 1px 3px;
}

.grid img {
display: block;
width: 90%;
margin: 1vh auto;
}

.grid picture {
padding: 2vh 0;
}
}

+ 7
- 0
themes/fox/theme.toml View File

@@ -0,0 +1,7 @@
name = "Fox"
license = "MIT"
homepage = "https://syfaro.net"

[author]
name = "Syfaro"
homepage = "https://syfaro.net"

Loading…
Cancel
Save