docs: replace jekyll with docusaurus

- jsnon5 not handled by pre-commit

Co-authored-by: Zachary Klosko <zklosko@users.noreply.github.com>
This commit is contained in:
jo 2022-02-09 08:01:07 +01:00 committed by Jonas L
parent 9eab3b8d17
commit 8d8e55f236
42 changed files with 8428 additions and 4263 deletions

11
docs/.gitignore vendored
View file

@ -1,11 +0,0 @@
## Custom .gitignore
################################################################################
## Github Jekyll .gitignore
## See https://github.com/github/gitignore/blob/master/Jekyll.gitignore
################################################################################
_site/
.sass-cache/
.jekyll-cache/
.jekyll-metadata

View file

@ -1,11 +0,0 @@
---
layout: 404
linkto: /search
linktext: Search
img: /img/car-radio-unsplash.jpg
photocredit: Top photo by <a href="https://unsplash.com/@shotaspot?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Frank Albrecht</a> on <a href="https://unsplash.com/s/photos/radio?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>
---
# DEAD AIR
Sorry... there's nothing there.

View file

@ -1 +0,0 @@
libretime.org

View file

@ -1,5 +0,0 @@
source 'https://rubygems.org'
gem 'kramdown', '>= 2.3.0'
gem 'jekyll', '~> 4.1'

View file

@ -1,33 +0,0 @@
# Contributing to the docs
**Note:** External components for the website (Bootstrap, jQuery, Font Awesome etc.) are
now being served from CDNs instead of from the repo itself. You must be connected to the internet in order to test the site.
## Running Jekyll
Follow [these instructions](https://jekyllrb.com/docs/installation/) to install Ruby, then:
```
# Install Jekyll and Bundler gems
gem install jekyll bundler
# Install Jekyll dependencies
cd docs #must run in docs folder
bundler install
# Run Jekyll server
jekyll serve
```
## Where to find things
```
/docs -> main folder
|-- /_docs -> actual documentation lives here in markdown files
|-- /_includes -> the equilivant of components, can be inserted into HTML files
|-- /_layouts -> the HTML styling templates that make up each page
|-- /css -> CSS files live here
|-- /img -> all images, screenshots live here
|-- _config.yml -> main settings file for Jekyll
|-- Gemfile -> dependencies file for Jekyll
```

View file

@ -1,22 +0,0 @@
title: LibreTime
description: An open source radio automation server made for (and by) low-power FM stations and the rest of us.
logo: 144px.png
baseurl: "" # The subpath of your site, e.g. /blog
url: "https://libretime.org" # The base hostname & protocol for your site, e.g. http://example.com
layouts_dir: _layouts
includes_dir: _includes
favicon: favicon.ico
exclude: ["README"]
# Collections Settings
collections:
docs:
output: true
permalink: /docs/:name
# Build settings
plugins:
- kramdown

View file

@ -1,97 +0,0 @@
---
title: Contribute to LibreTime
layout: article
category: dev
permalink: /contribute
---
> LibreTime is a fork of AirTime due to stalled development of the open source
> version. For background on this, see this
> [open letter to the Airtime community](https://gist.github.com/hairmare/8c03b69c9accc90cfe31fd7e77c3b07d).
## Code of conduct
Before any contribution, read and be prepared to adhere to our
[code of conduct](https://github.com/libretime/code-of-conduct/blob/main/code_of_conduct.md).
In addition, LibreTime follow the standardized
[C4 development process](https://rfc.zeromq.org/spec:42/c4/), in which you can
find explanation about most of the development workflows for LibreTime.
## Bug reporting
Following these guidelines helps maintainers and the community understand your
report, reproduce the behavior, and find related reports.
Before creating bug reports, please check the following list, to be sure that
you need to create one:
- **Check the [LibreTime forum](https://discourse.libretime.org/)** for existing
questions and discussion.
- **Check that your issue does not already exist in the
[issue tracker](https://github.com/libretime/libretime/issues?q=is%3aissue+label%3abug)**.
> **Note:** If you find a **Closed** issue that seems like it is the same thing
> that you're experiencing, open a new issue and include a link to the original
> issue in the body of your new one.
When you are creating a bug report, please include as many details as possible.
Fill out the [required template](https://github.com/libretime/libretime/issues/new?labels=bug&template=bug_report.md),
the information it asks helps the maintainers resolve the issue faster.
Bugs are tracked on the [official issue tracker](https://github.com/libretime/libretime/issues).
## Suggesting enhancements
This section guides you through submitting an enhancement suggestion for
LibreTime, including completely new features and minor improvements to existing
functionality. Following these guidelines helps maintainers and the community
understand your suggestion and find related suggestions.
Before creating enhancement suggestions, please check the following list, as you
might find out that you don't need to create one:
- **Check the [LibreTime forum](https://discourse.libretime.org/)** for existing
questions and discussion.
- **Check that your issue does not already exist in the
[issue tracker](https://github.com/libretime/libretime/issues?q=is%3aissue+label%3afeature-request)**.
When you are creating an enhancement suggestion, please include as many details
as possible. Fill in [the template](https://github.com/libretime/libretime/issues/new?labels=feature-request&template=feature_request.md),
including the steps that you imagine you would take if the feature you're
requesting existed.
## Financial
LibreTime is run by volunteers who write code and manage the project in their
spare time. Financial contributions help us pay for our domain and back-end
infrastructure. It can also be used to cover the costs of development for
important features and conference attendance. If you wish to contribute
financially, you can do so through our
[OpenCollective](https://opencollective.com/libretime).
## Translation
LibreTime can run in over 15 different languages due to the gracious help of our
volunteers. Is your language not supported? Follow [this guide](/docs/interface-localization)
to add your language to LibreTime!
## Write documentation
One of the simplest ways to get started contributing to a project is through
improving documentation. LibreTime is constantly evolving, this means that
sometimes our documentation has gaps. You can help by adding missing sections,
editing the existing content so it is more accessible or creating new content
(tutorials, FAQs, etc).
Issues pertaining to the documentation are usually marked with the [Documentation](https://github.com/libretime/libretime/labels/documentation)
label.
Our site is built by Jekyll, which has an installation guide [here](https://jekyllrb.com/docs/installation/)
to help get you started. After cloning our repo locally, enter the `docs/`
directory and run
```
bundle install
jekyll serve
```

View file

@ -1,55 +0,0 @@
<footer class="footer-dark text-white font-weight-light text-white-55 pt-11 pb-5 overflow-hidden">
<div class="container ">
<div class="row justify-content-md-between">
<div class="col-md-12 col-lg-4 mb-4 mr-lg-auto">
<img class="mb-3" src="/img/logo.png" alt="Libretime" style="width: 170px;">
<p class="small font-weight-light mb-3">LibreTime is an open source radio automation solution helping communities broadcast with ease.</p>
</div>
<div class="col-sm-4 col-lg-2 mb-4">
<h4 class="h6 text-white mb-3">Contribute</h4>
<!-- Links -->
<ul class="list-unstyled">
<li class="mb-3"><a class="link-white-55" href="/contribute">Develop</a></li>
<li class="mb-3"><a class="link-white-55" href="https://opencollective.com/libretime">Donate</a></li>
</ul>
<!-- End Links -->
</div>
<div class="col-sm-4 col-lg-2 mb-4">
<h4 class="h6 text-white mb-3">Support</h4>
<!-- Links -->
<ul class="list-unstyled">
<li class="mb-3"><a class="link-white-55" href="/docs">Docs</a></li>
<li class="mb-3"><a class="link-white-55" href="/docs/troubleshooting">Troubleshooting</a></li>
</ul>
<!-- End Links -->
</div>
<div class="col-sm-4 col-lg-2 mb-4">
<h4 class="h6 text-white mb-3">Community</h4>
<!-- Links -->
<ul class="list-unstyled">
<li class="mb-3"><a class="link-white-55" href="https://discourse.libretime.org/">Discourse</a></li>
<li class="mb-3"><a class="link-white-55" href="https://chat.libretime.org/">Mattermost</a></li>
</ul>
<!-- End Links -->
</div>
</div>
<hr class="my-5 opacity-10">
<div class="row">
<div class="col-md-7">
<p class="small font-weight-light mb-md-0">Code licensed under AGPLv3; docs licensed under GPLv2. More details <a href="http://sourcefabric.booktype.pro/airtime-25-for-broadcasters/about-this-manual/">here</a>.</p>
{% if page.photocredit %}
<div class="small font-weight-light mb-md-0">{{page.photocredit}}</div>
{% endif %}
</div>
</div>
</div>
</footer>

View file

@ -1,16 +0,0 @@
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
<!-- Custom fonts, icons for this template -->
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css" rel="stylesheet" type="text/css">
<link href='https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Merriweather:400,300,300italic,400italic,700,700italic,900,900italic' rel='stylesheet' type='text/css'>
<!-- Custom styles for this template -->
<link href="/css/creative.min.css" rel="stylesheet">
<title>{{ site.title }} - {{ page.title }}</title>

View file

@ -1,25 +0,0 @@
<nav class="navbar navbar-expand-lg navbar-light fixed-top navbar-shrink" id="mainNav">
<div class="container">
<a class="navbar-brand js-scroll-trigger" href="/index">
{{ site.title }} </a>
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav ml-auto">
<li class="nav-item ml-lg-4 mb-2 mb-lg-0">
<a class="nav-link px-0" href="/install"> Install</a>
</li>
<li class="nav-item ml-lg-4 mb-2 mb-lg-0">
<a class="nav-link px-0" href="/docs">Docs</a>
</li>
<li class="nav-item ml-lg-4 mb-2 mb-lg-0">
<a class="nav-link px-0" href="https://github.com/libretime/libretime" target="_blank"><i class="fab fa-github mr-1"></i> Star on Github</a>
</li>
<li class="nav-item ml-lg-4 mb-2 mb-lg-0">
<a class="nav-link px-0" href="/search"><i class="fas fa-search"></i></a>
</li>
</ul>
</div>
</div>
</nav>

View file

@ -1,43 +0,0 @@
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
<script src="https://unpkg.com/bootstrap-table@1.16.0/dist/bootstrap-table.min.js"></script>
<!-- For Scroll to Top text; from https://getflywheel.com/layout/sticky-back-to-top-button-tutorial/ -->
<script>
// Set a variable for our button element.
const scrollToTopButton = document.getElementById('js-top');
const scrollFunc = () => {
// Get the current scroll value
let y = window.scrollY;
// If the scroll value is greater than the window height, let's add a class to the scroll-to-top button to show it!
if (y > 0) {
scrollToTopButton.className = "top-link show";
} else {
scrollToTopButton.className = "top-link hide";
}
};
window.addEventListener("scroll", scrollFunc);
const scrollToTop = () => {
// Let's set a variable for the number of pixels we are from the top of the document.
const c = document.documentElement.scrollTop || document.body.scrollTop;
// If that number is greater than 0, we'll scroll back to 0, or the top of the document.
// We'll also animate that scroll with requestAnimationFrame:
// https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame
if (c > 0) {
window.requestAnimationFrame(scrollToTop);
// ScrollTo takes an x and a y coordinate.
// Increase the '10' value to get a smoother/slower scroll!
window.scrollTo(0, c - c / 10);
}
};
// When the button is clicked, run our ScrolltoTop function above!
scrollToTopButton.onclick = function(e) {
e.preventDefault();
scrollToTop();
}
</script>

View file

@ -1,71 +0,0 @@
<script src="/lunr.js"></script>
<script>
{% assign counter = 0 %}
var documents = [{% for page in site.pages %}{% if page.url contains '.xml' or page.url contains 'assets' %}{% else %}{
"id": {{ counter }},
"url": "{{ site.url }}{{ page.url }}",
"title": "{{ page.title }}",
"body": "{{ page.content | markdownify | replace: '.', '. ' | replace: '</h2>', ': ' | replace: '</h3>', ': ' | replace: '</h4>', ': ' | replace: '</p>', ' ' | strip_html | strip_newlines | replace: ' ', ' ' | replace: '"', ' ' }}"{% assign counter = counter | plus: 1 %}
}, {% endif %}{% endfor %}{% for page in site.without-plugin %}{
"id": {{ counter }},
"url": "{{ site.url }}{{ page.url }}",
"title": "{{ page.title }}",
"body": "{{ page.content | markdownify | replace: '.', '. ' | replace: '</h2>', ': ' | replace: '</h3>', ': ' | replace: '</h4>', ': ' | replace: '</p>', ' ' | strip_html | strip_newlines | replace: ' ', ' ' | replace: '"', ' ' }}"{% assign counter = counter | plus: 1 %}
}, {% endfor %}{% for doc in site.docs %}{
"id": {{ counter }},
"url": "{{ site.url }}{{ doc.url }}",
"title": "{{ doc.title }}",
"body": "{{ doc.content | markdownify | replace: '.', '. ' | replace: '</h2>', ': ' | replace: '</h3>', ': ' | replace: '</h4>', ': ' | replace: '</p>', ' ' | strip_html | strip_newlines | replace: ' ', ' ' | replace: '"', ' ' }}"{% assign counter = counter | plus: 1 %}
}{% if forloop.last %}{% else %}, {% endif %}{% endfor %}];
var idx = lunr(function () {
this.ref('id')
this.field('title')
this.field('body')
documents.forEach(function (doc) {
this.add(doc)
}, this)
});
function lunr_search(term) {
document.getElementById('lunrsearchresults').innerHTML = '<ul></ul>';
if(term) {
document.getElementById('lunrsearchresults').innerHTML = "<p>Search results for '" + term + "'</p>" + document.getElementById('lunrsearchresults').innerHTML;
//put results on the screen.
var results = idx.search(term);
if(results.length>0){
//console.log(idx.search(term));
//if results
for (var i = 0; i < results.length; i++) {
// more statements
var ref = results[i]['ref'];
var url = documents[ref]['url'];
var title = documents[ref]['title'];
var body = documents[ref]['body'].substring(0,160)+'...';
document.querySelectorAll('#lunrsearchresults ul')[0].innerHTML = document.querySelectorAll('#lunrsearchresults ul')[0].innerHTML + "<li class='lunrsearchresult mb-2'><a href='" + url + "'><span class='title'>" + title + "</span><br /><span class='body'>"+ body +"</span><br /><span class='url'>"+ url +"</span></a></li>";
}
} else {
document.querySelectorAll('#lunrsearchresults ul')[0].innerHTML = "<li class='lunrsearchresult'>No results found...</li>";
}
}
return false;
}
</script>
<style>
#lunrsearchresults {padding-top: 0.2rem;}
.lunrsearchresult {padding-bottom: 1rem;}
.lunrsearchresult .title {color: #f05f40;}
.lunrsearchresult .url {color: gray;}
.lunrsearchresult a {display: block; color: black;}
.lunrsearchresult a:hover, .lunrsearchresult a:focus {text-decoration: none;}
.lunrsearchresult a:hover .title {text-decoration: underline;}
</style>
<form onSubmit="return lunr_search(document.getElementById('lunrsearch').value);">
<p><input type="text" class="form-control" id="lunrsearch" name="q" maxlength="255" value="" placeholder="Search via Lunr.js" /></p>
</form>
<div id="lunrsearchresults">
<ul class="list-line mb-0"></ul>
</div>

View file

@ -1,29 +0,0 @@
---
layout: default
---
<style>
header.masthead {
padding-top: 10rem;
padding-bottom: calc(10rem - 56px);
background-image: url("{{ page.img }}");
background-position: center center;
background-size: cover;
}
body{
font-family:Merriweather,'Helvetica Neue',Arial,sans-serif;
padding-top: 0px;
}
</style>
<!-- Splash Image -->
<header class="masthead text-center text-white d-flex">
<div class="container my-auto">
<div class="row">
<div class="col-lg-10 mx-auto">
{{ content }}
<a class="btn btn-primary btn-xl js-scroll-trigger" href="{{ page.linkto }}">{{ page.linktext }}</a>
</div>
</div>
</div>
</header>

View file

@ -1,76 +0,0 @@
---
layout: default
---
<!-- Promo Section -->
<section class="bg-primary">
<div class="container">
<div class="d-flex mh-25rem pt-11 py-6">
<div class="align-self-center">
<h1 class="text-white font-weight-light mb-3">{{ page.title }}</h1>
<nav aria-label="breadcrumb">
<ol class="breadcrumb breadcrumb-light">
<li class="breadcrumb-item"><a href="/">Home</a></li>
<li class="breadcrumb-item"><a href="/docs">Docs</a></li>
<li class="breadcrumb-item active" aria-current="page">{{ page.title }}</li>
</ol>
</nav>
</div>
</div>
</div>
<!-- SVG BG -->
<svg class="position-absolute bottom-0 left-0" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1920 323" enable-background="new 0 0 1920 323" xml:space="preserve">
<polygon fill="#ffffff" style="fill-opacity: .05;" points="-0.5,322.5 -0.5,121.5 658.3,212.3 "></polygon>
<polygon fill="#ffffff" style="fill-opacity: .1;" points="-2,323 1920,323 1920,-1 "></polygon>
</svg>
<!-- End SVG BG -->
</section>
<!-- End Promo Section -->
<main>
<p>
<div class="container py-10">
<div class="row">
<div class="col-lg-8 mb-11 mb-lg-4 pr-lg-6">
{{ content }}
</div>
<div class="col-lg-4 mb-4">
<div class="card p-3 border-0 shadow">
<div class="card-header pb-0">
<h4 class="h5 mb-3">In This Section</h4>
</div>
<div class="card-body">
<ul class="list-line mb-0">
{% for doc in site.docs %}
{% if doc.category == page.category %}
<li class="mb-2"><a class="link-muted" href="{{doc.url}}">{{doc.title}}</a></li>
{% endif %}
{% endfor %}
</ul>
</div>
</div>
<br>
<!-- Edit Page -->
<a class="card border-0 bg-primary link-white text-white mb-4" href="https://github.com/Libretime/libretime/edit/main/docs/{{ page.path }}">
<div class="card-body z-index-1">
<div class="d-flex align-items-center">
<i class="fa fa-pencil-alt fa-3x mr-4"></i>
<p class="mb-0">Help improve this page</p>
</div>
</div>
<!-- SVG BG -->
<svg class="position-absolute bottom-0 left-0" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1920 323" enable-background="new 0 0 1920 323" xml:space="preserve">
<polygon fill="#ffffff" style="fill-opacity: .05;" points="-0.5,322.5 -0.5,121.5 658.3,212.3 "></polygon>
<polygon fill="#ffffff" style="fill-opacity: .1;" points="-2,323 1920,323 1920,-1 "></polygon>
</svg>
<!-- End SVG BG -->
</a>
</div>
</div>
</div>
</main>

View file

@ -1,26 +0,0 @@
<!doctype html>
<html lang="en">
<head>
{% include head.html %}
</head>
<body id="page-top">
<!-- Navigation -->
{% include navbar.html %}
<!-- Scroll to Top link -->
<a class="top-link hide" href="" id="js-top">
<svg class="bi bi-arrow-up-circle-fill" width="4em" height="4em" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-10.646.354a.5.5 0 1 1-.708-.708l3-3a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1-.708.708L8.5 6.207V11a.5.5 0 0 1-1 0V6.207L5.354 8.354z"/>
</svg>
<span class="screen-reader-text">Back to top</span>
</a>
{{content}}
{% include footer.html %}
{% include scripts.html %}
</body>
</html>

View file

@ -1,202 +0,0 @@
---
layout: default
---
<style>
header.masthead {
padding-top: 10rem;
padding-bottom: calc(10rem - 56px);
background-image: url("{{ page.img }}");
background-position: center center;
background-size: cover;
}
body{
font-family:Merriweather,'Helvetica Neue',Arial,sans-serif;
padding-top: 0px;
}
</style>
<!-- Splash Image -->
<header class="masthead text-center text-white d-flex">
<div class="container my-auto">
<div class="row">
<div class="col-lg-10 mx-auto">
{{ content }}
<a class="btn btn-primary btn-xl js-scroll-trigger" href="{{ page.linkto }}">{{ page.linktext }}</a>
</div>
</div>
</div>
</header>
<!-- Features Block -->
<section id="features">
<div class="container">
<div class="row">
<div class="col-lg-12 text-center">
<h2 class="section-heading">Key features include</h2>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-lg-3 col-md-6 text-center">
<div class="service-box mt-5 mx-auto">
<i class="fas fa-4x fa-music text-primary mb-3 sr-icon-1"></i>
<h3 class="mb-3">Library Intelligence</h3>
<p class="text-muted mb-0">From designing intelligent &amp; automated playlists to drag-and-drop visual editing &amp; cuing, managing your library and playlists has never been simpler.</p>
</div>
</div>
<div class="col-lg-3 col-md-6 text-center">
<div class="service-box mt-5 mx-auto">
<i class="fas fa-4x fa-th-list text-primary mb-3 sr-icon-2"></i>
<h3 class="mb-3">Programming</h3>
<p class="text-muted mb-0">Schedule your live and pre-programmed shows easily with a drag-and-drop style calendar, additionally all content broadcasted is logged for efficient reporting to media licensing authorities.</p>
</div>
</div>
<div class="col-lg-3 col-md-6 text-center">
<div class="service-box mt-5 mx-auto">
<i class="fas fa-4x fa-users text-primary mb-3 sr-icon-3"></i>
<h3 class="mb-3">DJ Management</h3>
<p class="text-muted mb-0">Libretime's user management allows for the simple creation of hierarchical staff who can control their broadcast slots associated with them from anywhere on the planet!</p>
</div>
</div>
<div class="col-lg-3 col-md-6 text-center">
<div class="service-box mt-5 mx-auto">
<i class="fas fa-4x fa-broadcast-tower text-primary mb-3 sr-icon-4"></i>
<h3 class="mb-3">AM/FM &amp; Web</h3>
<p class="text-muted mb-0">LibreTime is flexible, allowing you to run your internet radio station entirely from a cloud VM with its built-in Icecast server or plug its analog output into the mixer at your broadcast AM or FM station.</p>
</div>
</div>
</div>
</div>
</section>
<!-- Screenshots gallery -->
<section class="p-0" id="screenshots">
<div class="container-fluid p-0">
<div class="row no-gutters popup-gallery">
<div class="col-lg-4 col-sm-6">
<a class="portfolio-box" href="/docs/dashboard">
<img class="img-fluid" src="/img/portfolio/library.jpg" alt="">
<div class="portfolio-box-caption">
<div class="portfolio-box-caption-content">
<div class="project-category text-faded">
Intelligent Library
</div>
</div>
</div>
</a>
</div>
<div class="col-lg-4 col-sm-6">
<a class="portfolio-box" href="/docs/listener-stats">
<img class="img-fluid" src="/img/portfolio/stream-stats.jpg" alt="">
<div class="portfolio-box-caption">
<div class="portfolio-box-caption-content">
<div class="project-category text-faded">
Streaming Listener Statistics
</div>
</div>
</div>
</a>
</div>
<div class="col-lg-4 col-sm-6">
<a class="portfolio-box" href="/docs/scheduling-shows">
<img class="img-fluid" src="/img/portfolio/scheduling.jpg" alt="">
<div class="portfolio-box-caption">
<div class="portfolio-box-caption-content">
<div class="project-category text-faded">
Show Scheduling
</div>
</div>
</div>
</a>
</div>
<div class="col-lg-4 col-sm-6">
<a class="portfolio-box" href="/docs/microsite">
<img class="img-fluid" src="/img/portfolio/builtin-microsite.jpg" alt="">
<div class="portfolio-box-caption">
<div class="portfolio-box-caption-content">
<div class="project-category text-faded">
Built-in Microsite
</div>
</div>
</div>
</a>
</div>
<div class="col-lg-4 col-sm-6">
<a class="portfolio-box" href="/docs/playout-history">
<img class="img-fluid" src="/img/portfolio/playout-history.jpg" alt="">
<div class="portfolio-box-caption">
<div class="portfolio-box-caption-content">
<div class="project-category text-faded">
Playout History &amp; Auditing
</div>
</div>
</div>
</a>
</div>
<div class="col-lg-4 col-sm-6">
<a class="portfolio-box" href="/docs/podcasts">
<img class="img-fluid" src="/img/portfolio/podcasts.jpg" alt="">
<div class="portfolio-box-caption">
<div class="portfolio-box-caption-content">
<div class="project-category text-faded">
Podcast Automation &amp; Scheduling
</div>
</div>
</div>
</a>
</div>
</div>
</div>
</section>
<!-- "Our Biggest Fans" Section -->
<section class="" id="biggest-fans">
<div class="container text-center">
<div class="row">
<div class="col-lg-12 text-center">
<h2 class="section-heading">Our Biggest Fans</h2>
</div>
</div>
<p>
<div class="station-logos">
<div class="station-logos-row">
<a class="station-logos-col" href="https://www.wrir.org" target="_blank">
<img src="img/stations/wrir973.png" alt="WRIR 97.3 FM">
</a>
<a class="station-logos-col" href="http://wcrsfm.org/" target="_blank">
<img src="img/stations/wrcs927.png" alt="WCRS 92.7 FM">
</a>
<a class="station-logos-col" href="https://rabe.ch/" target="_blank">
<img src="img/stations/rabe956.svg" alt="Rabe 95.6">
</a>
<a class="station-logos-col" href="https://campus-clermont.net/" target="_blank">
<img src="img/stations/radiocampus933.png" alt="Radio Campus 93.3">
</a>
</div>
</div>
</div>
</section>
<div class="container">
<section class="" id="get-started">
<div class="col-lg-10 mx-auto text-center">
<h2 class="section-heading">Get started with Libretime <span class="badge badge-secondary">Alpha</span></h2>
<br>
<div class="row">
{% for action in page.actions %}
<div class="col-sm-6">
<div class="card">
<div class="card-body">
<h5 class="card-title">{{action.title}}</h5>
<p class="card-text">{{action.text}}</p>
<a href="{{action.linkto}}" class="btn btn-primary">{{action.linktext}}</a>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
</section>
</div>

View file

@ -1,366 +0,0 @@
/*!
* Start Bootstrap - Libretime v1.0.0 ()
* Copyright 2013-2018
* Licensed under MIT (https://github.com/BlackrockDigital/libretime-website/blob/master/LICENSE)
*/
body,html{
width:100%;height:100%
}
body{
font-family:Merriweather,'Helvetica Neue',Arial,sans-serif;
padding-top: 57px;
}
hr{
max-width:auto;border-width:2px;border-color:#f05f40
}
hr.light{
border-color:#fff
}
img{
width:100%;
max-width: 600px;
}
a{
color:#f05f40;
-webkit-transition:all .2s;
transition:all .2s;
}
a:hover{
color:#f05f40
}
h1,h2,h3,h4,h5,h6{
font-family:'Open Sans','Helvetica Neue',Arial,sans-serif;
}
h1,h2{
margin-top: 30px; /* adding padding on top of lead headings */
}
/* Correcting overscroll on TOC links */
:target{
padding-top: 57px;
}
/* Table Properties */
table{
padding: 20px;
}
th{
background-color: #f05f40;
text-align: center;
color: white;
}
tr, td{
padding: 5px;
text-align: left;
border: 2px solid #f05f40
}
/* Theme Colors */
.bg-primary{
background-color:#f05f40!important
}
.bg-dark{
background-color:#212529!important
}
.footer-dark{
background-color:#212529!important;
padding:2rem 0
}
.text-faded{
color:rgba(255,255,255,.9)
}
div.text-footer{
text-align: center;
}
/* Changed padding */
section{padding:2rem 0}
.section-heading{margin-top:0}
::-moz-selection{color:#fff;background:#212529;text-shadow:none}
::selection{color:#fff;background:#212529;text-shadow:none}
img::-moz-selection{color:#fff;background:0 0}
img::selection{color:#fff;background:0 0}
img::-moz-selection{color:#fff;background:0 0}
#mainNav{
border-bottom:1px solid rgba(33,37,41,.1);background-color:#fff;font-family:'Open Sans','Helvetica Neue',Arial,sans-serif;-webkit-transition:all .2s;transition:all .2s
}
#mainNav .navbar-brand{
font-weight:700;
text-transform:uppercase;
color:#f05f40;
font-family:'Open Sans','Helvetica Neue',Arial,sans-serif
}
#mainNav .navbar-brand:focus,
#mainNav .navbar-brand:hover{color:#f05f40}
#mainNav .navbar-nav>li.nav-item>a.nav-link,
#mainNav .navbar-nav>li.nav-item>a.nav-link:focus{
font-size:.9rem;font-weight:700;text-transform:uppercase;color:#212529
}
#mainNav .navbar-nav>li.nav-item>a.nav-link:focus:hover,
#mainNav .navbar-nav>li.nav-item>a.nav-link:hover{color:#f05f40}
#mainNav .navbar-nav>li.nav-item>a.nav-link.active,
#mainNav .navbar-nav>li.nav-item>a.nav-link:focus.active{color:#f05f40!important;background-color:transparent}
#mainNav .navbar-nav>li.nav-item>a.nav-link.active:hover,
#mainNav .navbar-nav>li.nav-item>a.nav-link:focus.active:hover{background-color:transparent}
@media (min-width:992px){
#mainNav{border-color:transparent;background-color:transparent
}
#mainNav .navbar-brand{color:rgba(255,255,255,.7)}
#mainNav .navbar-brand:focus,#mainNav .navbar-brand:hover{color:#fff}
#mainNav .navbar-nav>li.nav-item>a.nav-link{padding:.5rem 1rem}
#mainNav .navbar-nav>li.nav-item>a.nav-link,
#mainNav .navbar-nav>li.nav-item>a.nav-link:focus{color:rgba(255,255,255,.7)}
#mainNav .navbar-nav>li.nav-item>a.nav-link:focus:hover,
#mainNav .navbar-nav>li.nav-item>a.nav-link:hover{color:#fff}
#mainNav.navbar-shrink{border-bottom:1px solid rgba(33,37,41,.1);background-color:#fff}
#mainNav.navbar-shrink .navbar-brand{color:#f05f40}
#mainNav.navbar-shrink .navbar-brand:focus,
#mainNav.navbar-shrink .navbar-brand:hover{color:#f05f40}
#mainNav.navbar-shrink .navbar-nav>li.nav-item>a.nav-link,
#mainNav.navbar-shrink .navbar-nav>li.nav-item>a.nav-link:focus{color:#212529}
#mainNav.navbar-shrink .navbar-nav>li.nav-item>a.nav-link:focus:hover,
#mainNav.navbar-shrink .navbar-nav>li.nav-item>a.nav-link:hover{color:#f05f40}}
header.masthead{
padding-top:10rem;padding-bottom:calc(10rem - 56px);
background-image:url(../img/header.jpg);
background-position:center center;
background-size:cover
}
header.masthead hr{
margin-top:30px;
margin-bottom:30px
}
header.masthead h1{font-size:2rem}
header.masthead p{font-weight:300}
@media (min-width:768px){
header.masthead p{font-size:1.15rem}
}
@media (min-width:992px){
header.masthead{
height:100vh;min-height:650px;padding-top:0;padding-bottom:0
}
header.masthead h1{font-size:3rem}
}
@media (min-width:1200px){
header.masthead h1{font-size:4rem}
}
.service-box{max-width:400px}
.portfolio-box{position:relative;display:block;max-width:650px;margin:0 auto}
.portfolio-box .portfolio-box-caption{
position:absolute;bottom:0;display:block;width:100%;height:100%;text-align:center;opacity:0;color:#fff;background:rgba(240,95,64,.9);-webkit-transition:all .2s;transition:all .2s
}
.portfolio-box .portfolio-box-caption .portfolio-box-caption-content{
position:absolute;top:50%;width:100%;-webkit-transform:translateY(-50%);transform:translateY(-50%);text-align:center
}
.portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-category,.portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-name{
padding:0 15px;font-family:'Open Sans','Helvetica Neue',Arial,sans-serif
}
.portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-category{
font-size:14px;font-weight:600;text-transform:uppercase
}
.portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-name{font-size:18px}.portfolio-box:hover .portfolio-box-caption{opacity:1}.portfolio-box:focus{outline:0}
@media (min-width:768px){
.portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-category{font-size:16px}
.portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-name{font-size:22px}
}
.text-primary{color:#f05f40!important}
.btn{
font-weight:700;text-transform:uppercase;border:none;border-radius:300px;font-family:'Open Sans','Helvetica Neue',Arial,sans-serif
}
.btn-xl{padding:1rem 2rem}
.btn-primary{background-color:#f05f40;border-color:#f05f40}
.btn-primary:active,.btn-primary:focus,.btn-primary:hover{color:#fff;background-color:#ee4b28!important}
.btn-primary:active,.btn-primary:focus{
-webkit-box-shadow:0 0 0 .2rem rgba(240,95,64,.5)!important;box-shadow:0 0 0 .2rem rgba(240,95,64,.5)!important
}
.btn-outline-full-width{border:1px solid #888;margin:5px;width:100%}
/* Blockquotes */
blockquote {
border: 2px solid #f05f40;
border-radius: 0px;
font-size: .9rem;
margin: 10px;
padding: 10px 20px;
}
blockquote p {
margin: 0;
line-height: 25px;
}
blockquote .small {
display: block;
font-size: 80%;
color: brown;
text-align: right;
}
/* Code Blocks */
code {
color: #ad462e;
font-size: .9rem;
}
pre.highlight {
border-left: 2px solid #212529;
background: white;
color: black;
font-size: .9rem;
margin: 10px;
padding: 10px 20px;
}
/* Scroll to Top */
.top-link {
transition: all .25s ease-in-out;
position: fixed;
bottom: 0;
right: 0;
display: inline-flex;
cursor: pointer;
align-items: center;
justify-content: center;
margin: 0 3em 3em 0;
border-radius: 50%;
padding: .25em;
width: 50px;
height: 50px;
background-color: #F8F8F8;
}
.show {
visibility: visible;
opacity: 1;
}
.hide {
visibility: hidden;
opacity: 0;
}
.screen-reader-text {
position: absolute;
clip-path: inset(50%);
margin: -1px;
border: 0;
padding: 0;
width: 1px;
height: 1px;
overflow: hidden;
word-wrap: normal !important;
clip: rect(1px, 1px, 1px, 1px);
&:focus {
display: block;
top: 5px;
left: 5px;
z-index: 100000;
clip-path: none;
background-color: #eee;
padding: 15px 23px 14px;
width: auto;
height: auto;
text-decoration: none;
line-height: normal;
color: #444;
font-size: 1em;
clip: auto !important;
}
}
/* Station Logos for Splash Page */
.station-logos img {
max-height: 200px;
max-width: 200px;
margin: auto;
}
.station-logos-row {
display: flex;
}
.station-logos-col {
flex: 25%;
padding: 5px;
}
/*------------------------------------
List
------------------------------------*/
.list-line {
list-style: none;
padding-left: 0;
}
.list-line li {
position: relative;
color: #FF6745;
padding-left: 1.5rem;
}
.list-line li::before {
position: absolute;
top: 0;
left: 0;
content: "-";
color: #FF6745;
}
.list-icon {
list-style: none;
padding-left: 0;
}
.list-icon li {
position: relative;
color: #212529;
padding-left: 1.8rem;
margin-bottom: 1.8rem;
}
.list-icon li::before {
position: absolute;
top: 0;
left: 0;
}
.list-icon-star li::before {
content: "\f005";
font-family: "Font Awesome 5 Free";
font-weight: 400;
color: #007bff;
}

View file

@ -1,141 +0,0 @@
---
layout: default
title: Docs
---
<main>
<section class="text-center pt-11 pb-6">
<div class="container">
<div class="w-md-75 w-lg-50 mx-auto text-center mb-5">
<h2 class="h3 text-center">Knowledge Base</h2>
<p>All of the guides you need to set up, maintain, and use Libretime, all in one place.</p>
</div>
<div class="row">
<div class="col-md-4 mb-5">
<div class="card p-3 border-0 shadow">
<div class="card-header border-0"><i class="fas fa-save fa-3x text-dark"></i></div>
<div class="card-body pt-0">
<h4 class="h5 mb-2"><a class="link-dark" href="/install">Install</a></h4>
<p class="card-text mb-4">Get Libretime up and running in just 10 minutes.</p>
</div>
</div>
</div>
<div class="col-md-4 mb-5">
<div class="card p-3 border-0 shadow">
<div class="card-header border-0"><i class="fas fa-wrench fa-3x text-dark"></i></div>
<div class="card-body pt-0">
<h4 class="h5 mb-2"><a class="link-dark" href="/docs/host-configuration">Configure</a></h4>
<p class="card-text mb-4">Prepare Libretime for primetime.</p>
</div>
</div>
</div>
<div class="col-md-4 mb-5">
<div class="card p-3 border-0 shadow">
<div class="card-header border-0"><i class="far fa-clock fa-3x text-dark"></i></div>
<div class="card-body pt-0">
<h4 class="h5 mb-2"><a class="link-dark" href="/docs/scheduling-shows">Schedule Shows</a></h4>
<p class="card-text mb-4">Putting in your first show? Start here.</p>
</div>
</div>
</div>
<div class="col-md-4 mb-5">
<div class="card p-3 border-0 shadow">
<div class="card-header border-0"><i class="fa fa-users fa-3x text-dark"></i></div>
<div class="card-body pt-0">
<h4 class="h5 mb-2"><a class="link-dark" href="/docs/users">User Accounts</a></h4>
<p class="card-text mb-4">Learn how to add, change, and delete user accounts.</p>
</div>
</div>
</div>
<div class="col-md-4 mb-5">
<div class="card p-3 border-0 shadow">
<div class="card-header border-0"><i class="fas fa-people-carry fa-3x text-dark"></i></div>
<div class="card-body pt-0">
<h4 class="h5 mb-2"><a class="link-dark" href="/contribute">Contribute to Libretime</a></h4>
<p class="card-text mb-4">Love what we do? Help us out!</p>
</div>
</div>
</div>
<div class="col-md-4 mb-5">
<div class="card p-3 border-0 shadow">
<div class="card-header border-0"><i class="fa fa-exclamation-triangle fa-3x text-dark"></i></div>
<div class="card-body pt-0">
<h4 class="h5 mb-2"><a class="link-dark" href="/docs/troubleshooting">Troubleshooting</a></h4>
<p class="card-text mb-4">Something not working? Here's a quick guide to fixing Libretime.</p>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Section -->
<div class="container">
<div class="card shadow-sm">
<div class="card-body p-4 px-md-7">
<div class="d-md-flex align-items-center">
<div class="w-100 mb-3 mb-md-0 pr-md-5">
<h2 class="h4 font-weight-light mb-0">Can't find what you're looking for?</h2>
<p class="font-weight-light mb-0">Ask for help on our Github repo!</p>
</div>
<div class="text-md-right w-100">
<a class="btn btn-dark" href="https://github.com/LibreTime/libretime/issues/new/choose">Submit a Request</a>
</div>
</div>
</div>
</div>
</div>
<!-- End Section -->
<section class="py-11">
<div class="container">
<div class="row">
<div class="col-md-4 mb-5 mb-md-0">
<i class="fas fa-headphones-alt fa-2x text-dark mb-3"></i>
<h3 class="h5 mb-2">Using Libretime</h3>
<ul class="list-unstyled">
{% for doc in site.docs %}
{% if doc.category == "interface" %}
<li class="mb-2"><a class="link-muted" href="{{doc.url}}">{{doc.title}}</a></li>
{% endif %}
{% endfor %}
</ul>
</div>
<div class="col-md-4 mb-5 mb-md-0">
<i class="fas fa-user-tie fa-2x text-dark mb-3"></i>
<h3 class="h5 mb-2">For Program Managers</h3>
<ul class="list-unstyled">
{% for doc in site.docs %}
{% if doc.category == "manager" %}
<li class="mb-2"><a class="link-muted" href="{{doc.url}}">{{doc.title}}</a></li>
{% endif %}
{% endfor %}
</ul>
</div>
<div class="col-md-4 mb-5 mb-md-0">
<i class="fas fa-user-secret fa-2x text-dark mb-3"></i>
<h3 class="h5 mb-2">For System Administrators</h3>
<ul class="list-unstyled">
{% for doc in site.docs %}
{% if doc.category == "admin" %}
<li class="mb-2"><a class="link-muted" href="{{doc.url}}">{{doc.title}}</a></li>
{% endif %}
{% endfor %}
</ul>
</div>
</div>
</div>
</section>
</main>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

View file

@ -1,25 +0,0 @@
---
layout: home
title: Home
linkto: index#get-started
linktext: Get Libretime
img: /img/radio-unsplash.jpg
photocredit: Top photo by <a href="https://unsplash.com/@leowieling?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Leo Wieling</a> on <a href="https://unsplash.com/s/photos/radio?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>
actions:
- title: Stable Release
text: The best so far. Just extract and run <code>sudo bash install -fiap</code>.
linkto: https://github.com/LibreTime/libretime/releases/download/3.0.0-alpha.10/libretime-3.0.0-alpha.10.tar.gz
linktext: Download 3.0-alpha-10
- title: Rolling Commits
text: Want the latest and greatest? Install from the source code.
linkto: /install
linktext: Install from Source
---
# BROADCAST WITHOUT LIMITS
Libretime is an open source radio automation and broadcasting solution helping communities get on-air with ease.
The platform can be easily deployed on dedicated hardware and VMs, on-prem or in the cloud, "free as in freedom" free.
Let your station underwrite its own destiny.

File diff suppressed because it is too large Load diff

View file

@ -1,29 +0,0 @@
---
layout: default
title: Search
---
<section class="bg-primary">
<div class="container">
<div class="d-flex mh-25rem pt-11 py-6">
<div class="align-self-center">
<h1 class="text-white font-weight-light mb-3">{{ page.title }}</h1>
<nav aria-label="breadcrumb">
<ol class="breadcrumb breadcrumb-light">
<li class="breadcrumb-item"><a href="/">Home</a></li>
<li class="breadcrumb-item active" aria-current="page">Search</li>
</ol>
</nav>
</div>
</div>
</div>
</section>
<section class="pt-11 pb-6">
<div class="container-lg">
{% include search-lunr.html %}
</div>
</section>