diff --git a/docs/content/_index.ko.md b/docs/content/_index.ko.md
@@ -1,6 +1,6 @@
+++
title = "sqzass"
-description = "Rust로 만든 정적 사이트 생성기 — 빠르고, 결정적이고, 한국어가 1급입니다"
+description = "Rust로 만든 정적 사이트 생성기 — 빠르고 결정적입니다"
weight = 0
template = "landing.html"
@@ -8,25 +8,19 @@ template = "landing.html"
hero_kicker = "Rust로 만든 정적 사이트 생성기"
hero_title_a = "천 페이지를"
hero_title_b = "25밀리초로 쥐어짭니다."
-hero_sub = "이름이 곧 약속입니다: 사이트 하나를 한 번에 눌러 짜냅니다. Hugo·Zola·Jekyll·Astro와 같은 머신에서 재고, 방법을 전부 공개했습니다."
+hero_sub = "이름 그대로입니다. 사이트 전체를 한 번에 짜냅니다 — Hugo·Zola·Jekyll·Astro와 같은 머신에서 직접 재고, 측정 방법도 전부 공개해 뒀습니다."
cta_start = "시작하기"
cta_github = "GitHub에서 보기"
+install_alt = "Rust가 있다면 이렇게도 됩니다:"
bento_label = "왜 sqzass인가"
bench_title = "주장이 아니라 측정입니다"
-bench_note = "우리가 잰 네 생성기 중 가장 빠른 Hugo와 비교합니다 — 같은 머신, 콜드 빌드, 3회 중앙값. 막대는 실척이고, sqzass 시간에는 검색 색인·sitemap·llms.txt 생성이 포함돼 있습니다."
-bench_more = "전체 수치와 방법론 →"
-zero_label = "같은 입력을 두 번 빌드한 출력물의 바이트 차이 — CI가 push마다 확인합니다"
-
-install_title = "설치는 한 줄"
-install_alt = "Rust가 있다면:"
-
-demo_title = "문서가 곧 데모"
-demo_body = "이 사이트도 저장소의 docs/를 sqzass가 빌드한 것입니다 — 모든 페이지, 두 언어, 검색 색인과 피드까지요."
+bench_note = "비교 대상은 넷 중 가장 빨랐던 Hugo입니다. 같은 머신에서 캐시 없이 세 번씩 재서 중앙값을 적었고, 막대 길이는 실제 비율입니다. sqzass 쪽 시간에는 검색 색인·sitemap·llms.txt 생성까지 포함돼 있습니다."
+bench_more = "전체 수치와 측정 방법 →"
+zero_label = "같은 입력을 두 번 빌드했을 때 생기는 바이트 차이입니다. push마다 CI가 두 번 빌드해서 비교합니다."
foot_benchmark = "벤치마크"
-built_line = "이 사이트도 sqzass가 빌드했습니다 — 문서가 곧 데모입니다."
[[extra.bench]]
label = "1,000페이지, 최소 마크다운"
@@ -43,28 +37,24 @@ them_ms = "112"
them_w = "100%"
[[extra.bench]]
-label = "코드 무거움, 전 블록 고유"
+label = "코드 많은 코퍼스, 모든 블록이 서로 다름"
us_ms = "1,298"
us_w = "22.0%"
them_ms = "5,912"
them_w = "100%"
[[extra.features]]
-title = "한국어가 1급입니다"
-body = "영어와 한국어 페이지가 파일명으로 짝을 이루고, 링크는 언어별로 해석되며, 검색은 부분 문자열로 찾습니다 — 검색엔진최적화 안의 최적화가 걸리는 유일한 방법입니다."
+title = "바이너리 하나면 됩니다"
+body = "7.3 MB 정적 바이너리 하나에 라이브 리로드 개발 서버까지 들어 있습니다. 따로 설치할 런타임도, 버전을 맞춰야 할 플러그인도 없습니다."
[[extra.features]]
title = "깨진 참조는 빌드를 멈춥니다"
-body = "죽은 링크, 없는 템플릿, front matter 오타 — 전부 안정적인 식별자와 exit code를 가진 에러입니다. 스크롤로 지나치는 경고가 아닙니다."
-
-[[extra.features]]
-title = "작은 바이너리 하나"
-body = "7.3 MB 정적 바이너리에 라이브 리로드 개발 서버까지 들어 있습니다. 설치할 런타임도, 버전 맞출 플러그인도 없습니다."
+body = "깨진 링크, 없는 템플릿, front matter 오타를 만나면 경고만 띄우고 지나가지 않습니다. 빌드를 멈추고 어느 파일 몇째 줄이 문제인지, 어떻게 고치면 되는지 알려 줍니다. 에러마다 고정된 식별자와 exit code가 있어서 스크립트로 다루기도 쉽습니다."
+++
-대부분의 생성기는 예쁜 URL·리다이렉트·캐시 헤더를 호스트에 맡깁니다. sqzass는 그
-일을 직접 합니다. 그래서 같은 출력물이 GitHub Pages든 Cloudflare Pages든, 그냥
-디렉터리를 HTTP로 서빙하든 똑같이 동작합니다.
+대부분의 생성기는 예쁜 URL, 리다이렉트, 캐시 헤더 같은 일을 호스트에 맡깁니다.
+sqzass는 이걸 직접 처리합니다. 그래서 GitHub Pages에 올리든, Cloudflare Pages에
+올리든, 그냥 디렉터리째 서빙하든 같은 결과물이 그대로 동작합니다.
-속도는 방법을 공개한 실측으로 말하고, 실패는 크게 말합니다: 깨진 참조는 빌드를
-멈추고 파일과 줄과 고칠 방법을 짚어 줍니다.
+속도는 형용사가 아니라 측정값으로 말합니다. 문제가 생기면 조용히 넘어가는 대신
+빌드를 멈추고, 어느 파일 몇째 줄이 왜 문제인지 짚어 줍니다.
diff --git a/docs/content/_index.md b/docs/content/_index.md
@@ -1,6 +1,6 @@
+++
title = "sqzass"
-description = "A static site generator written in Rust — fast, deterministic, and Korean-first"
+description = "A static site generator written in Rust — fast and deterministic"
weight = 0
template = "landing.html"
@@ -11,6 +11,7 @@ hero_title_b = "squeezed into 25 ms."
hero_sub = "The name is the promise: press a whole site out in one go. Measured against Hugo, Zola, Jekyll and Astro on the same machine, with the method published."
cta_start = "Get started"
cta_github = "View on GitHub"
+install_alt = "With Rust instead:"
bento_label = "Why sqzass"
@@ -19,14 +20,7 @@ bench_note = "vs Hugo, the fastest of the four we measured — same machine, col
bench_more = "Full numbers and methodology →"
zero_label = "bytes of difference between two builds of the same input — checked in CI on every push"
-install_title = "Install in one line"
-install_alt = "With Rust instead:"
-
-demo_title = "The docs are the demo"
-demo_body = "This site is built by sqzass itself, from docs/ in the repository — every page, both languages, the search index and the feeds."
-
foot_benchmark = "Benchmark"
-built_line = "This site is built by sqzass itself — the docs are the demo."
[[extra.bench]]
label = "1,000 pages, minimal markdown"
@@ -50,16 +44,12 @@ them_ms = "5,912"
them_w = "100%"
[[extra.features]]
-title = "Korean is first-class"
-body = "Pages pair by filename in English and Korean, links resolve per language, and search matches substrings — the only way 최적화 is ever found inside 검색엔진최적화."
+title = "One small binary"
+body = "A 7.3 MB static binary with a live-reload dev server built in. No runtime to install, no plugins to version."
[[extra.features]]
title = "Broken references stop the build"
-body = "A dead link, a missing template, a typo in front matter — each is an error with a stable identifier and exit code, not a warning you scroll past."
-
-[[extra.features]]
-title = "One small binary"
-body = "A 7.3 MB static binary with a live-reload dev server built in. No runtime to install, no plugins to version."
+body = "A dead link, a missing template, a typo in front matter — each one stops the build and names the file, the line and the fix. Every error has a stable identifier and exit code, so scripts can handle them too."
+++
Most generators lean on their host for pretty URLs, redirects and cache
diff --git a/docs/static/css/landing.css b/docs/static/css/landing.css
@@ -282,8 +282,7 @@ main { display: block; }
.tile-link { margin: 1.1rem 0 0; font-weight: 700; font-size: 0.95rem; }
.t-bench { grid-column: span 2; grid-row: span 2; }
-.t-install { grid-column: span 2; }
-.t-demo { grid-column: span 2; }
+.t-wide { grid-column: span 2; }
/* 벤치마크 타일 */
.t-bench .note { margin-bottom: 1.4rem; }
@@ -325,25 +324,29 @@ main { display: block; }
color: transparent;
}
-/* 설치 타일 */
+/* 설치 한 줄 — 페이지에서 제일 중요한 것. CTA 바로 아래에서 눈에 띈다. */
.install {
- display: flex;
+ display: inline-flex;
align-items: center;
- gap: 0.3rem;
- border: 1px solid var(--line);
- border-radius: 12px;
+ gap: 0.4rem;
+ max-width: 100%;
+ border: 1px solid rgba(255, 140, 90, 0.45);
+ border-radius: 13px;
background: var(--bg-hi);
- padding: 0.55rem 0.45rem 0.55rem 0.9rem;
- margin: 0.2rem 0 0.9rem;
+ box-shadow: 0 4px 22px rgba(255, 110, 60, 0.16);
+ padding: 0.72rem 0.55rem 0.72rem 1.05rem;
+ margin: 1.6rem 0 0;
}
.install > code {
font-family: var(--mono);
- font-size: 0.82rem;
+ font-size: 0.92rem;
+ font-weight: 700;
color: var(--accent-ink);
white-space: nowrap;
overflow-x: auto;
scrollbar-width: none;
}
+.install-alt { margin: 0.7rem 0 0; font-size: 0.9rem; color: var(--muted); }
.inline { font-family: var(--mono); font-size: 0.85em; color: var(--accent-ink); }
.inst-copy {
flex: none;
diff --git a/docs/templates/landing.html b/docs/templates/landing.html
@@ -80,6 +80,16 @@
<a class="btn btn-primary" href="{{ home }}start/">{{ page.extra.cta_start }}</a>
<a class="btn btn-ghost" href="https://github.com/sqzer-x/sqzass">{{ page.extra.cta_github }}</a>
</p>
+ {#- 제일 중요한 것: 설치 한 줄. CTA 바로 아래에 크게 둔다. #}
+ <div class="install" data-reveal>
+ <code>curl -fsSL {{ site.origin }}{{ site.base_path }}/install.sh | sh</code>
+ <button class="inst-copy" type="button" data-copy-text="curl -fsSL {{ site.origin }}{{ site.base_path }}/install.sh | sh"
+ aria-label="{{ t("copy") }}" data-copied="{{ t("copied") }}">
+ <svg class="i-copy" viewBox="0 0 24 24" width="16" height="16" aria-hidden="true" focusable="false" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="12" height="12" rx="2"/><path d="M5 15V5a2 2 0 0 1 2-2h10"/></svg>
+ <svg class="i-check" viewBox="0 0 24 24" width="16" height="16" aria-hidden="true" focusable="false" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5"/></svg>
+ </button>
+ </div>
+ <p class="install-alt" data-reveal>{{ page.extra.install_alt }} <code class="inline">cargo install --git https://github.com/sqzer-x/sqzass</code></p>
<div class="lede" data-reveal>
{{ page.content | safe }}
</div>
@@ -115,37 +125,18 @@
<p class="tile-link"><a href="{{ home }}benchmark/">{{ page.extra.bench_more }}</a></p>
</article>
- <article class="tile t-install" data-reveal>
- <h2>{{ page.extra.install_title }}</h2>
- <div class="install">
- <code>curl -fsSL {{ site.origin }}{{ site.base_path }}/install.sh | sh</code>
- <button class="inst-copy" type="button" data-copy-text="curl -fsSL {{ site.origin }}{{ site.base_path }}/install.sh | sh"
- aria-label="{{ t("copy") }}" data-copied="{{ t("copied") }}">
- <svg class="i-copy" viewBox="0 0 24 24" width="15" height="15" aria-hidden="true" focusable="false" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="12" height="12" rx="2"/><path d="M5 15V5a2 2 0 0 1 2-2h10"/></svg>
- <svg class="i-check" viewBox="0 0 24 24" width="15" height="15" aria-hidden="true" focusable="false" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5"/></svg>
- </button>
- </div>
- <p class="note">{{ page.extra.install_alt }} <code class="inline">cargo install --git https://github.com/sqzer-x/sqzass</code></p>
- </article>
-
<article class="tile t-zero" data-reveal>
<p class="zero-num">0</p>
<p class="note">{{ page.extra.zero_label }}</p>
</article>
{%- for f in page.extra.features %}
- <article class="tile" data-reveal>
+ <article class="tile{% if loop.last %} t-wide{% endif %}" data-reveal>
<h2>{{ f.title }}</h2>
<p class="note">{{ f.body }}</p>
</article>
{%- endfor %}
- <article class="tile t-demo" data-reveal>
- <h2>{{ page.extra.demo_title }}</h2>
- <p class="note">{{ page.extra.demo_body }}</p>
- <p class="tile-link"><a href="{{ home }}start/">{{ t("documentation") }} →</a></p>
- </article>
-
</div>
</div>
</section>
@@ -162,7 +153,7 @@
<a href="{{ lang.url }}" hreflang="{{ lang.code }}">{{ lang.name }}</a>
{%- endfor %}
</nav>
- <p>{{ page.extra.built_line }} · MIT</p>
+ <p>MIT</p>
</div>
</footer>
</main>
|