first commit: basic site and first post!
This commit is contained in:
commit
e83de82992
17 changed files with 512 additions and 0 deletions
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
.jekyll-cache
|
||||
/_site
|
4
Gemfile
Normal file
4
Gemfile
Normal file
|
@ -0,0 +1,4 @@
|
|||
# frozen_string_literal: true
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem "jekyll", "~> 4.3"
|
167
Gemfile.lock
Normal file
167
Gemfile.lock
Normal file
|
@ -0,0 +1,167 @@
|
|||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
addressable (2.8.7)
|
||||
public_suffix (>= 2.0.2, < 7.0)
|
||||
bigdecimal (3.1.8)
|
||||
colorator (1.1.0)
|
||||
concurrent-ruby (1.3.4)
|
||||
em-websocket (0.5.3)
|
||||
eventmachine (>= 0.12.9)
|
||||
http_parser.rb (~> 0)
|
||||
eventmachine (1.2.7)
|
||||
ffi (1.17.0)
|
||||
ffi (1.17.0-aarch64-linux-gnu)
|
||||
ffi (1.17.0-aarch64-linux-musl)
|
||||
ffi (1.17.0-arm-linux-gnu)
|
||||
ffi (1.17.0-arm-linux-musl)
|
||||
ffi (1.17.0-arm64-darwin)
|
||||
ffi (1.17.0-x86-linux-gnu)
|
||||
ffi (1.17.0-x86-linux-musl)
|
||||
ffi (1.17.0-x86_64-darwin)
|
||||
ffi (1.17.0-x86_64-linux-gnu)
|
||||
ffi (1.17.0-x86_64-linux-musl)
|
||||
forwardable-extended (2.6.0)
|
||||
google-protobuf (4.28.0)
|
||||
bigdecimal
|
||||
rake (>= 13)
|
||||
google-protobuf (4.28.0-aarch64-linux)
|
||||
bigdecimal
|
||||
rake (>= 13)
|
||||
google-protobuf (4.28.0-arm64-darwin)
|
||||
bigdecimal
|
||||
rake (>= 13)
|
||||
google-protobuf (4.28.0-x86-linux)
|
||||
bigdecimal
|
||||
rake (>= 13)
|
||||
google-protobuf (4.28.0-x86_64-darwin)
|
||||
bigdecimal
|
||||
rake (>= 13)
|
||||
google-protobuf (4.28.0-x86_64-linux)
|
||||
bigdecimal
|
||||
rake (>= 13)
|
||||
http_parser.rb (0.8.0)
|
||||
i18n (1.14.5)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jekyll (4.3.3)
|
||||
addressable (~> 2.4)
|
||||
colorator (~> 1.0)
|
||||
em-websocket (~> 0.5)
|
||||
i18n (~> 1.0)
|
||||
jekyll-sass-converter (>= 2.0, < 4.0)
|
||||
jekyll-watch (~> 2.0)
|
||||
kramdown (~> 2.3, >= 2.3.1)
|
||||
kramdown-parser-gfm (~> 1.0)
|
||||
liquid (~> 4.0)
|
||||
mercenary (>= 0.3.6, < 0.5)
|
||||
pathutil (~> 0.9)
|
||||
rouge (>= 3.0, < 5.0)
|
||||
safe_yaml (~> 1.0)
|
||||
terminal-table (>= 1.8, < 4.0)
|
||||
webrick (~> 1.7)
|
||||
jekyll-sass-converter (3.0.0)
|
||||
sass-embedded (~> 1.54)
|
||||
jekyll-watch (2.2.1)
|
||||
listen (~> 3.0)
|
||||
kramdown (2.4.0)
|
||||
rexml
|
||||
kramdown-parser-gfm (1.1.0)
|
||||
kramdown (~> 2.0)
|
||||
liquid (4.0.4)
|
||||
listen (3.9.0)
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
mercenary (0.4.0)
|
||||
pathutil (0.16.2)
|
||||
forwardable-extended (~> 2.6)
|
||||
public_suffix (6.0.1)
|
||||
rake (13.2.1)
|
||||
rb-fsevent (0.11.2)
|
||||
rb-inotify (0.11.1)
|
||||
ffi (~> 1.0)
|
||||
rexml (3.3.7)
|
||||
rouge (4.3.0)
|
||||
safe_yaml (1.0.5)
|
||||
sass-embedded (1.78.0)
|
||||
google-protobuf (~> 4.27)
|
||||
rake (>= 13)
|
||||
sass-embedded (1.78.0-aarch64-linux-android)
|
||||
google-protobuf (~> 4.27)
|
||||
sass-embedded (1.78.0-aarch64-linux-gnu)
|
||||
google-protobuf (~> 4.27)
|
||||
sass-embedded (1.78.0-aarch64-linux-musl)
|
||||
google-protobuf (~> 4.27)
|
||||
sass-embedded (1.78.0-aarch64-mingw-ucrt)
|
||||
google-protobuf (~> 4.27)
|
||||
sass-embedded (1.78.0-arm-linux-androideabi)
|
||||
google-protobuf (~> 4.27)
|
||||
sass-embedded (1.78.0-arm-linux-gnueabihf)
|
||||
google-protobuf (~> 4.27)
|
||||
sass-embedded (1.78.0-arm-linux-musleabihf)
|
||||
google-protobuf (~> 4.27)
|
||||
sass-embedded (1.78.0-arm64-darwin)
|
||||
google-protobuf (~> 4.27)
|
||||
sass-embedded (1.78.0-riscv64-linux-android)
|
||||
google-protobuf (~> 4.27)
|
||||
sass-embedded (1.78.0-riscv64-linux-gnu)
|
||||
google-protobuf (~> 4.27)
|
||||
sass-embedded (1.78.0-riscv64-linux-musl)
|
||||
google-protobuf (~> 4.27)
|
||||
sass-embedded (1.78.0-x86-cygwin)
|
||||
google-protobuf (~> 4.27)
|
||||
sass-embedded (1.78.0-x86-linux-android)
|
||||
google-protobuf (~> 4.27)
|
||||
sass-embedded (1.78.0-x86-linux-gnu)
|
||||
google-protobuf (~> 4.27)
|
||||
sass-embedded (1.78.0-x86-linux-musl)
|
||||
google-protobuf (~> 4.27)
|
||||
sass-embedded (1.78.0-x86-mingw-ucrt)
|
||||
google-protobuf (~> 4.27)
|
||||
sass-embedded (1.78.0-x86_64-cygwin)
|
||||
google-protobuf (~> 4.27)
|
||||
sass-embedded (1.78.0-x86_64-darwin)
|
||||
google-protobuf (~> 4.27)
|
||||
sass-embedded (1.78.0-x86_64-linux-android)
|
||||
google-protobuf (~> 4.27)
|
||||
sass-embedded (1.78.0-x86_64-linux-gnu)
|
||||
google-protobuf (~> 4.27)
|
||||
sass-embedded (1.78.0-x86_64-linux-musl)
|
||||
google-protobuf (~> 4.27)
|
||||
terminal-table (3.0.2)
|
||||
unicode-display_width (>= 1.1.1, < 3)
|
||||
unicode-display_width (2.5.0)
|
||||
webrick (1.8.1)
|
||||
|
||||
PLATFORMS
|
||||
aarch64-linux
|
||||
aarch64-linux-android
|
||||
aarch64-linux-gnu
|
||||
aarch64-linux-musl
|
||||
aarch64-mingw-ucrt
|
||||
arm-linux-androideabi
|
||||
arm-linux-gnu
|
||||
arm-linux-gnueabihf
|
||||
arm-linux-musl
|
||||
arm-linux-musleabihf
|
||||
arm64-darwin
|
||||
riscv64-linux-android
|
||||
riscv64-linux-gnu
|
||||
riscv64-linux-musl
|
||||
ruby
|
||||
x86-cygwin
|
||||
x86-linux
|
||||
x86-linux-android
|
||||
x86-linux-gnu
|
||||
x86-linux-musl
|
||||
x86-mingw-ucrt
|
||||
x86_64-cygwin
|
||||
x86_64-darwin
|
||||
x86_64-linux-android
|
||||
x86_64-linux-gnu
|
||||
x86_64-linux-musl
|
||||
|
||||
DEPENDENCIES
|
||||
jekyll (~> 4.3)
|
||||
|
||||
BUNDLED WITH
|
||||
2.5.18
|
25
_layouts/default.html
Normal file
25
_layouts/default.html
Normal file
|
@ -0,0 +1,25 @@
|
|||
<!doctype html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta charset="utf-8" />
|
||||
<title>{{ page.title }} - OpenNeo Blog</title>
|
||||
<link rel="stylesheet" href="/assets/css/main.css" />
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<a class="logo" href="/" tabindex="-1">
|
||||
<img src="/assets/images/logo.png" />
|
||||
</a>
|
||||
<h1>
|
||||
<a href="/">OpenNeo Blog</a>
|
||||
</h1>
|
||||
<p role="doc-subtitle">
|
||||
For
|
||||
<a href="https://impress.openneo.net/">Dress to Impress</a>, and uhh
|
||||
maybe other things later!
|
||||
</p>
|
||||
</header>
|
||||
{{ content }}
|
||||
</body>
|
||||
</html>
|
19
_layouts/post.html
Normal file
19
_layouts/post.html
Normal file
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
layout: default
|
||||
---
|
||||
|
||||
<main>
|
||||
<article>
|
||||
<header>
|
||||
<h2>
|
||||
<a href="{{ page.url }}">{{ page.title }}</a>
|
||||
</h2>
|
||||
<p role="doc-subtitle">
|
||||
Posted on {{ page.date | date_to_string: "ordinal", "US" }}{% if
|
||||
page.author %}, by {{ page.author }}{% endif %}
|
||||
</p>
|
||||
</header>
|
||||
|
||||
{{ content }}
|
||||
</article>
|
||||
</main>
|
149
_posts/2024-09-11-state-of-dti-2024.md
Normal file
149
_posts/2024-09-11-state-of-dti-2024.md
Normal file
|
@ -0,0 +1,149 @@
|
|||
---
|
||||
layout: post
|
||||
title: "State of DTI: 2024"
|
||||
date: 2024-09-11 12:00:00 -0700
|
||||
author: Matchu
|
||||
---
|
||||
|
||||
Hi, everyone! Hough, this post is a long time coming but I have not had the
|
||||
power of Words—but today I do, and so we write!
|
||||
|
||||
First off, thank you for being so kind and helpful as you always are!
|
||||
Idk if y'all know that like, the community does the majority of the work for
|
||||
DTI? We're just doing our best to keep the lil guy chuggin' along underneath you! And thank you always for your kind words, too 🥺 It helps a lot.
|
||||
|
||||
After 15 years of DTI (what the heck??!), and 15 years of changing
|
||||
circumstances, **our primary focus is keeping DTI around for the long-haul**.
|
||||
|
||||
And, I'll be real with ya, the choices I made in earlier times weren't really designed for decades of operation 😅
|
||||
|
||||
- When I started DTI, I wasn't really uhh, good at working with others? So I
|
||||
never put together a formal team, and I built a codebase that was difficult
|
||||
to share.
|
||||
- And when we rebooted as Impress 2020, I borrowed the technology and design
|
||||
intuition I'd gained in _professional_ software—not realizing that's a
|
||||
level of complexity designed for teams of _fifty_ to keep up with.
|
||||
|
||||
But now, here we are, with _two_ apps instead of one, and just me as the
|
||||
operational bottleneck—and my _own_ life focus has shifted more toward my
|
||||
personal household, with not even enough volunteer time to even do the work to
|
||||
_hand over the keys_ 😖
|
||||
|
||||
So, today, DTI development is mostly a time management game. That's why I've
|
||||
been focusing on long-term choices I hope will change this in the years to
|
||||
come! The themes are **stability, simplicity, and sustainability**.
|
||||
|
||||
_I also want to call out and thank TNT in particular for their help with
|
||||
sustainability!! The NeoPass partnership has been a genuine game changer—I'll
|
||||
talk about it more below!_
|
||||
|
||||
### Stability: Changes to keep the site running
|
||||
|
||||
At the start of the year, DTI was… uhhh, often broken 😖 We'd have multiple
|
||||
days of downtime, and I'll be real with ya: it was _mostly_ an awareness and time management problem.
|
||||
|
||||
Issues generally got resolved within hours or minutes of my sitting down to
|
||||
_fix_ them, but… my world was large, and there were a lot of messes to clean
|
||||
beyond just DTI 😭 So, I didn't discover issues quickly; and when I _did_, it
|
||||
would sometimes take a few hours, or even days, to become available.
|
||||
|
||||
When I was younger, it was easier to be on-call all the time… now, we have to be
|
||||
smarter about it. So, we're being smarter!
|
||||
|
||||
- **🔔 Alerts:** We've set up automated notifications to tell us when the
|
||||
site goes down, or when a new kind of crash appears. _(If you're curious,
|
||||
we're self-hosting [GlitchTip](https://glitchtip.com/)!)_
|
||||
- **⚙️ Auto-monitoring:** For crashes that _kept_ happening, we
|
||||
configured our machine to intervene. _(Like, if the site's RAM usage gets
|
||||
high, we now auto-restart it.)_
|
||||
- **🧑💻 Simplifying:** Reducing the complexity in our whole dang architecture
|
||||
has been huge for stability, too. _(We'll talk about it more below!)_
|
||||
|
||||
With these changes, it's been months since our last like, _major_ downtime
|
||||
event. We're still not as consistent as I'd like to be, but hey—more to come!
|
||||
|
||||
### Simplicity: Cleaning house, clearing hallways
|
||||
|
||||
The high-level goal here is: **I want to remove Impress 2020, but only once we
|
||||
no longer need it**.
|
||||
|
||||
Right now, Dress to Impress is a weird combination of apps… I copy-pasted some
|
||||
of Impress 2020's best UI changes over, but it all still used the
|
||||
Impress 2020 _server_ code, even when you're on `impress.openneo.net`.
|
||||
|
||||
This both doubled the danger of downtime (if _either_ app goes down,
|
||||
that's a problem for both!), and added networking complexities that are hard to
|
||||
track down (hello, "error loading species/color"!)
|
||||
|
||||
Like, it's just not a great situation for stability, _or_ for removing me as a
|
||||
bottleneck. There's too much happening; and too much to know that, right now,
|
||||
only I know! 😬
|
||||
|
||||
So, here's some of the changes we've been making:
|
||||
|
||||
- **➡️ Porting features:** We finally brought Impress 2020's improved
|
||||
Offering/Seeking trade listings page into the main app!
|
||||
- **🌸 Simpler rewrites:** We reimplemented the item page preview in Rails and
|
||||
plain HTML/CSS/JS, instead of being a fragile, frankenstein-y React component using
|
||||
Impress 2020 behind the scenes.
|
||||
- **⚡️ Rewiring the wardrobe:** The main outfit editor still has a _couple_ API
|
||||
calls to Impress 2020, but very few! And we're exploring the possibility of
|
||||
other ways to simplify that page, too.
|
||||
- **🧹 Ancient code cleanups:** As I wander the halls of the very old
|
||||
codebase, I occasionally stumble into something unused, or confusing, or
|
||||
way more complicated than it needs to be. And so I clean up, so my future
|
||||
roommates can be comfy here!
|
||||
|
||||
A lot of it is invisible work, toward the goal of _destroying_ things rather
|
||||
than building them. And that's important for us, I think: **long-term projects
|
||||
with small teams survive by having _less_ stuff going on.**
|
||||
|
||||
I won't get too much into why I chose to stick with upgrading the old app
|
||||
(built with [Rails](https://rubyonrails.org/)), instead of keeping the new
|
||||
Impress 2020 app (built with [Next.js](https://nextjs.org/)). Mostly just, I
|
||||
think the Rails app is simpler tech overall, and leans more into standards that
|
||||
I expect to be longer-lived—and so I expect it to be easier to maintain and
|
||||
welcome new collaborators into long-term!
|
||||
|
||||
We'll check in with y'all before retiring Impress 2020 altogether, I think
|
||||
there's still plenty of steps along the way! We're just doing our best, bit by
|
||||
bit.
|
||||
|
||||
### Sustainability: Finding more time, with TNT's help
|
||||
|
||||
At the start of the year, the reality of the situation was just… I did not
|
||||
_have_ volunteer hours available to give to DTI. What time I _did_ have for
|
||||
coding was all going toward my technical consulting work, because our house
|
||||
needed the paycheck, y'know?
|
||||
|
||||
But you might've noticed, our site's uptime got a lot better a few months
|
||||
ago—as it happens, around the same time we launched NeoPass! This was because
|
||||
**the NeoPass partnership _gave us the time_ to invest in other changes
|
||||
like alerts and monitoring,** which just weren't happening on their own.
|
||||
|
||||
**The new "Shopping List" feature was also part of this partnership effort,
|
||||
too**—though we didn't end up building all of the integrated elements
|
||||
we were hoping for. _(We were planning an "Add all to cart" NC Mall link, as
|
||||
a time saver for folks, and a way to help TNT know that DTI helped you out.)_
|
||||
Ah, well—that's product work! I hope it's been helpful in this form, too!
|
||||
|
||||
**Right now, we're on a bit of a pause,** as TNT's dev team focuses on the Void
|
||||
Within plot and the other things on their plate. But our next plan is to look
|
||||
into (spoiler) ~~saving DTI outfits to your Neopets directly~~ 😳❗️ This is
|
||||
not a promise, but it _is_ an intention! It's the main integration y'all told us
|
||||
you'd be excited for in that survey we sent out, thank you for that btw!!
|
||||
|
||||
But personally, that's why I'm excited about this partnership: I think we've
|
||||
done a good job threading the needle on building things that are **genuinely useful for Neopians, not Worrisome, and ultimately building toward DTI's own independent
|
||||
goals, too.** I'm glad we're not in the same stagnant place we were earlier
|
||||
this year, and I hope we can keep moving forward!
|
||||
|
||||
_(By the way, TNT and I agreed not to talk too much about the details of, like,
|
||||
what we signed and stuff… but I hope this gives you enough to understand the
|
||||
needs and values we're bringing to it! I promise I'm giving the community my very best, always 💜)_
|
||||
|
||||
### As always, thank you!
|
||||
|
||||
I hope this plan makes sense, as just one guy doing her best to keep the site
|
||||
online! And I hope this work can help set the stage for more people to join in
|
||||
the coming years, too.
|
133
assets/css/main.css
Normal file
133
assets/css/main.css
Normal file
|
@ -0,0 +1,133 @@
|
|||
body {
|
||||
font-family: "Noto Sans", Helvetica, Arial, Verdana, sans-serif;
|
||||
color: #040;
|
||||
max-width: 800px;
|
||||
margin-inline: auto;
|
||||
padding-inline: 1em;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #226622;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-family: Delicious, "Noto Sans", Helvetica, Arial, Verdana, sans-serif;
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
body > header {
|
||||
display: grid;
|
||||
grid-template-areas:
|
||||
"logo title"
|
||||
"logo subtitle";
|
||||
grid-template-rows: auto 1fr;
|
||||
grid-template-columns: auto 1fr;
|
||||
row-gap: 0.5em;
|
||||
column-gap: 0.5em;
|
||||
|
||||
border-bottom: 1px solid #060;
|
||||
padding-bottom: 0.75em;
|
||||
margin-bottom: 0.75em;
|
||||
|
||||
.logo {
|
||||
grid-area: logo;
|
||||
img {
|
||||
width: 4em;
|
||||
height: 4em;
|
||||
}
|
||||
}
|
||||
|
||||
h1 {
|
||||
grid-area: title;
|
||||
font-size: 1.5em;
|
||||
margin: 0;
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[role="doc-subtitle"] {
|
||||
grid-area: subtitle;
|
||||
font-size: 0.75em;
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
article {
|
||||
> header {
|
||||
h2 {
|
||||
font-size: 2.5em;
|
||||
margin-bottom: 0.125em;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 0.75em;
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
> :is(p, ul) {
|
||||
font-family: "Noto Serif", Georgia, "Times New Roman", Times, serif;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* A font by Jos Buivenga (exljbris) -> www.exljbris.nl */
|
||||
@font-face {
|
||||
font-family: Delicious;
|
||||
src: local("Delicious"), url("/assets/fonts/Delicious-Roman.otf");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: Delicious;
|
||||
font-weight: bold;
|
||||
src: local("Delicious"), url("/assets/fonts/Delicious-Bold.otf");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: Delicious;
|
||||
font-style: italic;
|
||||
src: local("Delicious"), url("/assets/fonts/Delicious-Italic.otf");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Noto Sans";
|
||||
src: local("Noto Sans"), url("/assets/fonts/NotoSans-Variable.ttf");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Noto Sans";
|
||||
font-style: italic;
|
||||
src: local("Noto Sans"), url("/assets/fonts/NotoSans-Italic-Variable.ttf");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Noto Serif";
|
||||
src: local("Noto Serif"), url("/assets/fonts/NotoSerif-Variable.ttf");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Noto Serif";
|
||||
font-style: italic;
|
||||
src: local("Noto Serif"), url("/assets/fonts/NotoSerif-Italic-Variable.ttf");
|
||||
}
|
BIN
assets/fonts/Delicious-Bold.otf
Normal file
BIN
assets/fonts/Delicious-Bold.otf
Normal file
Binary file not shown.
BIN
assets/fonts/Delicious-Heavy.otf
Normal file
BIN
assets/fonts/Delicious-Heavy.otf
Normal file
Binary file not shown.
BIN
assets/fonts/Delicious-Italic.otf
Normal file
BIN
assets/fonts/Delicious-Italic.otf
Normal file
Binary file not shown.
BIN
assets/fonts/Delicious-Roman.otf
Normal file
BIN
assets/fonts/Delicious-Roman.otf
Normal file
Binary file not shown.
BIN
assets/fonts/NotoSans-Italic-Variable.ttf
Normal file
BIN
assets/fonts/NotoSans-Italic-Variable.ttf
Normal file
Binary file not shown.
BIN
assets/fonts/NotoSans-Variable.ttf
Normal file
BIN
assets/fonts/NotoSans-Variable.ttf
Normal file
Binary file not shown.
BIN
assets/fonts/NotoSerif-Italic-Variable.ttf
Normal file
BIN
assets/fonts/NotoSerif-Italic-Variable.ttf
Normal file
Binary file not shown.
BIN
assets/fonts/NotoSerif-Variable.ttf
Normal file
BIN
assets/fonts/NotoSerif-Variable.ttf
Normal file
Binary file not shown.
BIN
assets/images/logo.png
Normal file
BIN
assets/images/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 131 KiB |
13
index.html
Normal file
13
index.html
Normal file
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
layout: default
|
||||
title: "Home"
|
||||
---
|
||||
|
||||
<ul>
|
||||
{% for post in site.posts %}
|
||||
<li>
|
||||
<a href="{{ post.url }}">{{ post.title }}</a>
|
||||
{{ post.excerpt }}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
Loading…
Reference in a new issue