Initial commit

This commit is contained in:
david-swift 2024-09-14 16:08:06 +02:00
commit c01ea42f08
23 changed files with 401 additions and 0 deletions

View File

@ -0,0 +1,19 @@
name: Gitea Actions Demo
run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀
on: [push]
jobs:
Explore-Gitea-Actions:
runs-on: volans
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ gitea.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by Gitea!"
- run: echo "🔎 The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
- name: Check out repository code
uses: actions/checkout@v4
- run: echo "💡 The ${{ gitea.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository
run: |
ls ${{ gitea.workspace }}
- run: echo "🍏 This job's status is ${{ job.status }}."

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
.DS_Store
/static/processed_images

53
.gitlab-ci.yml Normal file
View File

@ -0,0 +1,53 @@
stages:
- deploy
default:
image: debian:stable-slim
variables:
# The runner will be able to pull your Zola theme when the strategy is
# set to "recursive".
GIT_SUBMODULE_STRATEGY: "recursive"
# If you don't set a version here, your site will be built with the latest
# version of Zola available in GitHub releases.
# Use the semver (x.y.z) format to specify a version. For example: "0.17.2" or "0.18.0".
ZOLA_VERSION:
description: "The version of Zola used to build the site."
value: ""
pages:
stage: deploy
script:
- |
apt-get update --assume-yes && apt-get install --assume-yes --no-install-recommends wget ca-certificates
if [ $ZOLA_VERSION ]; then
zola_url="https://github.com/getzola/zola/releases/download/v$ZOLA_VERSION/zola-v$ZOLA_VERSION-x86_64-unknown-linux-gnu.tar.gz"
if ! wget --quiet --spider $zola_url; then
echo "A Zola release with the specified version could not be found.";
exit 1;
fi
else
github_api_url="https://api.github.com/repos/getzola/zola/releases/latest"
zola_url=$(
wget --output-document - $github_api_url |
grep "browser_download_url.*linux-gnu.tar.gz" |
cut --delimiter : --fields 2,3 |
tr --delete "\" "
)
fi
wget $zola_url
tar -xzf *.tar.gz
./zola build
artifacts:
paths:
# This is the directory whose contents will be deployed to the GitLab Pages
# server.
# GitLab Pages expects a directory with this name by default.
- public
rules:
# This rule makes it so that your website is published and updated only when
# you push to the default branch of your repository (e.g. "master" or "main").
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "themes/duckquill"]
path = themes/duckquill
url = https://codeberg.org/daudix/duckquill.git

56
config.toml Normal file
View File

@ -0,0 +1,56 @@
# Zola config
title = "Aparoksha"
base_url = "https://www.aparoksha.dev/"
description = "One app, fully native on every platform"
theme = "duckquill"
minify_html = true
default_language = "en"
compile_sass = true
author = "david-swift"
build_search_index = true
taxonomies = [{ name = "tags" }]
[markdown]
highlight_code = true
highlight_theme = "css"
smart_punctuation = true
[extra]
stylesheets = [
"custom.css"
]
primary_color = "#FF2D75"
primary_color_alpha = "#FF005020"
primary_color_dark = "#FF2D75"
primary_color_dark_alpha = "#FF2D7520"
issues_url = "https://git.aparoksha.dev/david-swift/aparoksha.dev/issues"
source_url = "https://git.aparoksha.dev/david-swift/aparoksha.dev"
show_copy_button = true
[extra.footer]
show_copyright = true
show_powered_by = true
show_source = true
[extra.nav]
links = [
{ name = "Guides" , sublinks = [
{ url = "@/backends/_index.md", name = "Backends" },
{ url = "/tutorials", name = "Tutorials" },
{ url = "/hig", name = "Human Interface Guidelines" },
{ url = "/docs", name = "Documentation" },
]},
{ url = "https://forums.aparoksha.dev/", name = "Community" },
{ url = "https://git.aparoksha.dev/aparoksha", name = "Code" },
]
[search]
index_format = "elasticlunr_json"
[extra.comments]
host = "mastodon.de"
user = "david_swift"
show_qr = true

90
content/_index.md Normal file
View File

@ -0,0 +1,90 @@
+++
+++
<!---
{{ image(url="trailer.gif" full_bleed=true) }}
--->
# Native. Cross-platform. <div class="logo"> Aparoksha. </div>
<div style="margin-bottom: 2em;">
Create your next cross-platform app with Aparoksha to give it a native look on each platform.
Aparoksha is easy-to-use, safe, and <i>aparoksha</i>, meaning that its reactive and declarative approach as well as the clean syntax significantly enhance the readability.
</div>
<a class="inline-button" href="/tutorials/gettingstarted/">Get Started</a>
<br>
## Start with Simple Views
A view is a piece of the user interface.
Create your own views, such as `Avatar`, `Post`, and `Timeline`.
Combine them into pages, windows, and apps.
<!---
<aside>
{{ image(url="trailer.gif" transparent=true) }}
</aside>
--->
{% crt() %}
```
struct Timeline: View {
var posts: Posts
var view: Body {
ForEach(posts) { post in
Avatar(user: post.user)
Post(post: post)
}
}
}
```
{% end %}
## The Magic of the State
Each of your views has the ability to store state throughout view updates.
Let's create a simple counter view:
<!---
<aside>
{{ image(url="trailer.gif" transparent=true) }}
</aside>
--->
{% crt() %}
```
struct SearchView: View {
@State private var count = 0
var view: Body {
Button(icon: .minus) {
count -= 1
}
Text("\(count)")
Button(icon: .plus) {
count += 1
}
}
}
```
{% end %}
## Supported Platforms
Aparoksha's goal is to enable you to bring your app to as many users as possible on completely different platforms.
Therefore, it is built in an open and extensible way.
Creating a backend for a new platform is almost as simple as creating an app!
A list of some backends is available [here](@/backends/_index.md). They can be combined with Aparoksha in a simple way.
Aparoksha itself currently supports the three major desktop platforms [GNOME](@/backends/Adwaita/index.md), [Windows](@/backends/WinUI/index.md), and [macOS](@/backends/AppKit/index.md).
What makes the Aparoksha project unique is that each backend is a fully independent project, optimized for its platform.
In a cross-platform app, you can leverage the full potential of the individual backends by writing platform-specific bits of code.

Binary file not shown.

After

Width:  |  Height:  |  Size: 674 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

View File

@ -0,0 +1,52 @@
+++
title = "Adwaita"
description = "Develop beautiful apps following the design guidelines of the GNOME desktop."
date = 2023-09-12
[taxonomies]
tags = ["Linux", "Aparoksha"]
[extra]
featured = true
banner = "Adwaita.png"
+++
Develop beautiful apps following the design guidelines of the GNOME desktop.
Read the <a class="external" href="https://aparokshaui.github.io/adwaita-swift">documentation</a> to get started or <a class="external" href="https://github.com/AparokshaUI/adwaita-swift">browse the code</a> on GitHub.
## The Backend
The Adwaita backend is based on the <a class="external" href="https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/">_libadwaita_</a> C API.
libadwaita is used for developing native GNOME apps.
## The Development Environment
It is recommended to develop Libadwaita apps on a Linux system.
Linux is probably available for your device and can be installed alongside Windows or macOS.
I recommend picking a Linux distribution offering a vanilla GNOME experience, such as <a class="external" href="https://fedoraproject.org/de/">Fedora</a> or <a class="external" href="https://vanillaos.org/">VanillaOS</a>.
Now, install <a class="external" href="https://apps.gnome.org/en/Builder/">GNOME Builder</a> via the GNOME Software application.
### Flatpak
<a class="external" href="https://flatpak.org/">Flatpak</a> facilitates the distribution of apps on Linux.
If you decide to use Flatpak already when developing the app, you do not have to install any dependencies on your system.
Simply clone the <a class="external" href="https://github.com/AparokshaUI/AdwaitaTemplate">template repository</a>, open in GNOME Builder, and run the template app.
Follow the instructions in the readme file to create your own app.
{{ image(url="Environment.png", alt="A native GNOME app called Tuba") }}
## The Design
This backend allows the creation of apps following the <a class="external" href="https://developer.gnome.org/hig/">GNOME Human Interface Guidelines</a>.
The following screenshot serves as an example for GNOME's design language.
{{ image(url="App.png", alt="A native GNOME app called Tuba" transparent=true) }}
## Distribution
The apps can be distributed using Flatpak. The most popular app store is <a class="external" href="https://flathub.org">Flathub</a>.
Read the <a class="external" href="https://aparokshaui.github.io/adwaita-swift/documentation/adwaita/publishingapps">instructions in the official docs</a>.
## Aparoksha Interoperability
This backend is part of the Aparoksha package. If you use default Aparoksha elements, they will render correctly on GNOME.
You can call platform-specific widgets for GNOME as well.

View File

@ -0,0 +1,11 @@
+++
title = "AppKit"
description = "Build fully native macOS apps."
date = 2024-09-13
[taxonomies]
tags = ["macOS", "Aparoksha"]
[extra]
featured = true
+++
Hello

View File

@ -0,0 +1,12 @@
+++
title = "TermKit"
description = "Create simple user interfaces for terminal applications."
date = 2024-07-10
authors = ["david-swift"]
[taxonomies]
tags = ["Linux", "macOS"]
[extra]
hot = false
+++
Hello

View File

@ -0,0 +1,11 @@
+++
title = "WinUI"
description = "Create apps for Microsoft Windows."
date = 2024-09-13
[taxonomies]
tags = ["Windows", "Aparoksha"]
[extra]
featured = true
+++
Hello

View File

@ -0,0 +1,12 @@
+++
title = "Available Backends"
sort_by = "date"
template = "article_list.html"
page_template = "article.html"
+++
The backends listed here are based on the <a class="external" href="https://github.com/AparokshaUI/Meta">Meta package</a>.
They can be used in combination with the Aparoksha package.
The backends marked with a star are part of the Aparoksha package.
This means that all the user interface elements included in the Aparoksha package will automatically render correctly with these backends.

14
content/david/index.md Normal file
View File

@ -0,0 +1,14 @@
+++
title = "Hi!"
template = "article.html"
+++
I'm David, the maintainer of the Aparoksha project.
You can find me on <a class="external" href="https://mastodon.de/@david_swift">Mastodon</a>,
<a class="external" href="https://git.aparoksha.dev/david-swift/">this project's Gitea instance</a>,
and on <a class="external" href="https://github.com/david-swift">GitHub</a>.
If you benefit from this project and have enough money, <a class="external" href="https://ko-fi.com/david_swift">donations</a> are appreciated to compensate the server costs.
Thank you!
Don't forget to share your projects on the Fediverse and in the <a class="external" href="https://forums.aparoksha.dev/t/projects">Aparoksha forums</a> :)

7
content/docs/index.md Normal file
View File

@ -0,0 +1,7 @@
+++
title = "Documentation"
template = "article.html"
featured = true
[taxonomies]
tags = ["Linux", "macOS", "Windows", "Aparoksha"]
+++

7
content/hig/index.md Normal file
View File

@ -0,0 +1,7 @@
+++
title = "Human Interface Guidelines"
template = "article.html"
featured = true
[taxonomies]
tags = ["Linux", "macOS", "Windows", "Aparoksha"]
+++

BIN
content/trailer.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

View File

@ -0,0 +1,7 @@
+++
title = "Getting Started"
description = "Learn Aparoksha following a simple path."
date = 2023-09-12
[taxonomies]
tags = ["Linux", "macOS", "Windows", "Aparoksha"]
+++

View File

@ -0,0 +1,6 @@
+++
title = "Tutorials"
sort_by = "date"
template = "article_list.html"
page_template = "article.html"
+++

38
sass/custom.scss Normal file
View File

@ -0,0 +1,38 @@
h1,
h2,
h3,
h4,
h5,
h6 {
font-weight: bold;
font-family: var(--font-system-ui)
}
h1 {
font-weight: 900;
font-size: 3rem;
}
h2 {
font-size: 2rem;
}
h3 {
font-size: 1.5rem;
}
h4 {
font-size: 1rem;
}
h5 {
font-size: 0.75rem;
}
h6 {
font-size: 0.5rem;
}
.logo {
color: #EE2D75;
}

BIN
static/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

1
themes/duckquill Submodule

@ -0,0 +1 @@
Subproject commit c8218246359680c124661ef905e04313a97ea703