Skip to content

Commit

Permalink
Adding documentation webiste basic frame
Browse files Browse the repository at this point in the history
  • Loading branch information
rmichon committed Sep 25, 2023
1 parent 7bbb09e commit a33237c
Show file tree
Hide file tree
Showing 28 changed files with 8,211 additions and 0 deletions.
50 changes: 50 additions & 0 deletions web/mkdocs/docs/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Faust Language Documentation

This website centralizes all the documentation of the [Faust programming language](https://faust.grame.fr). It contains tutorials, the Faust manual, various examples, etc. It is meant to be used in tandem with the [Faust Web IDE](https://faustide.grame.fr).

The main Faust website can be found at the following URL:

<center>
<a href="https://faust.grame.fr" style="font-size:16pt; font-weight:bold;">https://faust.grame.fr</a>
</center>

---

## What is Faust?

[Faust](https://faust.grame.fr) (Functional Audio Stream) is a functional programming language for sound synthesis and audio processing with a strong focus on the design of synthesizers, musical instruments, audio effects, etc. Faust targets high-performance signal processing applications and audio plug-ins for a variety of platforms and standards. It is used on stage for concerts and artistic productions, in education and research, in open source projects as well as in commercial applications.

The core component of Faust is its compiler. It allows us to "translate" any Faust digital signal processing (DSP) specification to a wide range of non-domain specific languages such as C++, C, JAVA, LLVM IR, WebAssembly, etc. In this regard, Faust can be seen as an alternative to C++ but is much simpler and intuitive to learn.

Thanks to a wrapping system called "architectures," codes generated by Faust can be easily compiled into a wide variety of objects ranging from audio plug-ins to standalone applications or smartphone and web apps, etc.

---

## Getting Started

### If You're In a Hurry

If you’re in a hurry and just wanna have a look at how Faust programs look like, you can simply check the [**Faust Examples**](examples/ambisonics.md).

### If You Wanna Get Started With Faust

If you’re looking for a step by step tutorial of approximately 2 hours that will walk you through writing simple Faust programs and give you an overview of what Faust can do, have a look at our [**Quick Start Tutorial**](manual/quick-start.md).

### If You’re Looking For the "Manual"

Faust’s syntax and features are thoroughly documented in the [**Faust Manual**](manual/introduction.md). This resource contains hundreds of code examples and many short tutorials.

### If You’re Looking For the Documentation of a Function In the Faust Libraries

The [**documentation of Faust's standard libraries**](https://faustlibraries.grame.fr/) is automatically generated directly from the libraries' source code.

### If You Prefer Video Tutorials

Check out [**the Faust Kadenze course**](https://www.kadenze.com/courses/real-time-audio-signal-processing-in-faust/info).

### If You're Looking For Something in Particular

You can use the **Search** function of this website if you're looking for something specific.

### [Other Resources to learn Faust](https://faust.grame.fr/community/learning/)

33 changes: 33 additions & 0 deletions web/mkdocs/mkdocs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
site_name: Faust Documentation
site_description: A guide to the Faust Programming Language.
copyright: Copyright &copy; 2020-2023 <a href="https://www.grame.fr">Grame-CNCM</a>
nav:
- Home: index.md

theme:
name: mkdocs
custom_dir: 'theme'
navigation_depth: 4

site_dir: ../site

extra:
social:
- type: github
link: https://github.com/grame-cncm/faustdoc
- type: home
link: https://faust.grame.fr
- type: envelope
link: mailto:[email protected]

plugins:
- search

extra_javascript:
- https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML

markdown_extensions:
- mdx_math
- admonition
- markdown_include.include:
base_path: './docs'
202 changes: 202 additions & 0 deletions web/mkdocs/theme/base.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
<!DOCTYPE html>
<html lang="en">
<head>
{%- block site_meta %}
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
{% if page and page.is_homepage %}<meta name="description" content="{{ config['site_description'] }}">{% endif %}
{% if config.site_author %}<meta name="author" content="{{ config.site_author }}">{% endif %}
{% if page and page.canonical_url %}<link rel="canonical" href="{{ page.canonical_url }}">{% endif %}
{% if config.site_favicon %}<link rel="shortcut icon" href="{{ config.site_favicon|url }}">
{% else %}<link rel="shortcut icon" href="{{ 'img/favicon.ico'|url }}">{% endif %}
{%- endblock %}

{%- block htmltitle %}
<title>{% if page and page.title and not page.is_homepage %}{{ page.title }} - {% endif %}{{ config.site_name }}</title>
{%- endblock %}

{%- block styles %}
<link href="{{ 'css/bootstrap.min.css'|url }}" rel="stylesheet">
<link href="{{ 'css/font-awesome.min.css'|url }}" rel="stylesheet">
<link href="{{ 'css/base.css'|url }}" rel="stylesheet">
{%- if config.theme.highlightjs %}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/{{ config.theme.hljs_style }}.min.css">
{%- endif %}
{%- for path in config['extra_css'] %}
<link href="{{ path|url }}" rel="stylesheet">
{%- endfor %}
{%- endblock %}

{%- block libs %}

<!--<script src="{{ 'js/jquery-1.10.2.min.js'|url }}" defer></script>-->
<script src="{{ 'js/bootstrap.min.js'|url }}" defer></script>
{%- if config.theme.highlightjs %}
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
{%- for lang in config.theme.hljs_languages %}
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/{{lang}}.min.js"></script>
{%- endfor %}
<script>hljs.initHighlightingOnLoad();</script>
{%- endif %}
{%- endblock %}

{%- block analytics %}
{%- if config.google_analytics %}
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

ga('create', '{{ config.google_analytics[0] }}', '{{ config.google_analytics[1] }}');
ga('send', 'pageview');
</script>
{%- endif %}
{%- endblock %}

{%- block extrahead %} {% endblock %}
</head>

<body{% if page and page.is_homepage %} class="homepage"{% endif %}>
<div class="navbar fixed-top navbar-expand-lg navbar-{% if config.theme.nav_style == "light" %}light{% else %}dark{% endif %} bg-{{ config.theme.nav_style }}">
<div class="container">

{%- block site_name %}
<a class="navbar-brand" href="{{ nav.homepage.url|url }}"><img src="{{ nav.homepage.url|url }}/img/faustText.svg" width="150px"> {{ config.title_brand }}</a>
{%- endblock %}

{%- if nav|length>1 or (page and (page.next_page or page.previous_page)) or config.repo_url %}
<!-- Expander button -->
<button type="button" class="navbar-toggler" data-toggle="collapse" data-target="#navbar-collapse">
<span class="navbar-toggler-icon"></span>
</button>
{%- endif %}

<!-- Expanded navigation -->
<div id="navbar-collapse" class="navbar-collapse collapse">
{%- block site_nav %}
{%- if nav|length>1 %}
<!-- Main navigation -->
<ul class="nav navbar-nav">
{%- for nav_item in nav %}
{%- if nav_item.children %}
<li class="dropdown{% if nav_item.active %} active{% endif %}">
<a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown">{{ nav_item.title }} <b class="caret"></b></a>
<ul class="dropdown-menu">
{%- for nav_item in nav_item.children %}
{% include "nav-sub.html" %}
{%- endfor %}
</ul>
</li>
{%- else %}
<li class="navitem{% if nav_item.active %} active{% endif %}">
<a href="{{ nav_item.url|url }}" class="nav-link">{{ nav_item.title }}</a>
</li>
{%- endif %}
{%- endfor %}
</ul>
{%- endif %}
{%- endblock %}

<ul class="nav navbar-nav ml-auto">
{%- block search_button %}
{%- if 'search' in config['plugins'] %}
<li class="nav-item">
<a href="#" class="nav-link" data-toggle="modal" data-target="#mkdocs_search_modal">
<i class="fa fa-search"></i> Search
</a>
</li>
{%- endif %}
{%- endblock %}

{%- block repo %}
{%- if page and page.edit_url %}
<li class="nav-item">
<a href="{{ page.edit_url }}" class="nav-link">
{%- if config.repo_name == 'GitHub' -%}
<i class="fa fa-github"></i> Edit on {{ config.repo_name }}
{%- elif config.repo_name == 'Bitbucket' -%}
<i class="fa fa-bitbucket"></i> Edit on {{ config.repo_name }}
{%- elif config.repo_name == 'GitLab' -%}
<i class="fa fa-gitlab"></i> Edit on {{ config.repo_name }}
{%- else -%}
Edit on {{ config.repo_name }}
{%- endif -%}
</a>
</li>
{%- elif config.repo_url %}
<li class="nav-item">
<a href="{{ config.repo_url }}" class="nav-link">
{%- if config.repo_name == 'GitHub' -%}
<i class="fa fa-github"></i> {{ config.repo_name }}
{%- elif config.repo_name == 'Bitbucket' -%}
<i class="fa fa-bitbucket"></i> {{ config.repo_name }}
{%- elif config.repo_name == 'GitLab' -%}
<i class="fa fa-gitlab"></i> {{ config.repo_name }}
{%- else -%}
{{ config.repo_name }}
{%- endif -%}
</a>
</li>
{%- endif %}
{%- endblock %}
</ul>
</div>
</div>
</div>

{% if page and page.is_homepage and config.faust_banner %}
<div class="banner-home">
<img src="img/faustText.svg" width=300px>
<p>Functional Programming Language for Real Time Signal Processing</p>
<a class="btn btn-lg btn-primary" href="https://github.com/grame-cncm/faust" role="button">GitHub</a>
<a class="btn btn-lg btn-primary" href="https://faustdoc.grame.fr/manual/quick-start/" role="button">Quick Start</a>
<a class="btn btn-lg btn-primary" href="https://faustide.grame.fr" role="button">Try It Online!</a>
</div>
{%- endif %}

<div class="container">
<div class="row">
{%- block content %}
{%- if page.meta.hide_toc %}
<div class="col-md-12 main-container home-container" role="main">{% include "content.html" %}</div>
{%- else -%}
<div class="col-md-3">{% include "toc.html" %}</div>
<div class="col-md-9 main-container" role="main">{% include "content.html" %}</div>
{%- endif %}
{%- endblock %}
</div>
</div>

<footer class="col-md-12">
{%- block footer %}
<hr>
{%- if config.copyright %}
<p>{{ config.copyright }}</p>
{%- endif %}
{%- endblock %}
</footer>

{%- block scripts %}
<script>
var base_url = {{ base_url | tojson }},
shortcuts = {{ config.theme.shortcuts | tojson }};
</script>
<script src="{{ 'js/base.js'|url }}" defer></script>
{%- for path in config['extra_javascript'] %}
<script src="{{ path|url }}" defer></script>
{%- endfor %}
{%- endblock %}

{% if 'search' in config['plugins'] %}{%- include "search-modal.html" %}{% endif %}
{%- include "keyboard-modal.html" %}

</body>
</html>
{% if page and page.is_homepage %}
<!--
MkDocs version : {{ mkdocs_version }}
Build Date UTC : {{ build_date_utc }}
-->
{% endif %}
Loading

0 comments on commit a33237c

Please sign in to comment.