Post-stream commit, got the basics working.
This commit is contained in:
parent
fcca99242f
commit
ba9d5ac834
|
@ -0,0 +1,5 @@
|
||||||
|
[
|
||||||
|
import_deps: [],
|
||||||
|
plugins: [Phoenix.Liveview.HTMLFormatter],
|
||||||
|
inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"]
|
||||||
|
]
|
|
@ -0,0 +1,29 @@
|
||||||
|
# The directory Mix will write compiled artifacts to.
|
||||||
|
/_build/
|
||||||
|
|
||||||
|
# The generated website.
|
||||||
|
/_site/
|
||||||
|
|
||||||
|
# If you run "mix test --cover", coverage assets end up here.
|
||||||
|
/cover/
|
||||||
|
|
||||||
|
# The directory Mix downloads your dependencies sources to.
|
||||||
|
/deps/
|
||||||
|
|
||||||
|
# Where third-party dependencies like ExDoc output generated docs.
|
||||||
|
/doc/
|
||||||
|
|
||||||
|
# Ignore .fetch files in case you like to edit your project deps locally.
|
||||||
|
/.fetch
|
||||||
|
|
||||||
|
# If the VM crashes, it generates a dump, let's ignore it too.
|
||||||
|
erl_crash.dump
|
||||||
|
|
||||||
|
# Also ignore archive artifacts (built via "mix archive.build").
|
||||||
|
*.ez
|
||||||
|
|
||||||
|
# Ignore package tarball (built via "mix hex.build").
|
||||||
|
tableau_new-*.tar
|
||||||
|
|
||||||
|
# Temporary files, for example, from tests.
|
||||||
|
/tmp/
|
|
@ -1,3 +1,5 @@
|
||||||
# criminallycute.fi
|
# Criminally Cute Website
|
||||||
|
|
||||||
sources for criminallycute.fi
|
Sources for [criminallycute.fi][]
|
||||||
|
|
||||||
|
[criminallycute.fi]:https://criminallycute.fi
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
- active:
|
||||||
|
- name: test
|
||||||
|
link: https://some.site
|
||||||
|
description: |
|
||||||
|
Fleet bilge rat hang the jib Sail ho dead men tell no tales gibbet yardarm galleon. Bowsprit long boat cackle fruit draft chandler scurvy crimp black spot lugger Sea Legs.
|
|
@ -0,0 +1,4 @@
|
||||||
|
---
|
||||||
|
layout: Website.PostLayout
|
||||||
|
title: Uses
|
||||||
|
---
|
|
@ -0,0 +1,9 @@
|
||||||
|
---
|
||||||
|
layout: Website.PostLayout
|
||||||
|
title: Test Post
|
||||||
|
date: 2024-11-08
|
||||||
|
categories: post
|
||||||
|
permalink: test-post
|
||||||
|
---
|
||||||
|
|
||||||
|
TEST POST PLEASE IGNORE
|
|
@ -0,0 +1,37 @@
|
||||||
|
import Config
|
||||||
|
|
||||||
|
config :tableau, :reloader,
|
||||||
|
patterns: [
|
||||||
|
~r"^lib/.*.ex",
|
||||||
|
~r"^(_posts|_pages)/.*.md",
|
||||||
|
~r"assets/.*.(css|js)",
|
||||||
|
]
|
||||||
|
|
||||||
|
config :web_dev_utils, :reload_log, true
|
||||||
|
|
||||||
|
config :tableau, :config,
|
||||||
|
url: "http://localhost:4999",
|
||||||
|
timezone: "Europe/Helsinki",
|
||||||
|
include_dir: "static",
|
||||||
|
markdown: [
|
||||||
|
mdex: [
|
||||||
|
extension: [table: true, header_ids: "", tasklist: true, strikethrough: true],
|
||||||
|
render: [unsafe_: true],
|
||||||
|
features: [syntax_highlight_theme: "kanagawa"]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
|
config :tableau, Tableau.PageExtension, enabled: true
|
||||||
|
config :tableau, Tableau.PostExtension, enabled: true, future: true
|
||||||
|
config :tableau, Tableau.DataExtension, enabled: true
|
||||||
|
config :tableau, Tableau.SitemapExtension, enabled: true
|
||||||
|
|
||||||
|
config :tableau, Tableau.RSSExtension,
|
||||||
|
enabled: true,
|
||||||
|
title: "site",
|
||||||
|
description: "My beautiful website"
|
||||||
|
|
||||||
|
config :elixir, :time_zone_database, Tz.TimeZoneDatabase
|
||||||
|
|
||||||
|
import_config "#{Mix.env()}.exs"
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
import Config
|
|
@ -0,0 +1,4 @@
|
||||||
|
import Config
|
||||||
|
|
||||||
|
config :tableau, :config, url: "https://criminallycute.fi"
|
||||||
|
config :tableau, Tableau.PostExtension, future: false
|
|
@ -0,0 +1 @@
|
||||||
|
import Config
|
|
@ -0,0 +1,5 @@
|
||||||
|
[
|
||||||
|
import_deps: [],
|
||||||
|
plugins: [Phoenix.Liveview.HTMLFormatter],
|
||||||
|
inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"]
|
||||||
|
]
|
|
@ -0,0 +1,12 @@
|
||||||
|
defmodule Website.PageLayout do
|
||||||
|
use Tableau.Layout, layout: Website.RootLayout
|
||||||
|
use Phoenix.Component
|
||||||
|
|
||||||
|
def template(assigns) do
|
||||||
|
~H"""
|
||||||
|
<article>
|
||||||
|
<%= {:safe, render(@inner_content)} %>
|
||||||
|
</article>
|
||||||
|
"""
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,10 @@
|
||||||
|
defmodule Website.PostLayout do
|
||||||
|
use Tableau.Layout, layout: Website.RootLayout
|
||||||
|
use Phoenix.Component
|
||||||
|
|
||||||
|
def template(assigns) do
|
||||||
|
~H"""
|
||||||
|
<%= {:safe, render(@inner_content)} %>
|
||||||
|
"""
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,60 @@
|
||||||
|
defmodule Website.RootLayout do
|
||||||
|
use Tableau.Layout
|
||||||
|
use Phoenix.Component
|
||||||
|
|
||||||
|
def template(assigns) do
|
||||||
|
~H"""
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<!-- meta name="color-scheme" content="dark light" /-->
|
||||||
|
<title>
|
||||||
|
<%= [@page[:title], "Criminally Cute"]
|
||||||
|
|> Enum.filter(& &1)
|
||||||
|
|> Enum.intersperse("|")
|
||||||
|
|> Enum.join(" ") %>
|
||||||
|
</title>
|
||||||
|
<link rel="icon" type="image/png" href="/favicon.png" />
|
||||||
|
<link rel="stylesheet" href="/css/site.css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<nav>
|
||||||
|
<ul>
|
||||||
|
<li><a href="/">Home</a></li>
|
||||||
|
<li><a href="/about">About</a></li>
|
||||||
|
<li><a href="/blog">Blog</a></li>
|
||||||
|
<li><a href="/projects">Projects</a></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
<div>
|
||||||
|
<h1><%= @page[:title] %></h1>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<%= render(@inner_content) %>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
<ul>
|
||||||
|
<li>some link</li>
|
||||||
|
<li>some link 2</li>
|
||||||
|
</ul>
|
||||||
|
<div>
|
||||||
|
<p>© <%= Date.utc_today().year %> Criminally Cute</p>
|
||||||
|
<p><a class="underline" href="/feed.xml">RSS</a></p>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
<%= if Mix.env() == :dev do %>
|
||||||
|
<%= Phoenix.HTML.raw(Tableau.live_reload(assigns)) %>
|
||||||
|
<% end %>
|
||||||
|
"""
|
||||||
|
|> Phoenix.HTML.Safe.to_iodata()
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,16 @@
|
||||||
|
defmodule Website.Aboutpage do
|
||||||
|
use Tableau.Page,
|
||||||
|
layout: Website.PageLayout,
|
||||||
|
permalink: "/about",
|
||||||
|
title: "About"
|
||||||
|
|
||||||
|
use Phoenix.Component
|
||||||
|
|
||||||
|
def template(assigns) do
|
||||||
|
~H"""
|
||||||
|
<p>Lateen sail pillage reef splice the main brace loot capstan carouser boatswain Corsair run a rig. Capstan tackle careen booty brig stern parrel topsail rope's end run a shot across the bow. Boatswain gun plunder jack no prey, no pay sutler carouser driver bring a spring upon her cable quarter.</p>
|
||||||
|
<p>Sink me bring a spring upon her cable scourge of the seven seas piracy shrouds reef sails long boat killick Shiver me timbers belay. Schooner keelhaul parrel gangway grapple nipper chantey lad cackle fruit rutters. Come about bowsprit jury mast main sheet line sloop skysail yard Sea Legs weigh anchor.</p>
|
||||||
|
<p>Bilge hornswaggle draught coffer lass boom boatswain hempen halter gun blow the man down. Heave to pink Privateer bounty rum parley mutiny scurvy wherry trysail. Trysail Sea Legs mizzenmast long boat topmast furl aft fathom landlubber or just lubber jolly boat.</p>
|
||||||
|
"""
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,24 @@
|
||||||
|
defmodule Website.BlogPage do
|
||||||
|
use Tableau.Page,
|
||||||
|
layout: Website.PageLayout,
|
||||||
|
permalink: "/blog",
|
||||||
|
title: "Blog"
|
||||||
|
|
||||||
|
use Phoenix.Component
|
||||||
|
|
||||||
|
def template(assigns) do
|
||||||
|
~H"""
|
||||||
|
<section>
|
||||||
|
<article :for={post <- @posts} class="mt-8">
|
||||||
|
Blog description goes here
|
||||||
|
<a class="underline text-base flex items-center justify-between" href={"blog/" <> post.permalink}>
|
||||||
|
<h3>
|
||||||
|
<time><%= post.date |> Calendar.strftime("%d.%b.%Y") %></time>
|
||||||
|
<%= post.title %>
|
||||||
|
</h3>
|
||||||
|
</a>
|
||||||
|
</article>
|
||||||
|
</section>
|
||||||
|
"""
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,15 @@
|
||||||
|
defmodule Website.HomePage do
|
||||||
|
use Tableau.Page,
|
||||||
|
layout: Website.PageLayout,
|
||||||
|
permalink: "/",
|
||||||
|
title: "Criminally Cute"
|
||||||
|
|
||||||
|
use Phoenix.Component
|
||||||
|
|
||||||
|
def template(assigns) do
|
||||||
|
~H"""
|
||||||
|
<p>Swing the lead bucko bilge water jib smartly reef crack Jennys tea cup gibbet pillage boatswain.</p>
|
||||||
|
<p>Ballast maroon fathom Sink me hempen halter Admiral of the Black scuppers jury mast Jolly Roger rutters. Gibbet Plate Fleet snow sloop Barbary Coast tender barque loot loaded to the gunwalls Brethren of the Coast. Sheet loot clap of thunder Nelsons folly Chain Shot case shot warp dance the hempen jig bucko quarter. </p>
|
||||||
|
"""
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,34 @@
|
||||||
|
defmodule Website.ProjectsPage do
|
||||||
|
use Tableau.Page,
|
||||||
|
layout: Website.PageLayout,
|
||||||
|
permalink: "/projects",
|
||||||
|
title: "Projects"
|
||||||
|
|
||||||
|
use Phoenix.Component
|
||||||
|
|
||||||
|
def template(assigns) do
|
||||||
|
~H"""
|
||||||
|
<div class="space-y-20">
|
||||||
|
<div class="flex flex-col space-y-20">
|
||||||
|
<%= for type <- @data["projects"] do %>
|
||||||
|
<div :for={{status, projects} <- type}>
|
||||||
|
<h2 class="text-base"><%= status %></h2>
|
||||||
|
<div class="space-y-4">
|
||||||
|
<div :for={project <- projects}>
|
||||||
|
<%= if project["link"] do %>
|
||||||
|
<a href={project["link"]}><%= project["name"] %></a>
|
||||||
|
<% else %>
|
||||||
|
<%= project["name"] %>
|
||||||
|
<% end %>
|
||||||
|
<p class="mt-0 text-sm">
|
||||||
|
<%= project["description"] %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
"""
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,36 @@
|
||||||
|
defmodule Website.MixProject do
|
||||||
|
use Mix.Project
|
||||||
|
|
||||||
|
def project do
|
||||||
|
[
|
||||||
|
app: :criminallycute_web,
|
||||||
|
version: "0.1.0",
|
||||||
|
elixir: "~> 1.15",
|
||||||
|
start_permanent: Mix.env() == :prod,
|
||||||
|
compilers: Mix.compilers(),
|
||||||
|
aliases: aliases(),
|
||||||
|
deps: deps()
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Run "mix help compile.app" to learn about applications.
|
||||||
|
def application do
|
||||||
|
[
|
||||||
|
extra_applications: [:logger]
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
|
def aliases() do
|
||||||
|
[
|
||||||
|
build: ["tableau.build"]
|
||||||
|
]
|
||||||
|
end
|
||||||
|
|
||||||
|
# Run "mix help deps" to learn about dependencies.
|
||||||
|
defp deps do
|
||||||
|
[
|
||||||
|
{:tableau, "~> 0.17"},
|
||||||
|
{:phoenix_live_view, "~> 0.20"},
|
||||||
|
]
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,33 @@
|
||||||
|
%{
|
||||||
|
"bandit": {:hex, :bandit, "1.5.7", "6856b1e1df4f2b0cb3df1377eab7891bec2da6a7fd69dc78594ad3e152363a50", [:mix], [{:hpax, "~> 1.0.0", [hex: :hpax, repo: "hexpm", optional: false]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:thousand_island, "~> 1.0", [hex: :thousand_island, repo: "hexpm", optional: false]}, {:websock, "~> 0.5", [hex: :websock, repo: "hexpm", optional: false]}], "hexpm", "f2dd92ae87d2cbea2fa9aa1652db157b6cba6c405cb44d4f6dd87abba41371cd"},
|
||||||
|
"castore": {:hex, :castore, "1.0.9", "5cc77474afadf02c7c017823f460a17daa7908e991b0cc917febc90e466a375c", [:mix], [], "hexpm", "5ea956504f1ba6f2b4eb707061d8e17870de2bee95fb59d512872c2ef06925e7"},
|
||||||
|
"date_time_parser": {:hex, :date_time_parser, "1.2.0", "3d5a816b91967f51e0f94dcb16a34b2cb780f22cd48931779e81d72f7d3eadb1", [:mix], [{:kday, "~> 1.0", [hex: :kday, repo: "hexpm", optional: false]}], "hexpm", "0cf09ada9f42c0b3bfba02dc0ea2e4b4d2f543d9d2bf99b831a29e6b4a4160e5"},
|
||||||
|
"file_system": {:hex, :file_system, "1.0.1", "79e8ceaddb0416f8b8cd02a0127bdbababe7bf4a23d2a395b983c1f8b3f73edd", [:mix], [], "hexpm", "4414d1f38863ddf9120720cd976fce5bdde8e91d8283353f0e31850fa89feb9e"},
|
||||||
|
"floki": {:hex, :floki, "0.36.3", "1102f93b16a55bc5383b85ae3ec470f82dee056eaeff9195e8afdf0ef2a43c30", [:mix], [], "hexpm", "fe0158bff509e407735f6d40b3ee0d7deb47f3f3ee7c6c182ad28599f9f6b27a"},
|
||||||
|
"hpax": {:hex, :hpax, "1.0.0", "28dcf54509fe2152a3d040e4e3df5b265dcb6cb532029ecbacf4ce52caea3fd2", [:mix], [], "hexpm", "7f1314731d711e2ca5fdc7fd361296593fc2542570b3105595bb0bc6d0fad601"},
|
||||||
|
"html_entities": {:hex, :html_entities, "0.5.2", "9e47e70598da7de2a9ff6af8758399251db6dbb7eebe2b013f2bbd2515895c3c", [:mix], [], "hexpm", "c53ba390403485615623b9531e97696f076ed415e8d8058b1dbaa28181f4fdcc"},
|
||||||
|
"kday": {:hex, :kday, "1.1.0", "64efac85279a12283eaaf3ad6f13001ca2dff943eda8c53288179775a8c057a0", [:mix], [{:ex_doc, "~> 0.21", [hex: :ex_doc, repo: "hexpm", optional: true]}], "hexpm", "69703055d63b8d5b260479266c78b0b3e66f7aecdd2022906cd9bf09892a266d"},
|
||||||
|
"libgraph": {:hex, :libgraph, "0.16.0", "3936f3eca6ef826e08880230f806bfea13193e49bf153f93edcf0239d4fd1d07", [:mix], [], "hexpm", "41ca92240e8a4138c30a7e06466acc709b0cbb795c643e9e17174a178982d6bf"},
|
||||||
|
"mdex": {:hex, :mdex, "0.2.0", "af93e03bc964f2628c3940d22ba03435b119e070bd423fd62d31772d428a7e6c", [:mix], [{:rustler, "~> 0.32", [hex: :rustler, repo: "hexpm", optional: true]}, {:rustler_precompiled, "~> 0.7", [hex: :rustler_precompiled, repo: "hexpm", optional: false]}], "hexpm", "d8d21d3d6ecb0b2a10f88b539f3a61df974f9570226bf6bd24404c9e361c8089"},
|
||||||
|
"mime": {:hex, :mime, "2.0.6", "8f18486773d9b15f95f4f4f1e39b710045fa1de891fada4516559967276e4dc2", [:mix], [], "hexpm", "c9945363a6b26d747389aac3643f8e0e09d30499a138ad64fe8fd1d13d9b153e"},
|
||||||
|
"phoenix": {:hex, :phoenix, "1.7.14", "a7d0b3f1bc95987044ddada111e77bd7f75646a08518942c72a8440278ae7825", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.1", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.7", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:websock_adapter, "~> 0.5.3", [hex: :websock_adapter, repo: "hexpm", optional: false]}], "hexpm", "c7859bc56cc5dfef19ecfc240775dae358cbaa530231118a9e014df392ace61a"},
|
||||||
|
"phoenix_html": {:hex, :phoenix_html, "4.1.1", "4c064fd3873d12ebb1388425a8f2a19348cef56e7289e1998e2d2fa758aa982e", [:mix], [], "hexpm", "f2f2df5a72bc9a2f510b21497fd7d2b86d932ec0598f0210fed4114adc546c6f"},
|
||||||
|
"phoenix_live_view": {:hex, :phoenix_live_view, "0.20.17", "f396bbdaf4ba227b82251eb75ac0afa6b3da5e509bc0d030206374237dfc9450", [:mix], [{:floki, "~> 0.36", [hex: :floki, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6.15 or ~> 1.7.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.3 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.15", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "a61d741ffb78c85fdbca0de084da6a48f8ceb5261a79165b5a0b59e5f65ce98b"},
|
||||||
|
"phoenix_pubsub": {:hex, :phoenix_pubsub, "2.1.3", "3168d78ba41835aecad272d5e8cd51aa87a7ac9eb836eabc42f6e57538e3731d", [:mix], [], "hexpm", "bba06bc1dcfd8cb086759f0edc94a8ba2bc8896d5331a1e2c2902bf8e36ee502"},
|
||||||
|
"phoenix_template": {:hex, :phoenix_template, "1.0.4", "e2092c132f3b5e5b2d49c96695342eb36d0ed514c5b252a77048d5969330d639", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}], "hexpm", "2c0c81f0e5c6753faf5cca2f229c9709919aba34fab866d3bc05060c9c444206"},
|
||||||
|
"plug": {:hex, :plug, "1.16.1", "40c74619c12f82736d2214557dedec2e9762029b2438d6d175c5074c933edc9d", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "a13ff6b9006b03d7e33874945b2755253841b238c34071ed85b0e86057f8cddc"},
|
||||||
|
"plug_crypto": {:hex, :plug_crypto, "2.1.0", "f44309c2b06d249c27c8d3f65cfe08158ade08418cf540fd4f72d4d6863abb7b", [:mix], [], "hexpm", "131216a4b030b8f8ce0f26038bc4421ae60e4bb95c5cf5395e1421437824c4fa"},
|
||||||
|
"plug_static_index_html": {:hex, :plug_static_index_html, "1.0.0", "840123d4d3975585133485ea86af73cb2600afd7f2a976f9f5fd8b3808e636a0", [:mix], [{:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "79fd4fcf34d110605c26560cbae8f23c603ec4158c08298bd4360fdea90bb5cf"},
|
||||||
|
"rustler_precompiled": {:hex, :rustler_precompiled, "0.8.2", "5f25cbe220a8fac3e7ad62e6f950fcdca5a5a5f8501835d2823e8c74bf4268d5", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:rustler, "~> 0.23", [hex: :rustler, repo: "hexpm", optional: true]}], "hexpm", "63d1bd5f8e23096d1ff851839923162096364bac8656a4a3c00d1fff8e83ee0a"},
|
||||||
|
"schematic": {:hex, :schematic, "0.4.0", "2b3c4865c919bb9392251aba4198982f7be8785bc37c732ccfe672a3e19e4591", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "692747901601f4b511171fbd3a4032bf13d84dc81d52e827f041373ce2035588"},
|
||||||
|
"tableau": {:hex, :tableau, "0.18.0", "5fdbbbe95c9ca9c5f46002cff795fe5de07a0ce69c7dc8f1a00734742194e919", [:mix], [{:bandit, "~> 1.0", [hex: :bandit, repo: "hexpm", optional: false]}, {:date_time_parser, "~> 1.2", [hex: :date_time_parser, repo: "hexpm", optional: false]}, {:floki, "~> 0.34", [hex: :floki, repo: "hexpm", optional: false]}, {:html_entities, "~> 0.5.2", [hex: :html_entities, repo: "hexpm", optional: false]}, {:libgraph, "~> 0.16.0", [hex: :libgraph, repo: "hexpm", optional: false]}, {:mdex, "~> 0.2.0", [hex: :mdex, repo: "hexpm", optional: false]}, {:plug_static_index_html, "~> 1.0", [hex: :plug_static_index_html, repo: "hexpm", optional: false]}, {:schematic, "~> 0.4", [hex: :schematic, repo: "hexpm", optional: false]}, {:tz, "~> 0.28.1", [hex: :tz, repo: "hexpm", optional: false]}, {:web_dev_utils, "~> 0.2", [hex: :web_dev_utils, repo: "hexpm", optional: false]}, {:websock_adapter, "~> 0.5", [hex: :websock_adapter, repo: "hexpm", optional: false]}, {:xml_builder, "~> 2.1", [hex: :xml_builder, repo: "hexpm", optional: false]}, {:yaml_elixir, "~> 2.9", [hex: :yaml_elixir, repo: "hexpm", optional: false]}], "hexpm", "a210c84f73ff6571865b554a41f1f9c3a9ada9682fd2c911e82ad35900b71c0f"},
|
||||||
|
"telemetry": {:hex, :telemetry, "1.3.0", "fedebbae410d715cf8e7062c96a1ef32ec22e764197f70cda73d82778d61e7a2", [:rebar3], [], "hexpm", "7015fc8919dbe63764f4b4b87a95b7c0996bd539e0d499be6ec9d7f3875b79e6"},
|
||||||
|
"thousand_island": {:hex, :thousand_island, "1.3.5", "6022b6338f1635b3d32406ff98d68b843ba73b3aa95cfc27154223244f3a6ca5", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "2be6954916fdfe4756af3239fb6b6d75d0b8063b5df03ba76fd8a4c87849e180"},
|
||||||
|
"tz": {:hex, :tz, "0.28.1", "717f5ffddfd1e475e2a233e221dc0b4b76c35c4b3650b060c8e3ba29dd6632e9", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:mint, "~> 1.6", [hex: :mint, repo: "hexpm", optional: true]}], "hexpm", "bfdca1aa1902643c6c43b77c1fb0cb3d744fd2f09a8a98405468afdee0848c8a"},
|
||||||
|
"web_dev_utils": {:hex, :web_dev_utils, "0.2.0", "3bcd109d1ac18445d06db095d5cfdca5de7586022641c0b09b0702788b8e4ea8", [:mix], [{:file_system, "~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}], "hexpm", "595e9bd35440ea2add0156ae9e68e578d986805d801dacf22b13067ca48980ed"},
|
||||||
|
"websock": {:hex, :websock, "0.5.3", "2f69a6ebe810328555b6fe5c831a851f485e303a7c8ce6c5f675abeb20ebdadc", [:mix], [], "hexpm", "6105453d7fac22c712ad66fab1d45abdf049868f253cf719b625151460b8b453"},
|
||||||
|
"websock_adapter": {:hex, :websock_adapter, "0.5.7", "65fa74042530064ef0570b75b43f5c49bb8b235d6515671b3d250022cb8a1f9e", [:mix], [{:bandit, ">= 0.6.0", [hex: :bandit, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.6", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:websock, "~> 0.5", [hex: :websock, repo: "hexpm", optional: false]}], "hexpm", "d0f478ee64deddfec64b800673fd6e0c8888b079d9f3444dd96d2a98383bdbd1"},
|
||||||
|
"xml_builder": {:hex, :xml_builder, "2.3.0", "69d214c6ad41ae1300b36acff4367551cdfd9dc1b860affc16e103c6b1589053", [:mix], [], "hexpm", "972ec33346a225cd5acd14ab23d4e79042bd37cb904e07e24cd06992dde1a0ed"},
|
||||||
|
"yamerl": {:hex, :yamerl, "0.10.0", "4ff81fee2f1f6a46f1700c0d880b24d193ddb74bd14ef42cb0bcf46e81ef2f8e", [:rebar3], [], "hexpm", "346adb2963f1051dc837a2364e4acf6eb7d80097c0f53cbdc3046ec8ec4b4e6e"},
|
||||||
|
"yaml_elixir": {:hex, :yaml_elixir, "2.11.0", "9e9ccd134e861c66b84825a3542a1c22ba33f338d82c07282f4f1f52d847bd50", [:mix], [{:yamerl, "~> 0.10", [hex: :yamerl, repo: "hexpm", optional: false]}], "hexpm", "53cc28357ee7eb952344995787f4bb8cc3cecbf189652236e9b163e8ce1bc242"},
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
:root {
|
||||||
|
color-scheme: dark light;
|
||||||
|
}
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 239 KiB |
|
@ -0,0 +1,36 @@
|
||||||
|
---
|
||||||
|
layout: Website.PostLayout
|
||||||
|
title: Test Post
|
||||||
|
date: 2024-11-8
|
||||||
|
categories: post
|
||||||
|
permalink: "/test-post"
|
||||||
|
---
|
||||||
|
|
||||||
|
I’d love to drop anchor in your lagoon. Brwaack! Polly want a cracker? … Oh, wait. That’s for Talk Like a PARROT Day. That’s quite a cutlass ye got thar, what ye need is a good scabbard! Take what you can, give nothing back And that was done without a single drop of rum… The existence of the sea means the existence of pirates.
|
||||||
|
|
||||||
|
Let’s get together and haul some keel. Aye, I guarantee ye, I’ve had a twenty percent decrease in me “lice ratio!” Me I’m Dishonest. And A Dishonest Man You Can Always Trust To Be Dishonest. Honestly Its The Honest Ones You Want To Watch Out For Because You Never Know When They Are Going To Do Something Completely Stupid! The rougher the seas, the smoother we sail. Ahoy! Give me freedom or give me the rope. For I shall not take the shackles that subjugate the poor to uphold the rich. Drink up me hearties yoho …a pirates life for me The average man will bristle if you say his father was dishonest, but he will brag a little if he discovers that his great- grandfather was a pirate.
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
#!/bin/sh
|
||||||
|
if [[ ! $1 ]]; then
|
||||||
|
user="siinamonster"
|
||||||
|
else
|
||||||
|
user="$1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
api_url="https://api.listenbrainz.org/1/user/$user/playing-now"
|
||||||
|
|
||||||
|
data=$(curl -s $api_url | jq -r '.payload.listens[0].track_metadata')
|
||||||
|
artist=$(echo "$data" | jq '.artist_name' | tr -d '"')
|
||||||
|
track=$(echo "$data" | jq '.track_name' | tr -d '"')
|
||||||
|
|
||||||
|
if [[ "$artist" != "null" ]]; then
|
||||||
|
echo "Currently playing: $artist" - "$track"
|
||||||
|
else
|
||||||
|
echo "Not listening to anything right now."
|
||||||
|
fi
|
||||||
|
```
|
||||||
|
|
||||||
|
Come on up and see me urchins. Prepare to be boarded. That’s the finest pirate booty I’ve ever laid eyes on. What are YOU doing here? Life’s pretty good, and why wouldn’t it be? I’m a pirate, after all. Shiver me timbers.
|
||||||
|
|
||||||
|
Pardon me, but would ya mind if I fired me cannon through your porthole? Take what you can, give nothing back There comes a time in most men’s lives where they feel the need to raise the Black Flag. you know, thats the 2nd time I’v watched that man sail away with my ship. “I’ve got a jar of dirt! I’ve got a jar of dirt, and guess what’s inside it?” “Why is the rum always gone?” Land was created to provide a place for boats to visit.
|
Loading…
Reference in New Issue