Skip to content

Commit

Permalink
Initial commit to set up Read the Docs support
Browse files Browse the repository at this point in the history
  • Loading branch information
RCheesley committed Oct 25, 2022
1 parent 778f570 commit c712a50
Show file tree
Hide file tree
Showing 17 changed files with 443 additions and 2 deletions.
157 changes: 155 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,155 @@
.DS_Store
.gitignore

# Created by https://www.toptal.com/developers/gitignore/api/python,jupyternotebooks
# Edit at https://www.toptal.com/developers/gitignore?templates=python,jupyternotebooks

### JupyterNotebooks ###
# gitignore template for Jupyter Notebooks
# website: http://jupyter.org/

.ipynb_checkpoints
*/.ipynb_checkpoints/*

# IPython
profile_default/
ipython_config.py

# Remove previous ipynb_checkpoints
# git rm -r .ipynb_checkpoints/

### Python ###
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook

# IPython

# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# End of https://www.toptal.com/developers/gitignore/api/python,jupyternotebooks
47 changes: 47 additions & 0 deletions docs/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Minimal makefile for Sphinx documentation
#

# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR =
BUILDDIR = build
LINKSDIR = links
LINKCHECKDIR = build/linkcheck

# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

.PHONY: help Makefile

.PHONY: link
link:
@read -p "Enter a Unique Link Name: " link_name; \
read -p "Enter the link text the user sees: " link_text; \
read -p "Enter the URL: " link_url; \
read -p "Enter the .py file name (use_lower_case_and_underscore of link name): " file_name; \
echo "The link name is: " $$link_name; \
echo "The link text is: " $$link_text; \
echo "The URL is: " $$link_url; \
echo "Creating the file: " $(LINKSDIR)/$$file_name".py"; \
echo "Enter the link in content as :xref:\`"$$link_name"\`"; \
echo "The user will see:" $$link_text; \
echo "Make sure you build and test the link."; \
echo "from . import link\n\nlink_name = \"$$link_name\" \n\
link_text = \"$$link_text\" \n\
link_url = \"$$link_url\" \n\n\
link.xref_links.update({link_name: (link_text, link_url)})" \
> $(LINKSDIR)/$$file_name".py" \

.PHONY: checklinks
checklinks:
$(SPHINXBUILD) -b linkcheck . $(LINKCHECKDIR)
@echo
@echo "Check finished. Report is in $(LINKCHECKDIR)."

# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
2 changes: 2 additions & 0 deletions docs/_templates/layout.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{% extends "!layout.html" %}
{% set css_files = css_files + ["_static/tablefix.css"] %}
18 changes: 18 additions & 0 deletions docs/about/what_is_mautic.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
What is Mautic?
###############

Mautic is the world's first Open Source Marketing Automation platform.

It was created by DB Hurley and launched in 2014 as an Open Source project under the GPL v3 license. You can find out more on our website,
:xref:`mautic.org`, or on the :xref:`Mautic GitHub repository`. You can :xref:`download Mautic` for free on mautic.org.

The Mautic Community are a worldwide distributed team of volunteers who are passionate about Mautic, Marketing Automation, and Open Source technologies.

We come together to build, improve and share Mautic, united by our belief in empowering organizations with the tools they need to deliver world-class automation and personalized experiences to their customers.

Anybody can get involved - whether you want to organise a local meetup, contribute code, improve our documentation or translations, or help us tell others about Mautic.

We are primarlily organized around the following channels:

:xref:`Mautic Community Forums`
:xref:`Mautic Community Slack`
60 changes: 60 additions & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Configuration file for the Sphinx documentation builder.

import sys, os
import sphinx_rtd_theme

sys.path.append(os.path.abspath('ext'))
sys.path.append('.')

from links.link import *
from links import *

# -- Project information

project = 'Mautic Community Handbook'
copyright = '2022, Mautic'
author = 'Mautic'

release = '0.1'
version = '0.1.0'

# -- General configuration

source_suffix = ['.rst', '.md']

extensions = [
'xref',
'sphinx.ext.duration',
'sphinx.ext.doctest',
'sphinx.ext.autodoc',
'sphinx.ext.autosummary',
'sphinx.ext.intersphinx',
'sphinx_rtd_theme',
'sphinx.ext.viewcode',
'sphinx.ext.autosectionlabel',
'myst_parser'
]

myst_enable_extensions = [
"linkify",
]

intersphinx_mapping = {
'python': ('https://docs.python.org/3/', None),
'sphinx': ('https://www.sphinx-doc.org/en/master/', None),
}
intersphinx_disabled_domains = ['std']

templates_path = ['_templates']

html_static_path = ['css']

# -- Options for HTML output

# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = 'sphinx_rtd_theme'

# -- Options for EPUB output
epub_show_urls = 'footnote'
14 changes: 14 additions & 0 deletions docs/css/tablefix.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/* override table width restrictions */
.wy-table-responsive table td, .wy-table-responsive table th {
white-space: normal;
}

.wy-table-responsive {
margin-bottom: 24px;
max-width: 100%;
overflow: visible;
}

.wy-table-responsive th p {
margin-bottom: unset;
}
40 changes: 40 additions & 0 deletions docs/ext/xref.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# -*- coding: utf-8 -*-

from docutils import nodes
from sphinx.util import caption_ref_re

def xref( typ, rawtext, text, lineno, inliner, options={}, content=[] ):

title = target = text
titleistarget = True
# look if explicit title and target are given with `foo <bar>` syntax
brace = text.find('<')
if brace != -1:
titleistarget = False
m = caption_ref_re.match(text)
if m:
target = m.group(2)
title = m.group(1)
else:
# fallback: everything after '<' is the target
target = text[brace+1:]
title = text[:brace]

link = xref.links[target]

if brace != -1:
pnode = nodes.reference(target, title, refuri=link[1])
else:
pnode = nodes.reference(target, link[0], refuri=link[1])

return [pnode], []

def get_refs(app):

xref.links = app.config.xref_links

def setup(app):

app.add_config_value('xref_links', {}, True)
app.add_role('xref', xref)
app.connect("builder-inited", get_refs)
17 changes: 17 additions & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
Mautic Community Handbook
#########################

This handbook is a central point of call for how the Mautic community is organised and managed.

The vision is that it will grow over time as the teams and governance structure evolves, with team members adding useful resources and updating processes as they mature and are refined.

.. note::

This project is under active development as we replatform from our old system.

.. toctree::
:maxdepth: 2
:caption: About Mautic
:hidden:

about/what_is_mautic
6 changes: 6 additions & 0 deletions docs/links/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
from os.path import dirname, basename, isfile

import glob
modules = glob.glob(dirname(__file__)+"/*.py")

__all__ = [ basename(f)[:-3] for f in modules if isfile(f)]
7 changes: 7 additions & 0 deletions docs/links/download_mautic.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from . import link

link_name = "Download Mautic"
link_text = "Download Mautic"
link_url = "https://mautic.org/download/"

link.xref_links.update({link_name: (link_text, link_url)})
3 changes: 3 additions & 0 deletions docs/links/link.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@


xref_links = {"key" : ("link text", "URL")}
7 changes: 7 additions & 0 deletions docs/links/mautic_forums.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from . import link

link_name = "Mautic Community Forums"
link_text = "Mautic Community Forums"
link_url = "https://forum.mautic.org/c/support"

link.xref_links.update({link_name: (link_text, link_url)})
Loading

0 comments on commit c712a50

Please sign in to comment.