Mercurial > p > roundup > code
view website/www/_templates/layout.html @ 8478:ed4ef394d5d6
doc: initial attempt to document setup of pgp support for email.
Used an AI assistant to help write this. Basic gpg commands seem to
work, but I have not tested this totally. Docs basically follow the
setup used for pgp testing in the test suite.
It looks like roundup accepts signed emails as well as encrypted
and signed emails. But it does not generate signed emails.
Also it looks like there is no PGP support for alternate email
addresses. Only primary addresses can do PGP emails.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sat, 15 Nov 2025 16:59:24 -0500 |
| parents | e775cd258763 |
| children | 4b89c22b1a91 |
line wrap: on
line source
{% set script_files = ['_static/jquery.js', '_static/doctools.js', '_static/language_data.js', '_static/searchtools.js', '_static/sphinx_highlight.js', '_static/tabs.js', ] %} <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> {%- if builder != 'htmlhelp' %} {%- set titlesuffix = docstitle|e %} {%- set titlesuffix = " - " + titlesuffix %} {%- endif %} <title>{{ title|striptags }}{{ titlesuffix }}</title> {%- if builder != 'htmlhelp' %} <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '{{ pathto("", 1) }}', VERSION: '{{ release|e }}', COLLAPSE_MODINDEX: false, FILE_SUFFIX: '{{ file_suffix }}' }; </script> {%- if pagename == 'search' %} {%- for scriptfile in script_files %} <script type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script> {%- endfor %} <script type="text/javascript">$('#searchbox').show(0);</script> {%- endif %} {%- if builder == 'web' %} <link rel="stylesheet" href="{{ pathto('index') }}?do=stylesheet{% if in_admin_panel %}&admin=yes{% endif %}" type="text/css" /> {%- for link, type, title in page_links %} <link rel="alternate" type="{{ type|e(true) }}" title="{{ title|e(true) }}" href="{{ link|e(true) }}" /> {%- endfor %} {%- else %} <link rel="stylesheet" href="{{ pathto('_static/style.css', 1) }}" type="text/css" /> {%- endif %} <!-- https://github.com/sphinx-doc/sphinx/issues/11699 means a duplicate viewport tag --> {{ metatags }} {%- if 'name="description"' not in metatags %} <meta name="description" content="Page {{ pagename }} in documentation on the Roundup issue tracker, version {{ release|e }}."> {%- endif %} {%- if pageurl %} {%- if pageurl.endswith("org/index.html") %} <!-- strip the index.html to make https://www.roundup-tracker.org/ canonical --> <link rel="canonical" href="{{ pageurl[:-10] }}" /> {%- else %} <link rel="canonical" href="{{ pageurl|e }}" /> {%- endif %} {%- endif %} {%- if use_opensearch %} <link rel="search" type="application/opensearchdescription+xml" title="{% trans docstitle=docstitle|e %}Search within {{ docstitle }}{% endtrans %}" href="{{ pathto('_static/opensearch.xml', 1) }}"/> {%- endif %} {%- if favicon %} <link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}"/> {%- endif %} {%- endif %} {%- block linktags %} {%- if hasdoc('about') %} <link rel="author" title="{{ _('About these documents') }}" href="{{ pathto('about') }}" /> {%- endif %} <link rel="index" title="{{ _('Index') }}" href="{{ pathto('genindex') }}" /> <link rel="search" title="{{ _('Search') }}" href="{{ pathto('search') }}" /> {%- if hasdoc('copyright') %} <link rel="copyright" title="{{ _('Copyright') }}" href="{{ pathto('copyright') }}" /> {%- endif %} <link rel="top" title="{{ docstitle|e }}" href="{{ pathto('index') }}" /> {%- if parents %} <link rel="up" title="{{ parents[-1].title|striptags }}" href="{{ parents[-1].link|e }}" /> {%- endif %} {%- if next %} <link rel="next" title="{{ next.title|striptags }}" href="{{ next.link|e }}" /> {%- endif %} {%- if prev %} <link rel="prev" title="{{ prev.title|striptags }}" href="{{ prev.link|e }}" /> {%- endif %} {%- endblock %} </head> <body> <div id="skiplink"><a href="#main">Skip to main content</a></div> <header class="header"> <div class="label non_mobile">Roundup</div> <div class="label mobile"><a href="#main">Roundup <span class="jumplabel">jump to {{ title|e }}</span></a></div> {%- if pagename != "search" %} <div id="searchbox" style="display: none"> <form class="search" action="{{ pathto('search') }}" method="get"> <input type="text" aria-label="Enter search terms" name="q" size="18" autocomplete="on" /> <input type="submit" value="{{ _('Search') }}" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> {%- endif %} </header> <div class="navigation"> <nav aria-label="primary navigation"> <div class="menu"> {{ toctree() }} </div> </nav> </div> <div class="content"> <nav id="subnav" aria-label="sub navigation"> {%- if prev %} <a title="{{ prev.title|striptags }}" href="{{ prev.link|e }}"> Prev</a> {%- endif %} {%- if next %} <a title="{{ next.title|striptags }}" href="{{ next.link|e }}"> Next</a> {%- endif %} <a title="{{ _('Index') }}" href="{{ pathto('genindex') }}"> Index</a> </nav> <main id="main" role="main" tabindex="-1"> {% block body %} {% endblock %} </main> </div> {%- block footer %} <footer class="footer"> <div> {%- if show_source and has_source and sourcename %} <span class="source">[<a href="{{ pathto('_sources/' + sourcename, true)|e }}" rel="nofollow">{{ _('page source') }}</a>]</span> {%- endif %} {%- if hasdoc('copyright') %} {% trans path=pathto('copyright'), copyright=copyright|e %}© <a href="{{ path }}">Copyright</a> {{ copyright }}.{% endtrans %} {%- else %} {% trans copyright=copyright|e %}© Copyright {{ copyright }}.{% endtrans %} {%- endif %} </div> <div> {%- if last_updated %} {% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %} {%- endif %} <span>Hosted by <a href="https://sourceforge.net"><img src="https://sflogo.sourceforge.net/sflogo.php?group_id=31577&type=1" width="88" height="31" alt="SourceForge.net Logo" /></a></span> </div> </footer> {%- endblock %} <link rel="stylesheet" href="{{ pathto('_static/pygments.css', 1) }}" type="text/css" /> {%- for cssfile in css_files %} <!-- loading css_files --> <link rel="stylesheet" href="{{ pathto(cssfile, 1) }}" type="text/css" /> {%- endfor %} <script> /* locally hosted goatcounter https://www.goatcounter.com/ */ /* include site info in path url to allow multiple sites to be tracked together */ window.goatcounter = { path: function(p) { return location.host + p } } </script> <script data-goatcounter="https://stats.rouilj.dynamic-dns.net/count" integrity="sha384-QGgNMMRFTi8ul5kHJ+vXysPe8gySvSA/Y3rpXZiRLzKPIw8CWY+a3ObKmQsyDr+a" async="" src="{{ pathto('_static/goatcounter_count.v3.js', 1) }}"> </script> <script id="documentation_options" data-url_root="{{ url_root }}" src="{{ pathto('_static/documentation_options.js', 1) }}"> </script> {%- if pagename != 'search' %} {%- for scriptfile in script_files %} <script type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script> {%- endfor %} <script type="text/javascript">$('#searchbox').show(0);</script> {%- endif %} {%- block extrahead %} {% endblock %} </body> </html>
