face-hh / webx
- понедельник, 3 июня 2024 г. в 00:00:02
An alternative for the World Wide Web - browse websites such as buss://yippie.rizz made in HTML, CSS and Lua. Custom web browser, custom HTML rendering engine, custom search engine, and more.
An alternative to the World Wide Web (http(s)://
), with:
rizz
, sigma
, lol
, dev
, etc,buss://dingle.it
./napture
- The source code for the browser Bussin Napture, used to view buss:// sites./dns
- The source code for the DNS (Domain Name System), used for the API at https://api.buss.lol
/dingle
- The source code for the official search engine (API) of Web X. For the frontend, check dingle frontend repobuss://register.it
, frontend for https://api.buss.lol
made for Bussin Web X. This can also serve as an example for how buss:// sites are made.yay -S napture
, it's available on AUR.Flakes: The repository provides a flake which exposes an overlay providing the webx package, so you could just add the input in your flake.nix file
{
inputs = {
webx.url = "github:face-hh/webx";
};
}
Then add it to your overlays and install it
{ inputs, ... }: {
nixpkgs.overlays = [
inputs.webx.overlays.x86_64-linux.default
];
}
For now, only tested on x86_64-linux, but may work on others aswell, just change the arch
Add it to either home.packages (home manager) or environment.systemPackages (global packages).
home.packages = with pkgs; [
webx
];
Then you could just launch it using webx
in your terminal.
install-linux
as an executable (if you can't execute it, first do sudo chmod +x ./install-linux
, then you should be able to install).install-macos
as an executable (if you can't execute it, first do chmod +x ./install-macos
, then you should be able to install).Install Rust if you haven't already. It should work by default, but if you're getting errors such as "missing PC files", you should Google it. Most likely you just have to install a library
Welcome to Gaming OS 🙂
rustup toolchain install stable-gnu && rustup default stable-gnu
pacman -Syu
just in case.pacman -S mingw-w64-x86_64-toolchain base-devel mingw-w64-x86_64-gtk4 mingw-w64-x86_64-gettext mingw-w64-x86_64-libxml2 mingw-w64-x86_64-librsvg mingw-w64-x86_64-pkgconf mingw-w64-x86_64-gcc mingw-w64-x86_64-libadwaita mingw-w64-x86_64-lua
Settings
-> Search
and open Advanced system settings
-> Click on Environment variables
(or just search "path")Path
-> Click on Edit
-> Add the following three entries: C:\msys64\mingw64\include
, C:\msys64\mingw64\bin
, and C:\msys64\mingw64\lib
.napture/
, run cargo run
.brew install pkg-config
which pkg-config
3.1. Should return something like /opt/homebrew/bin/pkg-config
. If it doesn't, add it to your path.
brew install glib
brew install gobject-introspection
brew install graphene
brew install gdk-pixbuf
brew install pango
brew install gtk+4
brew install libadwaita
brew install lua@5.4
brew --prefix glib
brew --prefix gobject-introspection
brew --prefix graphene
brew --prefix gdk-pixbuf
brew --prefix pango
brew --prefix gtk4
brew --prefix libadwaita
brew --prefix lua@5.4
4.1 Validate if the libraries are installed adequately and set in PKG_CONFIG_PATH, command below should return the path to the libraries without any errors.
pkg-config --libs --cflags glib-2.0
pkg-config --libs --cflags gobject-2.0
pkg-config --libs --cflags graphene-gobject-1.0
pkg-config --libs --cflags gdk-pixbuf-2.0
pkg-config --libs --cflags pango
pkg-config --libs --cflags gtk4
pkg-config --libs --cflags libadwaita-1
pkg-config --libs --cflags lua-5.4
cargo run
in the napture/
directory.cd napture
cargo build
# or
cargo run
Please follow How to code a Buss site for a better visual guide.
So you wish to publish a website to Web X? Great! Let's go through the rules:
By publishing content to this platform ("Bussin Napture"/"Bussin Web X"), you agree to comply with all rules and regulations set forth by the administrators. The administrators reserve the right to interpret and enforce these rules at their discretion. To report websites that are not following the listed rules, please contact FaceDev
on either Twitter or Discord.
Now, to register a website, navigate to buss://register.it
through Bussin Napture.
What you need is the Publish section.
duckduckgo
)Result will appear...
label. (example: rizz
)/index.html
on port 80index.html
, outside any folder. (example: registrar), with the main
default branch.Don't worry! The IP doesn't have to be valid, and you can save the domain for later!
WARNING: After creating the domain, you'll be shown a secret key. Please make sure to save it as you will need it to Update/Delete your domain.
Bussin Napture fetches index.html
at whatever path you give it. For example, if you enter http://localhost:3000
, Napture will fetch http://localhost:3000/index.html
. From the index.html, if you have further <link>
or <script>
imports, they will be fetched at http://localhost:3000/file.(css|lua)
.
python -m http.server 3000
./napture file:///home/path/to/folder
.file:///home/path/to/folder
in the search bar.The supported tags are: head
, title
, link
, meta
, script
, h1
-h6
, div
, p
, ul
, ol
, li
, div
, button
, hr
, img
, input
, textarea
, button
, select
, option
. Keep in mind their syntax may be different if you're already familiar with HTML5 (i.e. link
is used for the tab icon). Please check registrar or /napture/test/index.html
for examples.
The supported properties are:
border-color
border-width
border-style
border-radius
padding
direction
(row | column)align-items
: (fill | start | center | end)gap
color
font-size
font-height
font-family
font-weight
(ultralight | light | normal | bold | ultrabold | heavy)underline
(none | single | double | low | error)underline-color
overline
(none | single)overline-color
strikethrough
(false | true)strikethrough-color
margin-left
margin-right
margin-top
margin-bottom
width
(only on <input>
& <textarea>
)height
(only on <input>
& <textarea>
)Properties whose value type wasn't specified are either measured in px
, or are colors (#fff
, red
, etc.)
For those coming from the traditional web...
- 1. const test = document.querySelector(".classExample");
- 2. test.textContent = "abc";
- 3. test.href = "https://ok.test"
- 4. console.log(test.href)
- 5. test.addEventListener("click", () => {})
- 6. test.addEventListener("submit", () => {})
+ 1. local test = get("classExample")
+ 2. test.set_content("abc");
+ 3. test.set_href("buss://register.it")
+ 4. print(test.get_href())
+ 5. test.on_click(function())
+ 6. test.on_submit(function())
I believe you'd get a better understand if you explored the registrar repository's script.lua
.
NOTE: Bussin Napture doesn't support buss://
redirects yet. They will be added in the official release.
Made by FaceDev with pure utter hatred and undesire :D