rename from llmex to monotab
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
# llmex
|
||||
# MonoTab
|
||||
|
||||
## Getting Started
|
||||
|
||||
Once you bootstrap and enter your project, fetch your dependencies and start the build server. The server is available at http://localhost:4999
|
||||
|
||||
```shell
|
||||
cd llmex
|
||||
cd monotab
|
||||
mix deps.get
|
||||
|
||||
mix tableau.server
|
||||
|
@@ -1,8 +1,8 @@
|
||||
---
|
||||
title: "Test Post: Getting Started with Elixir"
|
||||
date: "2024-01-15"
|
||||
author: "Llmex Team"
|
||||
layout: Llmex.PostLayout
|
||||
author: "MonoTab Team"
|
||||
layout: MonoTab.PostLayout
|
||||
---
|
||||
|
||||
# Getting Started with Elixir
|
||||
@@ -55,4 +55,4 @@ Elixir's pipe operator (`|>`) allows for clean, readable code:
|
||||
|> Enum.count()
|
||||
```
|
||||
|
||||
This blog post is just a simple introduction to Elixir. Stay tuned for more in-depth tutorials and examples!
|
||||
This blog post is just a simple introduction to Elixir. Stay tuned for more in-depth tutorials and examples!
|
||||
|
@@ -1,5 +1,4 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
@@ -7,7 +6,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>
|
||||
Test Post: Getting Started with Elixir | Llmex Blog
|
||||
Test Post: Getting Started with Elixir | MonoTab Blog
|
||||
</title>
|
||||
|
||||
<link rel="stylesheet" href="/css/mono.css">
|
||||
@@ -18,7 +17,7 @@
|
||||
<body class="mono-all">
|
||||
<aside>
|
||||
<nav>
|
||||
<h1><a href="/">Llmex Blog</a></h1>
|
||||
<h1><a href="/">MonoTab Blog</a></h1>
|
||||
<ul>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/posts">Posts</a></li>
|
||||
@@ -71,7 +70,11 @@
|
||||
|
||||
|
||||
<footer>
|
||||
<p>© 2025 Llmex Blog. Built with <a href="https://github.com/artalar/mono" target="_blank">Mono</a> and <a href="https://github.com/elixir-tools/tableau" target="_blank">Tableau</a></p>
|
||||
<p>
|
||||
© 2025 MonoTab Blog. Built with
|
||||
<a href="https://github.com/artalar/mono" target="_blank">Mono</a>
|
||||
and <a href="https://github.com/elixir-tools/tableau" target="_blank">Tableau</a>
|
||||
</p>
|
||||
</footer>
|
||||
</main>
|
||||
</body>
|
||||
|
@@ -1,5 +1,4 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
@@ -7,7 +6,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>
|
||||
Llmex Blog
|
||||
MonoTab Blog
|
||||
</title>
|
||||
|
||||
<link rel="stylesheet" href="/css/mono.css">
|
||||
@@ -18,7 +17,7 @@
|
||||
<body class="mono-all">
|
||||
<aside>
|
||||
<nav>
|
||||
<h1><a href="/">Llmex Blog</a></h1>
|
||||
<h1><a href="/">MonoTab Blog</a></h1>
|
||||
<ul>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/posts">Posts</a></li>
|
||||
@@ -31,8 +30,7 @@
|
||||
<section>
|
||||
<h2>About</h2>
|
||||
<p>
|
||||
Welcome to Llmex Blog, a demonstration of building static sites with Elixir's Tableau generator.
|
||||
This blog showcases the power and elegance of functional programming applied to web development.
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi velit felis, fermentum id dolor luctus, pellentesque aliquam dui. In hac habitasse platea dictumst. Cras non erat sed risus aliquet molestie eu eget massa.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
@@ -40,17 +38,21 @@
|
||||
<h2>Technology Stack</h2>
|
||||
<p>This blog is built using:</p>
|
||||
<ul>
|
||||
<li><a href="https://github.com/elixir-tools/tableau" target="_blank">Tableau</a> - Static site generator for Elixir</li>
|
||||
<li><a href="https://github.com/artalar/mono" target="_blank">Mono</a> - A brutalist CSS framework for clean, semantic styling</li>
|
||||
<li>
|
||||
<a href="https://github.com/elixir-tools/tableau" target="_blank">Tableau</a>
|
||||
- Static site generator for Elixir
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://github.com/artalar/mono" target="_blank">Mono</a>
|
||||
- A brutalist CSS framework for clean, semantic styling
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Our Philosophy</h2>
|
||||
<p>
|
||||
We believe in the power of functional programming to create maintainable,
|
||||
scalable, and elegant solutions. Through this blog, we aim to share insights,
|
||||
tutorials, and experiences from the world of Elixir and functional web development.
|
||||
Proin nec sem vitae neque vehicula sagittis. Curabitur placerat, magna vel sodales rutrum, turpis massa cursus justo, quis faucibus nisl ante non est. Quisque eget dui venenatis, luctus ligula eget, malesuada nisl.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
@@ -63,7 +65,11 @@
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
<p>© 2025 Llmex Blog. Built with <a href="https://github.com/artalar/mono" target="_blank">Mono</a> and <a href="https://github.com/elixir-tools/tableau" target="_blank">Tableau</a></p>
|
||||
<p>
|
||||
© 2025 MonoTab Blog. Built with
|
||||
<a href="https://github.com/artalar/mono" target="_blank">Mono</a>
|
||||
and <a href="https://github.com/elixir-tools/tableau" target="_blank">Tableau</a>
|
||||
</p>
|
||||
</footer>
|
||||
</main>
|
||||
</body>
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<atom:link href="http://localhost:4999/feed.xml" rel="self" type="application/rss+xml" />
|
||||
<title>llmex</title>
|
||||
<title>monotab</title>
|
||||
<link>http://localhost:4999</link>
|
||||
<description>My beautiful website</description>
|
||||
<language>en-us</language>
|
||||
|
@@ -1,5 +1,4 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
@@ -7,7 +6,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>
|
||||
Llmex Blog
|
||||
MonoTab Blog
|
||||
</title>
|
||||
|
||||
<link rel="stylesheet" href="/css/mono.css">
|
||||
@@ -18,7 +17,7 @@
|
||||
<body class="mono-all">
|
||||
<aside>
|
||||
<nav>
|
||||
<h1><a href="/">Llmex Blog</a></h1>
|
||||
<h1><a href="/">MonoTab Blog</a></h1>
|
||||
<ul>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/posts">Posts</a></li>
|
||||
@@ -29,15 +28,18 @@
|
||||
|
||||
<main>
|
||||
<section>
|
||||
<h2>Welcome to Llmex Blog</h2>
|
||||
<h2>Welcome</h2>
|
||||
<p>
|
||||
A simple blog built with Elixir, Phoenix LiveView, and Tableau static site generator.
|
||||
Explore our latest posts and insights on functional programming, web development, and more.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
<p>© 2025 Llmex Blog. Built with <a href="https://github.com/artalar/mono" target="_blank">Mono</a> and <a href="https://github.com/elixir-tools/tableau" target="_blank">Tableau</a></p>
|
||||
<p>
|
||||
© 2025 MonoTab Blog. Built with
|
||||
<a href="https://github.com/artalar/mono" target="_blank">Mono</a>
|
||||
and <a href="https://github.com/elixir-tools/tableau" target="_blank">Tableau</a>
|
||||
</p>
|
||||
</footer>
|
||||
</main>
|
||||
</body>
|
||||
|
@@ -1,5 +1,4 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
@@ -7,7 +6,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>
|
||||
Llmex Blog
|
||||
MonoTab Blog
|
||||
</title>
|
||||
|
||||
<link rel="stylesheet" href="/css/mono.css">
|
||||
@@ -18,7 +17,7 @@
|
||||
<body class="mono-all">
|
||||
<aside>
|
||||
<nav>
|
||||
<h1><a href="/">Llmex Blog</a></h1>
|
||||
<h1><a href="/">MonoTab Blog</a></h1>
|
||||
<ul>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/posts">Posts</a></li>
|
||||
@@ -65,7 +64,11 @@
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
<p>© 2025 Llmex Blog. Built with <a href="https://github.com/artalar/mono" target="_blank">Mono</a> and <a href="https://github.com/elixir-tools/tableau" target="_blank">Tableau</a></p>
|
||||
<p>
|
||||
© 2025 MonoTab Blog. Built with
|
||||
<a href="https://github.com/artalar/mono" target="_blank">Mono</a>
|
||||
and <a href="https://github.com/elixir-tools/tableau" target="_blank">Tableau</a>
|
||||
</p>
|
||||
</footer>
|
||||
</main>
|
||||
</body>
|
||||
|
@@ -1 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"><url><loc>http://localhost:4999/about</loc></url><url><loc>http://localhost:4999/</loc></url><url><loc>http://localhost:4999/posts</loc></url><url><lastmod>2024-01-15T00:00:00Z</lastmod><loc>http://localhost:4999/2024-01-15-test-post</loc></url></urlset>
|
||||
<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"><url><loc>http://localhost:4999/posts</loc></url><url><loc>http://localhost:4999/</loc></url><url><loc>http://localhost:4999/about</loc></url><url><lastmod>2024-01-15T00:00:00Z</lastmod><loc>http://localhost:4999/2024-01-15-test-post</loc></url></urlset>
|
@@ -3,17 +3,14 @@ import Config
|
||||
config :tableau, :reloader,
|
||||
patterns: [
|
||||
~r"^lib/.*.ex",
|
||||
~r"^(_posts|_pages)/.*.md",~r"^extra/.*.(css|js)"
|
||||
~r"^(_posts|_pages)/.*.md",
|
||||
~r"^extra/.*.(css|js)"
|
||||
]
|
||||
|
||||
config :web_dev_utils, :reload_log, true
|
||||
# uncomment this if you use something like ngrok
|
||||
# config :web_dev_utils, :reload_url, "'wss://' + location.host + '/ws'"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
config :tableau, :config,
|
||||
url: "http://localhost:4999",
|
||||
markdown: [
|
||||
@@ -39,10 +36,9 @@ config :tableau, Tableau.SitemapExtension, enabled: true
|
||||
|
||||
config :tableau, Tableau.RSSExtension,
|
||||
enabled: true,
|
||||
title: "llmex",
|
||||
title: "monotab",
|
||||
description: "My beautiful website"
|
||||
|
||||
config :elixir, :time_zone_database, Tz.TimeZoneDatabase
|
||||
|
||||
import_config "#{Mix.env()}.exs"
|
||||
|
||||
|
@@ -1,25 +1,25 @@
|
||||
defmodule Llmex.IndexLayout do
|
||||
use Tableau.Layout, layout: Llmex.RootLayout
|
||||
defmodule MonoTab.IndexLayout do
|
||||
use Tableau.Layout, layout: MonoTab.RootLayout
|
||||
use Phoenix.Component
|
||||
|
||||
def template(assigns) do
|
||||
~H"""
|
||||
<h1><%= @page[:title] || "Latest Posts" %></h1>
|
||||
<h1>{@page[:title] || "Latest Posts"}</h1>
|
||||
|
||||
<%= if @page[:description] do %>
|
||||
<p><%= @page[:description] %></p>
|
||||
<p>{@page[:description]}</p>
|
||||
<% end %>
|
||||
|
||||
<%= if assigns[:posts] && length(@posts) > 0 do %>
|
||||
<ul>
|
||||
<%= for post <- @posts do %>
|
||||
<li>
|
||||
<h2><a href={post.permalink}><%= post.title %></a></h2>
|
||||
<h2><a href={post.permalink}>{post.title}</a></h2>
|
||||
<%= if post[:date] do %>
|
||||
<time datetime={post[:date]}><%= format_date(post[:date]) %></time>
|
||||
<time datetime={post[:date]}>{format_date(post[:date])}</time>
|
||||
<% end %>
|
||||
<%= if post[:description] do %>
|
||||
<p><%= post[:description] %></p>
|
||||
<p>{post[:description]}</p>
|
||||
<% end %>
|
||||
</li>
|
||||
<% end %>
|
||||
@@ -28,7 +28,7 @@ defmodule Llmex.IndexLayout do
|
||||
<p>No posts found.</p>
|
||||
<% end %>
|
||||
|
||||
<%= {:safe, render(@inner_content)} %>
|
||||
{{:safe, render(@inner_content)}}
|
||||
"""
|
||||
end
|
||||
|
||||
|
@@ -1,10 +1,10 @@
|
||||
defmodule Llmex.PageLayout do
|
||||
use Tableau.Layout, layout: Llmex.RootLayout
|
||||
defmodule MonoTab.PageLayout do
|
||||
use Tableau.Layout, layout: MonoTab.RootLayout
|
||||
use Phoenix.Component
|
||||
|
||||
def template(assigns) do
|
||||
~H"""
|
||||
<%= {:safe, render(@inner_content)} %>
|
||||
{{:safe, render(@inner_content)}}
|
||||
"""
|
||||
end
|
||||
end
|
||||
|
@@ -1,12 +1,12 @@
|
||||
defmodule Llmex.PostLayout do
|
||||
use Tableau.Layout, layout: Llmex.RootLayout
|
||||
defmodule MonoTab.PostLayout do
|
||||
use Tableau.Layout, layout: MonoTab.RootLayout
|
||||
use Phoenix.Component
|
||||
|
||||
def template(assigns) do
|
||||
~H"""
|
||||
<%= {:safe, render(@inner_content)} %>
|
||||
{{:safe, render(@inner_content)}}
|
||||
<%= if @page[:date] do %>
|
||||
<time datetime={@page[:date]}><%= format_date(@page[:date]) %></time>
|
||||
<time datetime={@page[:date]}>{format_date(@page[:date])}</time>
|
||||
<% end %>
|
||||
"""
|
||||
end
|
||||
|
@@ -1,11 +1,10 @@
|
||||
defmodule Llmex.RootLayout do
|
||||
defmodule MonoTab.RootLayout do
|
||||
use Tableau.Layout
|
||||
use Phoenix.Component
|
||||
|
||||
def template(assigns) do
|
||||
~H"""
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
@@ -13,21 +12,24 @@ defmodule Llmex.RootLayout do
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
|
||||
<title>
|
||||
<%= [@page[:title], "Llmex Blog"]
|
||||
|> Enum.filter(& &1)
|
||||
|> Enum.intersperse("|")
|
||||
|> Enum.join(" ") %>
|
||||
{[@page[:title], "MonoTab Blog"]
|
||||
|> Enum.filter(& &1)
|
||||
|> Enum.intersperse("|")
|
||||
|> Enum.join(" ")}
|
||||
</title>
|
||||
|
||||
<link rel="stylesheet" href="/css/mono.css" />
|
||||
<link rel="stylesheet" href="/css/responsive.css" />
|
||||
<meta name="description" content={@page[:description] || "A simple blog built with Elixir and Tableau"} />
|
||||
<meta
|
||||
name="description"
|
||||
content={@page[:description] || "A simple blog built with Elixir and Tableau"}
|
||||
/>
|
||||
</head>
|
||||
|
||||
<body class="mono-all">
|
||||
<aside>
|
||||
<nav>
|
||||
<h1><a href="/">Llmex Blog</a></h1>
|
||||
<h1><a href="/">MonoTab Blog</a></h1>
|
||||
<ul>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/posts">Posts</a></li>
|
||||
@@ -37,16 +39,20 @@ defmodule Llmex.RootLayout do
|
||||
</aside>
|
||||
|
||||
<main>
|
||||
<%= render @inner_content %>
|
||||
{render(@inner_content)}
|
||||
|
||||
<footer>
|
||||
<p>© <%= Date.utc_today().year %> Llmex Blog. Built with <a href="https://github.com/artalar/mono" target="_blank">Mono</a> and <a href="https://github.com/elixir-tools/tableau" target="_blank">Tableau</a></p>
|
||||
<p>
|
||||
© {Date.utc_today().year} MonoTab Blog. Built with
|
||||
<a href="https://github.com/artalar/mono" target="_blank">Mono</a>
|
||||
and <a href="https://github.com/elixir-tools/tableau" target="_blank">Tableau</a>
|
||||
</p>
|
||||
</footer>
|
||||
</main>
|
||||
</body>
|
||||
|
||||
<%= if Mix.env() == :dev do %>
|
||||
<%= Phoenix.HTML.raw(Tableau.live_reload(assigns)) %>
|
||||
{Phoenix.HTML.raw(Tableau.live_reload(assigns))}
|
||||
<% end %>
|
||||
</html>
|
||||
"""
|
||||
|
@@ -1,4 +1,4 @@
|
||||
defmodule Mix.Tasks.Llmex.Gen.Post do
|
||||
defmodule Mix.Tasks.MonoTab.Gen.Post do
|
||||
use Mix.Task
|
||||
|
||||
@shortdoc "Generate a new post"
|
||||
@@ -30,7 +30,7 @@ defmodule Mix.Tasks.Llmex.Gen.Post do
|
||||
|
||||
front_matter = """
|
||||
---
|
||||
layout: Llmex.PostLayout
|
||||
layout: MonoTab.PostLayout
|
||||
title: \"#{post_title}\"
|
||||
date: #{post_date} #{post_time}
|
||||
permalink: /:title/
|
||||
@@ -42,4 +42,3 @@ defmodule Mix.Tasks.Llmex.Gen.Post do
|
||||
Mix.shell().info("Succesfully created #{file_path}!")
|
||||
end
|
||||
end
|
||||
|
||||
|
@@ -1,7 +1,8 @@
|
||||
defmodule Llmex.Pages.About do
|
||||
defmodule MonoTab.Pages.About do
|
||||
use Tableau.Page,
|
||||
layout: Llmex.PageLayout,
|
||||
layout: MonoTab.PageLayout,
|
||||
permalink: "/about"
|
||||
|
||||
use Phoenix.Component
|
||||
|
||||
def template(assigns) do
|
||||
@@ -9,8 +10,7 @@ defmodule Llmex.Pages.About do
|
||||
<section>
|
||||
<h2>About</h2>
|
||||
<p>
|
||||
Welcome to Llmex Blog, a demonstration of building static sites with Elixir's Tableau generator.
|
||||
This blog showcases the power and elegance of functional programming applied to web development.
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi velit felis, fermentum id dolor luctus, pellentesque aliquam dui. In hac habitasse platea dictumst. Cras non erat sed risus aliquet molestie eu eget massa.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
@@ -18,17 +18,21 @@ defmodule Llmex.Pages.About do
|
||||
<h2>Technology Stack</h2>
|
||||
<p>This blog is built using:</p>
|
||||
<ul>
|
||||
<li><a href="https://github.com/elixir-tools/tableau" target="_blank">Tableau</a> - Static site generator for Elixir</li>
|
||||
<li><a href="https://github.com/artalar/mono" target="_blank">Mono</a> - A brutalist CSS framework for clean, semantic styling</li>
|
||||
<li>
|
||||
<a href="https://github.com/elixir-tools/tableau" target="_blank">Tableau</a>
|
||||
- Static site generator for Elixir
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://github.com/artalar/mono" target="_blank">Mono</a>
|
||||
- A brutalist CSS framework for clean, semantic styling
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Our Philosophy</h2>
|
||||
<p>
|
||||
We believe in the power of functional programming to create maintainable,
|
||||
scalable, and elegant solutions. Through this blog, we aim to share insights,
|
||||
tutorials, and experiences from the world of Elixir and functional web development.
|
||||
Proin nec sem vitae neque vehicula sagittis. Curabitur placerat, magna vel sodales rutrum, turpis massa cursus justo, quis faucibus nisl ante non est. Quisque eget dui venenatis, luctus ligula eget, malesuada nisl.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
|
@@ -1,16 +1,16 @@
|
||||
defmodule Llmex.Pages.Index do
|
||||
defmodule MonoTab.Pages.Index do
|
||||
use Tableau.Page,
|
||||
layout: Llmex.RootLayout,
|
||||
layout: MonoTab.RootLayout,
|
||||
permalink: "/"
|
||||
|
||||
use Phoenix.Component
|
||||
|
||||
def template(assigns) do
|
||||
~H"""
|
||||
<section>
|
||||
<h2>Welcome to Llmex Blog</h2>
|
||||
<h2>Welcome</h2>
|
||||
<p>
|
||||
A simple blog built with Elixir, Phoenix LiveView, and Tableau static site generator.
|
||||
Explore our latest posts and insights on functional programming, web development, and more.
|
||||
</p>
|
||||
</section>
|
||||
"""
|
||||
|
@@ -1,7 +1,8 @@
|
||||
defmodule Llmex.Pages.Posts do
|
||||
defmodule MonoTab.Pages.Posts do
|
||||
use Tableau.Page,
|
||||
layout: Llmex.IndexLayout,
|
||||
layout: MonoTab.IndexLayout,
|
||||
permalink: "/posts"
|
||||
|
||||
use Phoenix.Component
|
||||
|
||||
def template(assigns) do
|
||||
|
Reference in New Issue
Block a user