Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
146 changes: 146 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
# EIPs Theme

Zola theme used by the Ethereum Improvement Proposal (EIP) site, including EIPs and ERCs. This repo contains the shared templates, Sass, static assets, syntax definitions, and Zola configuration used when rendering proposal content.

## Local Development

### Minimum Requirements

Local workspace commands require these tools on `PATH`:

* Git
* `build-eips`
* Zola 0.22.1

Git must be installed separately. The setup script locates or installs `build-eips` and Zola, adds locally installed tool directories to `PATH` for the current shell session, and prints guidance for making those `PATH` changes permanent.

### Bootstrap The Workspace

Run the setup script once from this repo.

Linux and macOS:

```sh
./scripts/dev-setup
```

Windows PowerShell:

```powershell
.\scripts\dev-setup.ps1
```

The setup script initializes the workspace one directory above this repo, runs `build-eips doctor`, and prints the next local commands.

After setup, the generated workspace guide is available at `../WORKSPACE.md`. Use that file for the full command reference and workspace details.

The script expects the theme repo to live inside the surrounding multi-repo workspace. After setup, the workspace has this layout:

```text
EIPs-project/
├── .build-eips.toml
├── WORKSPACE.md
├── .local-build/
├── EIPs/
├── ERCs/
└── theme/
```

The script anchors setup through `../EIPs` by default and clones `https://github.com/ethereum/EIPs.git` there when that checkout is missing. Set `ACTIVE_REPO_ROOT` to use another proposal repo checkout:

```sh
ACTIVE_REPO_ROOT=../ERCs ./scripts/dev-setup
```

Validate the workspace at any point with:

```sh
build-eips -C ../EIPs doctor
```

### Advanced Setup Options

Pass optional flags through the script when you want to work on the system tooling or an additional proposal repo:

```sh
./scripts/dev-setup --platform-dev
./scripts/dev-setup --template
./scripts/dev-setup --template --platform-dev
```

`--template` adds the optional `template/` proposal template repo. `--platform-dev` adds local `preprocessor/` and `eipw/` checkouts for build system development.

After setup, run local site commands against the active proposal repo:

```sh
build-eips -C ../EIPs check
build-eips -C ../EIPs serve
build-eips -C ../EIPs doctor
```

### Serve And Preview

Local serving keeps two distinct modes:

* `build-eips serve` for the runtime dev loop
* `build-eips preview` for serving already-built static output (`build-eips build` must be run first)

`build-eips serve` runs Zola's fast serve mode under the hood. It watches tracked edits in the active proposal repo and incrementally updates the local site for content changes.

It also watches tracked edits under `theme/` in the workspace. Theme changes can take longer to apply because they affect the whole rendered site. During `serve`, staging a new theme file with `git add` triggers a theme rescan; no extra file edit or restart should be needed.

`serve --clean` ignores active-repo dirty edits but still watches the local theme.

`build-eips preview` serves the resolved output directory for the active repo without invoking Zola, preprocessing markdown, or rebuilding anything. If the output directory does not exist yet, it fails and tells you to run `build-eips build` first.

### Local Server And Base URL

The `[server]` table in `.build-eips.toml` controls the local bind address for both `serve` and `preview`; the default is `127.0.0.1:1111`. Per-command `--host` and `--port` flags override `.build-eips.toml` for one run. These settings do not change build base URLs.

The `[site].base_url` value in `.build-eips.toml` is the default local rendered site URL. Starter `.build-eips.toml` files set it to `http://127.0.0.1:1111`. If you change `[server].port`, update `[site].base_url` too when generated links should match the local server.

Per-command `--base-url` on `build` or `serve` is a one-run override and wins over `.build-eips.toml`, including with staging or parity commands.

`preview` serves existing output, so build with `--base-url` first when previewed HTML should contain a different local link target.

### Target Specific Proposals

Full local `build` and `serve` runs can take time because they process every proposal file. Use targeted rendering when you only need to test a few proposals or theme changes against a small proposal set:

```bash
build-eips serve --only 555
build-eips build --only 555
build-eips build --only 555 678
```

You can also set a default target list in the workspace `.build-eips.toml`:

```toml
[render]
only = [555, 678]
```

CLI `--only` replaces `[render].only` for that run. For edge cases and exact filtering behavior, see `../WORKSPACE.md`.

### Source And Output Overrides

Workspace-local sources come from the standard workspace layout. The local theme is `workspace/theme`, and local sibling repos are `workspace/<sibling_repo_id>` from the active repo manifest.

Use `--remote-siblings` when you need to force remote sibling proposal sources for a single command.

Use global `--build-root <path>` when you want a separate prepared repo and output directory, for example to compare two builds side by side. The path replaces the default `.local-build/<repo_id>` location for each command where you pass it, so use the same `--build-root` value when serving or previewing builds.


Example:

```bash
build-eips -C /work/EIPs-project/EIPs --build-root /tmp/eips-local build --base-url http://127.0.0.1:1111
build-eips -C /work/EIPs-project/EIPs --build-root /tmp/eips-staging --staging build --base-url http://127.0.0.1:1112

build-eips -C /work/EIPs-project/EIPs --build-root /tmp/eips-local preview --port 1111
build-eips -C /work/EIPs-project/EIPs --build-root /tmp/eips-staging preview --port 1112

# Or using serve
build-eips -C /work/EIPs-project/EIPs --build-root /tmp/eips-local serve --port 1111
build-eips -C /work/EIPs-project/EIPs --build-root /tmp/eips-staging --staging serve --port 1112
```
18 changes: 11 additions & 7 deletions config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,19 @@ generate_feeds = true
internal_level = "warn"

[markdown]
# Whether to do syntax highlighting
# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola
highlight_code = true
bottom_footnotes = true

highlight_theme = "css"
[markdown.highlighting]
error_on_missing_language = true

highlight_themes_css = [
{ theme = "base16-ocean-dark", filename = "assets/css/syntax-theme-dark.css" },
{ theme = "base16-ocean-light", filename = "assets/css/syntax-theme-light.css" },
style = "class"

light_theme = "github-light"
dark_theme = "github-dark"

extra_grammars = [
"syntaxes/abnf/ABNF.json",
"syntaxes/csl-json/CSL-JSON.json",
]

[extra.github]
Expand Down
6 changes: 6 additions & 0 deletions config/zola.toml
Original file line number Diff line number Diff line change
Expand Up @@ -88,21 +88,27 @@ tooltip = "This EIP is completed and no longer expected to change."

[extra.taxonomies.category.erc]
tooltip = "Application-level standards and conventions, including contract standards such as token standards, name registries, URI schemes, library/package formats, and wallet formats."
description = "ERCs define application-level standards and conventions for the Ethereum ecosystem. They include token standards, registries, URI schemes, wallet formats, and other interfaces used by applications and contracts."

[extra.taxonomies.category.interface]
tooltip = "Improvements around client API/RPC specifications and standards, and also certain language-level standards like method names and contract ABIs."
description = "Interface EIPs cover client APIs, RPC standards, contract ABIs, and other language-level interfaces. They help applications, tools, wallets, and clients interact consistently."

[extra.taxonomies.category.networking]
tooltip = "Improvements around devp2p and Light Ethereum Subprotocol, as well as proposed improvements to network protocol specifications of whisper and swarm."
description = "Networking EIPs cover Ethereum peer-to-peer networking, light client protocols, and related network protocol specifications. They describe how Ethereum nodes and clients communicate."

[extra.taxonomies.category.core]
tooltip = "Improvements requiring a consensus fork, as well as changes that are not necessarily consensus critical but may be relevant to “core dev” discussions."
description = "Core EIPs cover changes to Ethereum consensus, execution, and other low-level protocol behavior usually debated by core developers. They include hard-fork changes as well as non-consensus protocol work relevant to core dev discussions."

[extra.taxonomies.type.informational]
tooltip = "Describes an Ethereum design issue, or provides general guidelines or information to the Ethereum community, but does not propose a new feature. Informational EIPs do not necessarily represent Ethereum community consensus or a recommendation, so users and implementers are free to ignore Informational EIPs or follow their advice."
description = "Informational EIPs provide design notes, background, or general guidance for the Ethereum community. They do not propose a new feature, but they can document useful context, suggestions, or analysis."

[extra.taxonomies.type.meta]
tooltip = "Describes a process surrounding Ethereum or proposes a change to (or an event in) a process."
description = "Meta EIPs describe Ethereum processes or propose changes to those processes. They include coordination, tooling, and changes to the EIP workflow itself."

[extra.taxonomies.type.standards-track]
tooltip = "Describes any change that affects most or all Ethereum implementations or any application."
16 changes: 9 additions & 7 deletions content/_index.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
+++
[extra]
homepage_badges = [
{ href = "https://discord.gg/Nz6rtfJ8Cu", image = "https://dcbadge.limes.pink/api/server/Nz6rtfJ8Cu?style=flat", alt = "Badge for EIP Editor Discord channel" },
{ href = "https://discord.gg/EVTQ9crVgQ", image = "https://dcbadge.limes.pink/api/server/EVTQ9crVgQ?style=flat", alt = "Badge for Ethereum R&D Discord channel" },
{ href = "https://discord.gg/mRzPXmmYEA", image = "https://dcbadge.limes.pink/api/server/mRzPXmmYEA?style=flat", alt = "Badge for Ethereum Wallets Discord channel" },
{ href = "/atom.xml", image = "https://img.shields.io/badge/rss-Everything-red.svg", alt = "RSS feed for everything" },
{ href = "/status/last-call/atom.xml", image = "https://img.shields.io/badge/rss-Last%20Calls-red.svg", alt = "RSS feed for last calls" },
]
+++

<h1 class="page-heading">EIPs
<a href="https://discord.io/EthCatHerders"><img src="https://dcbadge.vercel.app/api/server/Nz6rtfJ8Cu?style=flat" alt="Discord channel for ECH eip-editer"></a>
<a href="https://discord.gg/EVTQ9crVgQ"><img src="https://dcbadge.vercel.app/api/server/EVTQ9crVgQ?style=flat" alt="Discord channel for Eth R&D eip-editing"></a>
<a href="https://discord.gg/mRzPXmmYEA"><img src="https://dcbadge.vercel.app/api/server/mRzPXmmYEA?style=flat" alt="Discord server for discussions about proposals that impact Ethereum wallets"></a>
<a href="/atom.xml"><img src="https://img.shields.io/badge/rss-Everything-red.svg" alt="RSS"></a>
<a href="/status/last-call/atom.xml"><img src="https://img.shields.io/badge/rss-Last Calls-red.svg" alt="RSS"></a>
</h1>
# EIPs

<p>Ethereum Improvement Proposals (EIPs) describe standards for the Ethereum platform, including core protocol specifications, client APIs, and contract standards. Network upgrades are discussed separately in the <a target="_blank" href="https://github.com/ethereum/pm/">Ethereum Project Management</a> repository.</p>

Expand Down
28 changes: 28 additions & 0 deletions sass/assets/css/style.scss
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,34 @@ $content-width: 1152px;
vertical-align: baseline;
}

.homepage-badges {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 0.5rem;
margin: -0.25rem 0 1.25rem;
}

.homepage-badge-link {
display: inline-flex;
align-items: center;
line-height: 1;
}

.homepage-badge-link:hover {
text-decoration: none;
}

.homepage-badge-link img {
display: block;
max-width: 100%;
height: 20px;
}

.homepage-badge-link .badge {
font-size: 0.875rem;
}

.footer-col-wrapper {
color: #111;
}
Expand Down
Loading