Compare commits

..

4 Commits

Author SHA1 Message Date
7460d784b6 add search and back button to docs 2026-01-23 18:06:07 +11:00
c9976b9c08 bump version number 2026-01-23 17:22:53 +11:00
9075342661 removed uneeded print and removed packages from project 2026-01-23 17:21:59 +11:00
904ef85f54 package wip 2026-01-23 16:47:56 +11:00
10 changed files with 61 additions and 66 deletions

View File

@@ -40,7 +40,6 @@ def build_mineral(args):
with console.status("Compiling", spinner="bouncingBall", spinner_style="green") as status: with console.status("Compiling", spinner="bouncingBall", spinner_style="green") as status:
c_files = find_c_files(args.folder_path) c_files = find_c_files(args.folder_path)
print(len(c_files))
if len(c_files) == 0: if len(c_files) == 0:
console.print("[b red]digpkg: failed to build mineral: no .c files found in the specified folder, are you sure you're compiling a mineral?[/]") console.print("[b red]digpkg: failed to build mineral: no .c files found in the specified folder, are you sure you're compiling a mineral?[/]")
sys.exit(1) sys.exit(1)

View File

@@ -3,7 +3,10 @@ import os, sys
from rich.console import Console from rich.console import Console
from textual.app import App, ComposeResult from textual.app import App, ComposeResult
from textual.widgets import MarkdownViewer, Header, Footer from textual.widgets import MarkdownViewer, Header, Footer, Input, Button
from textual.containers import Horizontal
from textual_autocomplete import PathAutoComplete
from textual import on
console = Console() console = Console()
@@ -13,9 +16,45 @@ class DocsApp(App):
TITLE = "Digpkg Docs" TITLE = "Digpkg Docs"
SUB_TITLE = "made with ❤️ by SpookyDervish" SUB_TITLE = "made with ❤️ by SpookyDervish"
CSS = """
#search {
margin: 1;
width: 1fr;
}
#back {
margin-top: 1;
margin-left: 1;
}
#bottom {
height: 5;
}
"""
def __init__(self, inital_markdown_path: str): def __init__(self, inital_markdown_path: str):
super().__init__() super().__init__()
self.inital_markdown_path = inital_markdown_path self.inital_markdown_path = inital_markdown_path
self.docs_folder = os.path.join(os.path.dirname(self.inital_markdown_path), "docs")
async def on_input_submitted(self, event: Input.Submitted):
if event.input.id == "search":
if not os.path.isdir(self.docs_folder):
return
file_path = os.path.join(self.docs_folder, event.input.value)
if os.path.isfile(file_path):
event.input.clear()
event.input.focus()
await self.query_one(MarkdownViewer).go(file_path)
else:
self.notify("That file wasn't found.", title="Uh oh", severity="error")
async def on_button_pressed(self, event: Button.Pressed):
if event.button.id == "back":
await self.query_one(MarkdownViewer).back()
def compose(self) -> ComposeResult: def compose(self) -> ComposeResult:
with open(self.inital_markdown_path, "r") as f: with open(self.inital_markdown_path, "r") as f:
@@ -23,6 +62,22 @@ class DocsApp(App):
yield Header() yield Header()
yield MarkdownViewer(markdown) yield MarkdownViewer(markdown)
with Horizontal(id="bottom"):
yield Button(label="Back", id="back", flat=True, variant="error")
search_input = Input(id="search", placeholder="Search . . .")
yield search_input
if os.path.isdir(self.docs_folder):
yield PathAutoComplete(
search_input,
path=self.docs_folder
)
else:
search_input.disabled = True
search_input.tooltip = "This mineral doesn't have a docs folder and can't be searched."
yield Footer() yield Footer()

View File

@@ -1,7 +0,0 @@
# fileio
Perform file system operations.
## Files
- [file_Read](docs/read.md)
- [file_Write](docs/write.md)

View File

@@ -1,17 +0,0 @@
# file_Read
Open a file and return the contents in `r` mode.
## Arguments
- path (string): Path to the file you want to read
## Returns
- content (string): Contents of the file
## Raises
- `FileError`: Raised if the file doesn't exist or there was an error allocating memory for the file
## Example
```python
call !file_Read "my_file.txt" &contents
println $contents
```

View File

@@ -1,17 +0,0 @@
# file_Write
Open a file and overwrite its contents with the provided string in `w` mode.
## Arguments
- path (string): Path to the file you want to write to
## Returns
- success (boolean): Whether writing to the file succeeded or not
## Raises
- `FileError`: Raised if the file doesn't exist
## Example
```python
call !file_Read "my_file.txt" &contents
println $contents
```

View File

@@ -1,5 +0,0 @@
[package]
description=Provides file I/O support for Ground
version=1.2.0
[dependencies]

View File

@@ -2,11 +2,12 @@ from setuptools import setup, find_packages
setup( setup(
name="digpkg", name="digpkg",
version="1.0", version="1.1",
packages=find_packages(), packages=find_packages(),
install_requires=[ install_requires=[
"textual>=7.3.0", "textual>=7.3.0",
"requests>=2.32.5" "requests>=2.32.5",
"textual-autocomplete>=4.0.6"
], ],
entry_points={ entry_points={
"console_scripts": [ "console_scripts": [

View File

@@ -1,4 +0,0 @@
# stdlib
The standard library for Ground.
This mineral has no functions because it is intended to just be a collection of minerals needed to do anything useful in Ground.

View File

@@ -1,10 +0,0 @@
[package]
description = Standard library for Ground.
version = 1.2.0
config_version = 1
[dependencies]
math=1.2.0
request=1.2.0
fileio=1.2.0

View File

@@ -1,4 +1,4 @@
extern "math" extern "math"
call !math_RandomDouble 1.0 10.0 &dice call !math_RandomDouble 1.0 10.0 &var
println $dice println $var