Added allprojects.njk that lists all projecs (pagination), added contributing.md that has instructinos about adding your project to neoBeta, added errors template and 404 page, moved projects metadata to json file.

This commit is contained in:
天クマ 2025-10-26 17:36:37 -03:00
commit 8354b455d4
24 changed files with 167 additions and 68 deletions

11
_includes/error.njk Normal file
View file

@ -0,0 +1,11 @@
---
layout: "base.njk"
---
<h2>{{ page.fileSlug }} - Ouch! We hit a wall.</h2>
<p>{{ errorDescription | safe }}</p>
{% if errorQuote %}
<p class="errorQuote"><i>"{{ errorQuote | safe }}"</i></p>
{% endif %}
{% if content %}
{{ content | safe }}
{% endif %}

View file

@ -7,7 +7,7 @@
{% set projectData = item %}
<div class="featuredProject">
<a href="/projects/{{ project }}">
<img src="{% if projectData.data.logoName and projectData.data.logoExtension %}/projects/{{project}}/{{ projectData.data.logoName }}.{{ projectData.data.logoExtension }}{% else %}/assets/mod-placeholder.png{% endif %}">
<img src="{% if projectData.data.logo %}/projects/{{project}}/{{ projectData.data.logo }}{% else %}/assets/mod-placeholder.png{% endif %}">
</a>
<p class="featuredProjectName">{{ projectData.data.name }}</p>
<p>by <a href="/authors/{{ projectData.data.author }}/">{{ projectData.data.author }}</a></p>

View file

@ -3,7 +3,9 @@
<h1 id="title">neoBeta</h1>
<ul id="headerLinks">
<a href="/">home</a> -
<a href="/search">search</a>
<a href="/search">search</a> -
<a href="/allprojects">index</a> -
<a href="/contribute">contribute</a>
</ul>
<p id="credits">Adrian Victor, 2025 (<a href="https://git.disroot.org/adrianvictor/neoBeta">Unlicense</a>)</p>
</div>

View file

@ -21,11 +21,17 @@
</div>
<p id="projectSubtitle">{{ subtitle }}</p>
</div>
<a id="downloadLink" href="{{ downloadLink }}"><button id="downloadButton">Download</button></a>
<a id="downloadLink" href="{{ downloadLink }}"><button id="downloadButton">{% if downloadLink %}Download{% else %}Unavailable{% endif %}</button></a>
</div>
{% include "project_image.njk" %}
<main id="projectDescription">
{% if content %}
{{ content | safe }}
{% else %}
<h2>Oopsie! :<</h2>
<p>Seems like we don't have a description for this project.</p>
<p class="errorQuote"><i>"If only the clockworks could speak<br>I wouldn't be so alone"</i></p>
{% endif %}
</main>
</div>
</body>

37
allprojects.njk Normal file
View file

@ -0,0 +1,37 @@
---
layout: base.njk
pagination:
data: collections.projects
size: 10
alias: paginatedProjects
---
<ul style="display: flex; flex-direction: column; gap: 1em;">
{% for project in paginatedProjects %}
<div class="searchItem">
<p>
{% if project.data.logo %}
<img float="left" class="searchItemImage" src="{{ project.url }}{{ project.data.logo }}">
{% endif %}
<a class="searchItemTitle" href="{{ project.url }}">{{ project.data.name }}</a>
{% if project.data.author %}
by <a href="/authors/{{ project.data.author }}">{{ project.data.author }}</a>
{% endif %}
</p>
<p class="searchItemDescription">{{ project.data.subtitle }}</p>
<div class="searchItemTagHolder">
{% for tag in project.data.tags %}
<div class="tag-{{ tag }}">{{ tag }}</div>
{% endfor %}
</div>
</div>
{% endfor %}
</ul>
<nav>
{% if pagination.href.previous %}
<a href="{{ pagination.href.previous }}">Prev</a>
{% endif %}
{% if pagination.href.next %}
<a href="{{ pagination.href.next }}">Next</a>
{% endif %}
</nav>

View file

@ -51,11 +51,11 @@ button:hover {
}
code {
font-family: Minecraft, 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
background-color: rgb(75, 75, 75);
border: 1px solid white;
padding-left: 4px;
padding-right: 4px;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
/* margin-left: 2px;
margin-right: 2px; */
}
@ -194,13 +194,14 @@ img {
image-rendering: pixelated;
}
#projectDescription li {
li {
margin-left: 20px;
list-style-type: "> ";
margin-bottom: .4em;
}
#projectDescription h1, h2 {
margin-top: 8px;
h1, h2, h3 {
margin-bottom: .4em;
}
#projectTitleAuthor {
@ -264,6 +265,10 @@ img {
margin-bottom: 0px;
}
.errorQuote {
color: gray;
}
@media only screen and (max-width: 1280px) {
#everythingHelper {

28
contribute.md Normal file
View file

@ -0,0 +1,28 @@
---
layout: "base.njk"
---
## How can I get my project here?
neoBeta is an open-source content management system. There are various ways you can put your plugin/mod on our catalog:
- Clone neoBeta's repository, create your project folder inside the /projects directory with the necessary metadata (index.md for project description, index.json for metadata and any other file your project may depend on) and make a pull request. Less manual work on our side, so review should be quickier.
- Open an issue on our GitHub repository with the project information. This may take longer as a contributor will have to spend time creating the project files, but is useful if you're not confortable using Git.
- Host your own instance of neoBeta.
### Required metadata fields
- *name* - project name.
```"name": "Ghosts 'n Stuff"```
- *subtitle* - project's brief description.
```"subtitle": "Miscellaneous additions to your server."```
- *author* - your author name, must be consistent across all your submissions.
```"author": "tenkuma"```
- *tags* - whether your project is a plugin or mod.
```"tags": ["plugin", "mod"]```
### Optional metadata fields
Please fill as many fields as possible.
- *downloadLink* - link for when you click the download link.
```"downloadLink": "https://example.com"```
- *images* - lists of image files names or URLs that will appear in the project page.
```"images": "["image1.png", "image2.png", "image3.png"]"```
- *logo* - your logo file name or URL.
```"logo": "logo.png"```

4
error/404.html Normal file
View file

@ -0,0 +1,4 @@
---
errorQuote: "If only the clockworks could speak<br>I wouldn't be so alone"
errorDescription: "We didn't find what you are looking for..."
---

3
error/error.json Normal file
View file

@ -0,0 +1,3 @@
{
"layout": "error.njk"
}

View file

@ -5,7 +5,8 @@ layout: "base.njk"
{% import "featured.njk" as featured %}
<h1>Welcome.</h1>
<p>This is a project that aims to preserve Minecraft Beta mods and plugins through archives of documentation and JARs and showcase new plugins for beta.</p>
<p>This is a project that aims to preserve Minecraft Beta mods and plugins through archives of documentation and JARs, and showcase new plugins for beta.</p>
<h2>Featured projects</h2>
{{ featured.projectShowcase(["aboukkit", "tenkumalib", "hangglidere", "devilwithin", "timekeeper", "tefreezer"], collections.projects) }}
</ul>

View file

@ -0,0 +1,8 @@
{
"name": "Aboukkit",
"subtitle": "A simple way to add custom commands with custom responses to your server.",
"author": "tenkuma",
"downloadLink": "https://modrinth.com/plugin/aboukkit/versions",
"logo": "logo.png",
"tags": ["plugin"]
}

View file

@ -1,11 +1,3 @@
---
name: "Aboukkit"
subtitle: "A simple way to add custom commands with custom responses to your server."
author: "tenkuma"
downloadLink: "https://modrinth.com/plugin/aboukkit/versions"
logo: "logo.png"
tags: plugin
---
![Aboukkit logo, abboukit written in a Minecraft's logo like font painted in red.](https://cdn.modrinth.com/data/cached_images/94b1f813f8e15f82dddcffa5284c92e59cb93b27.png)

View file

@ -0,0 +1,8 @@
{
"name": "The Devil Within",
"subtitle": "Adds enchanting to Minecraft Beta. Supports balancing through curses.",
"author": "tenkuma",
"downloadLink": "https://modrinth.com/plugin/devilwithin/versions",
"logo": "logo.png",
"tags": ["plugin"]
}

View file

@ -1,11 +1,3 @@
---
name: "The Devil Within"
subtitle: "Adds enchanting to Minecraft Beta. Supports balancing through curses."
author: "tenkuma"
downloadLink: "https://modrinth.com/plugin/devilwithin/versions"
logo: "logo.png"
tags: plugin
---
This plugin is a remake of [GoldEnchant](https://dev.bukkit.org/projects/goldenchant/).
This plugin depends on [tenkumaLib](https://modrinth.com/plugin/tenkumalib).

View file

@ -0,0 +1,9 @@
{
"name": "Ghosts 'n Stuff",
"subtitle": "Miscellaneous additions to your Minecraft server.",
"author": "tenkuma",
"downloadLink": "https://modrinth.com/plugin/ghosts/versions",
"images": ["anti-spam.png", "rainbow-chat.png", "skibidi-blocker.png"],
"logo": "logo.png",
"tags": ["plugin"]
}

View file

@ -1,13 +1,3 @@
---
name: "Ghosts 'n Stuff"
subtitle: "Miscellaneous additions to your Minecraft server."
author: "tenkuma"
downloadLink: "https://modrinth.com/plugin/ghosts/versions"
images: ["anti-spam.png", "rainbow-chat.png", "skibidi-blocker.png"]
logo: "logo.png"
tags: "plugin"
---
This plugins was made to use stuff from my library that would not fit into any plugin (or not in the way presented here) that has ~~a lot~~ (WIP) of random stuff. Everything should be togglable in the config.
## Features

View file

@ -0,0 +1,6 @@
{
"name": "HangGlideRE",
"subtitle": "Fly with a chicken!",
"author": "tenkuma",
"tags": ["plugin"]
}

View file

@ -1,7 +0,0 @@
---
name: "HangGlideRE"
subtitle: ""
author: "tenkuma"
downloadLink: "https://modrinth.com/plugin/aboukkit/versions"
tags: plugin
---

View file

@ -0,0 +1,8 @@
{
"name": "teFreezer",
"subtitle": "Force your players to refrigerate their food by rotting food in unrefrigerated chests!",
"author": "tenkuma",
"downloadLink": "https://modrinth.com/plugin/freezer/versions",
"logo": "logo.png",
"tags": ["plugin"]
}

View file

@ -1,11 +1,3 @@
---
name: "teFreezer"
subtitle: "Force your players to refrigerate their food by rotting food in unrefrigerated chests!"
author: "tenkuma"
downloadLink: "https://modrinth.com/plugin/freezer/versions"
logo: "logo.png"
tags: plugin
---
![Tefreezer written in Minecraft-like font in purple.](https://cdn.modrinth.com/data/cached_images/0aaabfb51609876ece6de83e62b9641a4635fad9_0.webp)
teFreezer is a fork of [Freezer by outadoc](https://dev.bukkit.org/projects/freezer), logo by [malcolmriley](https://github.com/malcolmriley/unused-textures/blob/master/items/food_pepper.png).

View file

@ -0,0 +1,8 @@
{
"name": "tenkuma's Library",
"subtitle": "Library to support my other plugins. Does nothing on it's own.",
"author": "tenkuma",
"downloadLink": "https://modrinth.com/plugin/tenkumalib/versions",
"logo": "logo.png",
"tags": ["plugin"]
}

View file

@ -1,9 +1,5 @@
---
name: "tenkuma's Library"
subtitle: "Library to support my other plugins. Does nothing on it's own."
author: "tenkuma"
downloadLink: "https://modrinth.com/plugin/tenkumalib/versions"
logoName: "logo"
logoExtension: "png"
tags: "plugin"
---
This is a dependency for my other projects. This does not do anything on it's own.
## Why do I have to install this alongside your plugins?
You may think that installing two plugins instead of one is installing unecessary bloat that is useless. But it's not, libraries hold code that is common to more than one project, so you avoid having the same code repeated twice or more in your server. Also it's easier for the developer that has to improve only a single codebase to improve all the rest of the dependants.

View file

@ -0,0 +1,8 @@
{
"name": "TimeKeeper",
"subtitle": "Syncs real world time with your Minecraft server time.",
"author": "tenkuma",
"downloadLink": "https://modrinth.com/plugin/timekeeper/versions",
"logo": "logo.png",
"tags": ["plugin"]
}

View file

@ -1,11 +1,3 @@
---
name: "TimeKeeper"
subtitle: "Syncs real world time with your Minecraft server time."
author: "tenkuma"
downloadLink: "https://modrinth.com/plugin/timekeeper/versions"
logo: "logo.png"
tags: plugin
---
This is a plugin for Minecraft beta that syncs the real world time with your in-game time. Logo by [malcolmriley](https://github.com/malcolmriley/unused-textures/blob/master/items/).
## How it works