Initial commit
This commit is contained in:
commit
c01ea42f08
19
.gitea/workflows/publish.yml
Normal file
19
.gitea/workflows/publish.yml
Normal 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
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
.DS_Store
|
||||
/static/processed_images
|
53
.gitlab-ci.yml
Normal file
53
.gitlab-ci.yml
Normal 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
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
[submodule "themes/duckquill"]
|
||||
path = themes/duckquill
|
||||
url = https://codeberg.org/daudix/duckquill.git
|
56
config.toml
Normal file
56
config.toml
Normal 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
90
content/_index.md
Normal 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.
|
BIN
content/backends/Adwaita/Adwaita.png
Normal file
BIN
content/backends/Adwaita/Adwaita.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 674 KiB |
BIN
content/backends/Adwaita/App.png
Normal file
BIN
content/backends/Adwaita/App.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 237 KiB |
BIN
content/backends/Adwaita/Environment.png
Normal file
BIN
content/backends/Adwaita/Environment.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.8 MiB |
52
content/backends/Adwaita/index.md
Normal file
52
content/backends/Adwaita/index.md
Normal 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.
|
11
content/backends/AppKit/index.md
Normal file
11
content/backends/AppKit/index.md
Normal 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
|
12
content/backends/TermKit/index.md
Normal file
12
content/backends/TermKit/index.md
Normal 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
|
11
content/backends/WinUI/index.md
Normal file
11
content/backends/WinUI/index.md
Normal 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
|
12
content/backends/_index.md
Normal file
12
content/backends/_index.md
Normal 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
14
content/david/index.md
Normal 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
7
content/docs/index.md
Normal 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
7
content/hig/index.md
Normal 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
BIN
content/trailer.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 106 KiB |
7
content/tutorials/GettingStarted/index.md
Normal file
7
content/tutorials/GettingStarted/index.md
Normal 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"]
|
||||
+++
|
6
content/tutorials/_index.md
Normal file
6
content/tutorials/_index.md
Normal file
@ -0,0 +1,6 @@
|
||||
+++
|
||||
title = "Tutorials"
|
||||
sort_by = "date"
|
||||
template = "article_list.html"
|
||||
page_template = "article.html"
|
||||
+++
|
38
sass/custom.scss
Normal file
38
sass/custom.scss
Normal 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
BIN
static/favicon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 169 KiB |
1
themes/duckquill
Submodule
1
themes/duckquill
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit c8218246359680c124661ef905e04313a97ea703
|
Loading…
Reference in New Issue
Block a user