TODO: convert to markdown
This commit is contained in:
commit
3918c22b41
5 changed files with 375 additions and 0 deletions
116
Client/index.html
Normal file
116
Client/index.html
Normal file
|
@ -0,0 +1,116 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" href="/theme.css">
|
||||
<title>Interverse - Libre Solutions Network</title>
|
||||
<script defer src="https://unpkg.com/alpinejs@3.x.x/dist/cdn.min.js"></script>
|
||||
<script src="/helper.js"></script>
|
||||
<script src="interverse.js"></script>
|
||||
<!-- Primary Meta Tags -->
|
||||
<meta name="title" content="Interverse - Libre Solutions Network">
|
||||
<meta name="description" content="A web0 search engine.">
|
||||
<!-- Open Graph / Facebook -->
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:title" content="Interverse - Libre Solutions Network">
|
||||
<meta property="og:description" content="A web0 search engine.">
|
||||
<meta property="og:image" content="https://libresolutions.network/logo.svg">
|
||||
<!-- Twitter -->
|
||||
<meta property="twitter:card" content="summary_large_image">
|
||||
<meta property="twitter:title" content="Interverse - Libre Solutions Network">
|
||||
<meta property="twitter:description" content="A web0 search engine.">
|
||||
<meta property="twitter:image" content="https://libresolutions.network/logo.svg">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header style="align-content: center;">
|
||||
<img src="/logo.svg">
|
||||
<h1><a href="/">Libre Solutions Network</a> - Interverse <a href="/Interverse/Docs"><u>Docs</u></a></h1>
|
||||
</header>
|
||||
<div class="interverse" x-data x-if="Alpine.store('data')">
|
||||
<div id="interverse-details">
|
||||
<img x-bind:src="Alpine.store('data')['image']">
|
||||
<h1 x-text="Alpine.store('data')['name']"></h1>
|
||||
</div>
|
||||
<hr>
|
||||
<h2>Content:</h2>
|
||||
<div id="interverse-resources">
|
||||
<template x-for="resource in Alpine.store('data')['resources']">
|
||||
<a x-bind:href="resource['location']">
|
||||
<div class="interverse-resource">
|
||||
<img class="interverse-resource-icon" x-bind:src="resource['icon']">
|
||||
<h2 x-text="resource['label']"></h2>
|
||||
<p x-text="resource['description']"></p>
|
||||
</div>
|
||||
</a>
|
||||
</template>
|
||||
</div>
|
||||
<h2>Links</h2>
|
||||
<div id="interverse-connections">
|
||||
<template x-for="connection in Alpine.store('data')['connections']">
|
||||
<div class="interverse-connection" >
|
||||
<template x-if="Alpine.store(connection)['version'] >=0">
|
||||
<div x-on:click="initialize(connection+'/.well-known/interverse')">
|
||||
<h3 x-text="Alpine.store(connection)['name']"></h3>
|
||||
<img x-bind:src="Alpine.store(connection)['image']">
|
||||
</div>
|
||||
|
||||
</template>
|
||||
<template x-if="name == ''">
|
||||
<a x-bind:href="connection" x-text="connection"></a>
|
||||
</template>
|
||||
|
||||
</div>>
|
||||
</template>
|
||||
</div>
|
||||
<div id="interverse-contact">
|
||||
<template x-for="contact in Alpine.store('data')['contact']">
|
||||
<div class="interverse-contact">
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var main_url="/.well-known/interverse";
|
||||
if (getUrlParameter('s') && getUrlParameter("url")){
|
||||
var uri = "";
|
||||
main_url=getUrlParameter('s')+"://"+getUrlParameter("url")+'/.well-known/interverse';
|
||||
}
|
||||
else{
|
||||
if (getUrlParameter('url')){
|
||||
main_url = "https://" + getUrlParameter('url')+'/.well-known/interverse';
|
||||
}
|
||||
}
|
||||
document.addEventListener('alpine:init',function(){
|
||||
initialize(main_url);
|
||||
});
|
||||
|
||||
function initialize(url){
|
||||
Alpine.store("data",{});
|
||||
fetchdata(url,function(e){
|
||||
data = JSON.parse(e.target.response);
|
||||
Alpine.store("data",data);
|
||||
connections = data['connections'];
|
||||
for (var i =0; i<connections.length; i++){
|
||||
fetchdata(connections[i]+'/.well-known/interverse',function(e){
|
||||
try{
|
||||
dat = JSON.parse(e.target.response);
|
||||
console.log(dat);
|
||||
Alpine.store(dat['location'],dat);
|
||||
}
|
||||
catch{
|
||||
console.log("Failed to parse connection JSON");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
0
Client/interverse.js
Normal file
0
Client/interverse.js
Normal file
234
Docs/index.html
Normal file
234
Docs/index.html
Normal file
|
@ -0,0 +1,234 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<link rel="stylesheet" href="/theme.css">
|
||||
<title>Libre Solutions Network</title>
|
||||
|
||||
<!-- Primary Meta Tags -->
|
||||
<meta name="title" content="Interverse documentation - Libre Solutions Network">
|
||||
<meta name="description" content="Interverse is a web0 search engine powered by relationships.">
|
||||
<meta property="og:title" content="Interverse documentation - Libre Solutions Network">
|
||||
<meta property="og:description" content="Interverse is a web0 search engine powered by relationships.">
|
||||
<meta property="og:image" content="https://libresolutions.network/logo.png">
|
||||
<meta property="twitter:title" content="Libre Solutions Network">
|
||||
<meta property="twitter:description" content="Interverse is a web0 search engine powered by relationships.">
|
||||
<meta property="twitter:image" content="https://libresolutions.network/logo.png">
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header>
|
||||
<img src="/logo.svg">
|
||||
<h1><a href="/">Libre Solutions Network</a> - <a href="/Interverse"><u>Interverse</u></a> - Documentation</h1>
|
||||
</header>
|
||||
<div class="content">
|
||||
<div>
|
||||
<h2>What is the interverse?</h2>
|
||||
<p>
|
||||
Interverse is a <a href="https://web0.small-web.org/">web0</a> search engine powered by trust and relationships. <br>
|
||||
|
||||
</p>
|
||||
<h2>What are the Benefits?</h2>
|
||||
<ul>
|
||||
<li>No databases / cryptocurrency required</li>
|
||||
<li>Super scalable!</li>
|
||||
<li>Inspired by Web0 / Fediverse</li>
|
||||
</ul>
|
||||
<h2>Can I get started?</h2>
|
||||
<p>You don't need my permission!<br>
|
||||
Simply follow the steps and you're online!
|
||||
<ol>
|
||||
<li>Grab the <a href="interverse-example.json"><u>example file</u></a></li>
|
||||
<li>Modify it with your data</li>
|
||||
<li>Serve that file from <u>your.website/<strong>.well-known/interverse</strong></u></li>
|
||||
<li>Ensure that the webserver also adds the correct header:
|
||||
<br><strong>access-control-allow-origin *</strong>
|
||||
</li>
|
||||
<li>Feel free to test your setup by visiting:<br>
|
||||
<u>https://libresolutions.network/Interverse?url=your.website</u></li>
|
||||
<li>If you need any help feel free to contact us below.</li>
|
||||
|
||||
</ol>
|
||||
<h2>Widget</h2>
|
||||
<p>
|
||||
Work in progress. Simply a demonstration of what is possible.
|
||||
</p>
|
||||
<iframe class="interverse-widget" src="https://libresolutions.network/Interverse?url=gabe.rocks"></iframe>
|
||||
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h1 id='spec'>Interverse v0.l</h1>
|
||||
<p>The interverse file is the gateway to creating an interconnected trust-based web.</p>
|
||||
<p>The file is json formatted but is simply at /.well-known/interverse on your domain/subdomain.</p>
|
||||
<br><a href="interverse-example.json"><u>Example file</u></a>
|
||||
<h2>Structure</h2>
|
||||
<p>Interverse is designed to be extensible, other clients may impliment other features on top.</p>
|
||||
|
||||
<h2>Fields</h2>
|
||||
<h3>name</h3>
|
||||
<p>The name of your website (it can be your name, your brand or group)...ect</p>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Mandatory</th>
|
||||
<th>Type</th>
|
||||
<th>Can be empty</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Yes</td>
|
||||
<td>String</td>
|
||||
<td>Not enforced</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h3>location</h3>
|
||||
<p>This is the location of your website.</p>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Mandatory</th>
|
||||
<th>Type</th>
|
||||
<th>Can be empty</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Yes</td>
|
||||
<td>String (url)</td>
|
||||
<td>Yes</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h3>image</h3>
|
||||
<p>Whatever image you want to use to represent your website</p>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Mandatory</th>
|
||||
<th>Type</th>
|
||||
<th>Can be empty</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Yes</td>
|
||||
<td>String (url)</td>
|
||||
<td>Not enforced</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p></p>
|
||||
<h3>connections</h3>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Mandatory</th>
|
||||
<th>Type</th>
|
||||
<th>Can be empty</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Yes</td>
|
||||
<td>list (of urls)</td>
|
||||
<td>Yes</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>resources</h3>
|
||||
<p>
|
||||
This is intended to be for content on your website you speifically want to feature.
|
||||
</p>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Mandatory</th>
|
||||
<th>Type</th>
|
||||
<th>Can be empty</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Yes</td>
|
||||
<td>List (resource objects)</td>
|
||||
<td>Yes</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h4>Object fields:</h4>
|
||||
<h5>label</h5>
|
||||
<p>Title of the resource</p>
|
||||
|
||||
<h5>icon</h5>
|
||||
<p>Absolute link to a icon for the resource</p>
|
||||
|
||||
<h5>location</h5>
|
||||
<p>the location of the resource (url)</p>
|
||||
|
||||
<h5>description</h5>
|
||||
<p>Describe the resource</p>
|
||||
|
||||
|
||||
<h3>contact</h3>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Mandatory</th>
|
||||
<th>Type</th>
|
||||
<th>Can be empty</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>No</td>
|
||||
<td>List (contact)</td>
|
||||
<td>Yes</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h3>version</h3>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Mandatory</th>
|
||||
<th>Type</th>
|
||||
<th>Can be empty</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>No</td>
|
||||
<td>Not enforced</td>
|
||||
<td>Yes</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<footer>
|
||||
<div>
|
||||
<h1>Follow on</h1>
|
||||
<ul>
|
||||
|
||||
<a href="https://libresolutionsnetwork.substack.com">
|
||||
<li class="substack icon">Substack</li>
|
||||
</a>
|
||||
<a href="https://odysee.com/@LibreSolutionsNetwork:4?r=BXWcQvivPPvVvzsxJSVLo2rodhgqdPJr">
|
||||
<li class="odysee icon">Odysee</li>
|
||||
</a>
|
||||
<a href="https://libresolutions.network/rss.xml">
|
||||
<li class="rss icon">RSS</li>
|
||||
</a>
|
||||
<a href="https://leafposter.club/@LibreSolutionsNetwork">
|
||||
<li class="fediverse icon">Fediverse</li>
|
||||
</a>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<h1>Contact</h1>
|
||||
<ul style="list-style-type: none;">
|
||||
<a href="mailto:contact@libresolutions.network">
|
||||
<li class="email icon">contact@libresolutions.network</li>
|
||||
</a>
|
||||
<a href="https://matrix.to/#/@gabriel:libresolutions.network">
|
||||
<li class="matrix icon">@gabriel:libresolutions.network</li>
|
||||
</a>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<h1>Support our work</h1>
|
||||
<ul>
|
||||
<a href="https://liberapay.com/Gabe/">
|
||||
<li class="icon liberapay">Liberapay</li>
|
||||
</a>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</footer>
|
||||
<script>
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
23
Docs/interverse-example.json
Normal file
23
Docs/interverse-example.json
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"version": 0.1,
|
||||
"name": "My website",
|
||||
"image":"https://my.website/logo.svg",
|
||||
"location": "https://my.website",
|
||||
"resources": [
|
||||
{
|
||||
"label": "RSS Feed",
|
||||
"icon": "/icons/rss.svg",
|
||||
"location": "https://my.website.com/rss.xml",
|
||||
"description": "Stay up to date!"
|
||||
}
|
||||
],
|
||||
"connections": [
|
||||
"https://libresolutions.network",
|
||||
"https://retroedge.tech"
|
||||
],
|
||||
"contact": {
|
||||
"e-mail": "contact@https://my.website",
|
||||
"matrix": "@me:https://my.website",
|
||||
"fediverse": "@me@mastodon.social"
|
||||
}
|
||||
}
|
2
readme.md
Normal file
2
readme.md
Normal file
|
@ -0,0 +1,2 @@
|
|||
Just getting started.
|
||||
|
Loading…
Reference in a new issue