Spaces:
Build error
Build error
add methods writeup
Browse files- reports/Cambridge_Response_Summary.html +0 -0
- reports/Cambridge_Response_Summary.pdf +0 -0
- reports/Cambridge_Response_Summary.qmd +0 -0
- reports/DOCS/DOCS.html +0 -0
- reports/DOCS/DOCS.pdf +0 -0
- reports/DOCS/DOCS.qmd +101 -0
- reports/DOCS/DOCS_files/figure-latex/mermaid-figure-1.png +0 -0
- reports/DOCS/_extensions/holtzy/lumo/.DS_Store +0 -0
- reports/DOCS/_extensions/holtzy/lumo/_extension.yml +20 -0
- reports/DOCS/_extensions/holtzy/lumo/footer.html +9 -0
- reports/DOCS/_extensions/holtzy/lumo/particles.json +116 -0
- reports/DOCS/_extensions/holtzy/lumo/style.css +158 -0
- reports/DOCS/_extensions/holtzy/lumo/title-block.html +160 -0
- reports/DOCS/_extensions/nrennie/PrettyPDF/PrettyPDF.lua +10 -0
- reports/DOCS/_extensions/nrennie/PrettyPDF/PrettyPDF.tex +77 -0
- reports/DOCS/_extensions/nrennie/PrettyPDF/Ubuntu/UFL.txt +96 -0
- reports/DOCS/_extensions/nrennie/PrettyPDF/Ubuntu/Ubuntu-Bold.ttf +0 -0
- reports/DOCS/_extensions/nrennie/PrettyPDF/Ubuntu/Ubuntu-BoldItalic.ttf +0 -0
- reports/DOCS/_extensions/nrennie/PrettyPDF/Ubuntu/Ubuntu-Italic.ttf +0 -0
- reports/DOCS/_extensions/nrennie/PrettyPDF/Ubuntu/Ubuntu-Light.ttf +0 -0
- reports/DOCS/_extensions/nrennie/PrettyPDF/Ubuntu/Ubuntu-LightItalic.ttf +0 -0
- reports/DOCS/_extensions/nrennie/PrettyPDF/Ubuntu/Ubuntu-Medium.ttf +0 -0
- reports/DOCS/_extensions/nrennie/PrettyPDF/Ubuntu/Ubuntu-MediumItalic.ttf +0 -0
- reports/DOCS/_extensions/nrennie/PrettyPDF/Ubuntu/Ubuntu-Regular.ttf +0 -0
- reports/DOCS/_extensions/nrennie/PrettyPDF/_extension.yml +30 -0
- reports/DOCS/_extensions/nrennie/PrettyPDF/pagestyle.tex +1 -0
- reports/DOCS/_extensions/nrennie/PrettyPDF/typst-show.typ +15 -0
- reports/DOCS/_extensions/nrennie/PrettyPDF/typst-template.typ +90 -0
- reports/_extensions/holtzy/lumo/.DS_Store +0 -0
- reports/_extensions/holtzy/lumo/_extension.yml +20 -0
- reports/_extensions/holtzy/lumo/footer.html +9 -0
- reports/_extensions/holtzy/lumo/particles.json +116 -0
- reports/_extensions/holtzy/lumo/style.css +158 -0
- reports/_extensions/holtzy/lumo/title-block.html +160 -0
- reports/figs/places.png +0 -0
- reports/template.html +0 -0
reports/Cambridge_Response_Summary.html
ADDED
The diff for this file is too large to render.
See raw diff
|
|
reports/Cambridge_Response_Summary.pdf
CHANGED
Binary files a/reports/Cambridge_Response_Summary.pdf and b/reports/Cambridge_Response_Summary.pdf differ
|
|
reports/Cambridge_Response_Summary.qmd
CHANGED
The diff for this file is too large to render.
See raw diff
|
|
reports/DOCS/DOCS.html
ADDED
The diff for this file is too large to render.
See raw diff
|
|
reports/DOCS/DOCS.pdf
ADDED
Binary file (140 kB). View file
|
|
reports/DOCS/DOCS.qmd
ADDED
@@ -0,0 +1,101 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
title: 'Summarisation of Planning Responses with LLMs'
|
3 |
+
format:
|
4 |
+
PrettyPDF-pdf:
|
5 |
+
papersize: A4
|
6 |
+
lumo-html:
|
7 |
+
logo: logo.png
|
8 |
+
github-repo: https://github.com/cjber/planning-ai
|
9 |
+
self-contained: true
|
10 |
+
is-particlejs-enabled: true
|
11 |
+
execute:
|
12 |
+
freeze: auto
|
13 |
+
echo: false
|
14 |
+
monofont: 'JetBrains Mono'
|
15 |
+
monofontoptions:
|
16 |
+
- Scale=0.55
|
17 |
+
---
|
18 |
+
|
19 |
+
## Introduction
|
20 |
+
|
21 |
+
* Saves time; takes minutes rather than hours (or days)
|
22 |
+
* Reduces bias?
|
23 |
+
* All information can be considered equally.
|
24 |
+
* diverse forms of input; letters to brief comments, even handwritten text (gpt-4o).
|
25 |
+
* generate easy to understand summaries, removing any domain specific terminology. increased transparency etc.
|
26 |
+
|
27 |
+
* ensure the summaries are accurate, may require human oversight? For this we are using hallucination detection which works well.
|
28 |
+
|
29 |
+
## Methodology
|
30 |
+
|
31 |
+
This project primarily considers the use of generative pre-trained transformer (GPT) large-language models (LLMs) for summarising planning responses. While _extractive_ summarisation using encoder-transformer LLMs has been an established task for a number of years (e.g. with Google's BERT), only recently has this task been advanced through the use of larger scale GPT models (e.g. OpenAIs gpt-3/gpt-4 series). One benefit of these new models are their size; they are both _trained_ on more human data, and have a larger number of _model parameters_. Both of these factors mean that such models are able to understand human text and semantic nuances to a greater degree. Additionally, their architectural differences mean that, while BERT-like models excel at extractive summarisation, GPT models are able to generate large amounts of human-like text.
|
32 |
+
|
33 |
+
Given these advances, a number of methods relating to document summarisation have been established in recent years (or months). In this project, we focus on the task of _map-reduce_ summarisation; given a large set of documents, summarise each, then summarise those summaries to produce a final report.
|
34 |
+
|
35 |
+
For our use-case we established the following data-flow;
|
36 |
+
|
37 |
+
```{mermaid}
|
38 |
+
%%{init: {'flowchart': {'curve': 'linear'}}}%%
|
39 |
+
graph TD;
|
40 |
+
__start__([__start__]):::first
|
41 |
+
generate_summary(generate_summary)
|
42 |
+
check_hallucination(check_hallucination)
|
43 |
+
fix_hallucination(fix_hallucination)
|
44 |
+
generate_final_summary(generate_final_summary)
|
45 |
+
__end__([__end__]):::last
|
46 |
+
check_hallucination --> generate_final_summary;
|
47 |
+
generate_final_summary --> __end__;
|
48 |
+
__start__ -.-> generate_summary;
|
49 |
+
generate_summary -.-> check_hallucination;
|
50 |
+
check_hallucination -.-> fix_hallucination;
|
51 |
+
fix_hallucination -.-> check_hallucination;
|
52 |
+
classDef default fill:#f2f0ff,line-height:1.2
|
53 |
+
classDef first fill-opacity:0
|
54 |
+
classDef last fill:#bfb6fc
|
55 |
+
```
|
56 |
+
|
57 |
+
1. Summaries for each response are generated in parallel
|
58 |
+
2. Each summary is check to ensure there are no _hallucinations_ (cyclically)
|
59 |
+
3. Summaries are used to form a final report
|
60 |
+
|
61 |
+
### Hallucination removal
|
62 |
+
|
63 |
+
Hallucination detection and removal is a key part of this process. While summarisation typically accurately reflect the information contained within the documents they are summarising, the model may sometimes inject information that isn't explicitly stated. To avoid these cases we use another LLM _agent_ to read through both the original document and the summarisation, to produce a report highlighting any issues, and give a score that informs a downstream stage whether the summary is accurate.
|
64 |
+
|
65 |
+
In the following example we highlight a case where the original summarisation LLM makes a clear mistake, which is then rectified by a further iteration, information by the hallucination agent. For brevity, the questions have been removed from the response.
|
66 |
+
|
67 |
+
**Document**:
|
68 |
+
|
69 |
+
_None. The wastewater treatment plant has recently been upgraded and deemed fit for purpose for a significant
|
70 |
+
number of years going forward. The carbon and financial cost of relocating this site is huge - if housing is needed then the housing should be situated in the proposed site for the relocated treatment plant, the new
|
71 |
+
homeowners would certainly enjoy their life in the greenbelt, those living nearby would be grateful and £227 million pounds and many tonnes of carbon saved._
|
72 |
+
|
73 |
+
_Vast open spaces should be employed. Community centers are important, including support for children and mental health. National chains should be banned from owning shops or property in the area._
|
74 |
+
|
75 |
+
_Cambourne should remain isolated and become self sufficient. If anything, more cycle only routes should be set up._
|
76 |
+
|
77 |
+
_None. These villages should remain as they are._
|
78 |
+
|
79 |
+
_Grantchester._
|
80 |
+
|
81 |
+
_Road bypasses._
|
82 |
+
|
83 |
+
_Barton and Newnham_
|
84 |
+
|
85 |
+
_Underdeveloped and preserved_
|
86 |
+
|
87 |
+
**Summarisation Attempt**:
|
88 |
+
|
89 |
+
The response indicates that the area east of Milton Road can be developed into a lively city district after the wastewater treatment plant relocates, emphasizing the high costs of relocation. It advocates for vast open spaces and community centers around the Cambridge Biomedical Campus, while suggesting that Cambourne should remain isolated and self-sufficient. The response opposes development in the southern rural cluster of villages, supports limited development in Grantchester, and proposes road bypasses. Additionally, it identifies Barton and Newnham as potential sites for development. The overall vision for Greater Cambridge in 2041 includes a focus on preservation and limited development.
|
90 |
+
|
91 |
+
**Hallucination agent response**
|
92 |
+
|
93 |
+
The Assistant's Summary contains several inaccuracies and misinterpretations of the source document. Firstly, it states that the response opposes development east of Milton Road due to the recent upgrade of the wastewater treatment plant, which is misleading. The source document suggests that the area can be developed after the plant relocates, indicating a potential for development rather than outright opposition. Secondly, the summary claims that the vision for Greater Cambridge in 2041 is to remain underdeveloped and preserved, which is a misrepresentation of the nuanced views expressed in the source document. The source document does advocate for some development in specific areas, such as Grantchester and the Cambridge Biomedical Campus, while also emphasizing the importance of open spaces and community centers. Therefore, the summary does not fully align with the source document and contains hallucinations.
|
94 |
+
|
95 |
+
**Score**: FAIL
|
96 |
+
|
97 |
+
**Final**:
|
98 |
+
|
99 |
+
The response opposes the development of the area east of Milton Road, arguing that the wastewater treatment plant is fit for purpose and should not be relocated due to high costs. It supports the development of the Cambridge Biomedical Campus with a focus on vast open spaces and community centers. Cambourne should remain isolated and self-sufficient, with an emphasis on cycle routes. The response opposes development in the southern rural cluster of villages, supports limited development in Grantchester, and suggests that road bypasses are needed. It identifies Barton and Newnham as potential sites for development. The overall vision for Greater Cambridge in 2041 emphasizes preservation and limited development.
|
100 |
+
|
101 |
+
|
reports/DOCS/DOCS_files/figure-latex/mermaid-figure-1.png
ADDED
![]() |
reports/DOCS/_extensions/holtzy/lumo/.DS_Store
ADDED
Binary file (6.15 kB). View file
|
|
reports/DOCS/_extensions/holtzy/lumo/_extension.yml
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
title: Lumo
|
2 |
+
author: Holtz Yan
|
3 |
+
version: 1.0.0
|
4 |
+
quarto-required: ">=1.4.0"
|
5 |
+
contributes:
|
6 |
+
formats:
|
7 |
+
html:
|
8 |
+
toc: true
|
9 |
+
code-fold: true
|
10 |
+
code-summary: "Code"
|
11 |
+
toc-location: left
|
12 |
+
toc-title: " "
|
13 |
+
theme: [custom.scss]
|
14 |
+
include-after-body: "footer.html"
|
15 |
+
template-partials:
|
16 |
+
- title-block.html
|
17 |
+
css: style.css
|
18 |
+
smooth-scroll: true
|
19 |
+
code-annotations: hover
|
20 |
+
title-block-banner: true
|
reports/DOCS/_extensions/holtzy/lumo/footer.html
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="footer-container">
|
2 |
+
<hr />
|
3 |
+
<p
|
4 |
+
style="text-align: center; opacity: 0.5; font-size: 15px; max-width: 300px"
|
5 |
+
>
|
6 |
+
This document was made using <code>lumo</code>, a quarto template by
|
7 |
+
<a href="https://www.yan-holtz.com">Yan Holtz</a>.
|
8 |
+
</p>
|
9 |
+
</div>
|
reports/DOCS/_extensions/holtzy/lumo/particles.json
ADDED
@@ -0,0 +1,116 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"particles": {
|
3 |
+
"number": {
|
4 |
+
"value": 80,
|
5 |
+
"density": {
|
6 |
+
"enable": true,
|
7 |
+
"value_area": 800
|
8 |
+
}
|
9 |
+
},
|
10 |
+
"color": {
|
11 |
+
"value": "#888888"
|
12 |
+
},
|
13 |
+
"shape": {
|
14 |
+
"type": "circle",
|
15 |
+
"stroke": {
|
16 |
+
"width": 0,
|
17 |
+
"color": "#000000"
|
18 |
+
},
|
19 |
+
"polygon": {
|
20 |
+
"nb_sides": 5
|
21 |
+
},
|
22 |
+
"image": {
|
23 |
+
"src": "img/github.svg",
|
24 |
+
"width": 100,
|
25 |
+
"height": 100
|
26 |
+
}
|
27 |
+
},
|
28 |
+
"opacity": {
|
29 |
+
"value": 0.5,
|
30 |
+
"random": false,
|
31 |
+
"anim": {
|
32 |
+
"enable": false,
|
33 |
+
"speed": 1,
|
34 |
+
"opacity_min": 0.1,
|
35 |
+
"sync": false
|
36 |
+
}
|
37 |
+
},
|
38 |
+
"size": {
|
39 |
+
"value": 5,
|
40 |
+
"random": true,
|
41 |
+
"anim": {
|
42 |
+
"enable": false,
|
43 |
+
"speed": 40,
|
44 |
+
"size_min": 0.1,
|
45 |
+
"sync": false
|
46 |
+
}
|
47 |
+
},
|
48 |
+
"line_linked": {
|
49 |
+
"enable": true,
|
50 |
+
"distance": 150,
|
51 |
+
"color": "#888888",
|
52 |
+
"opacity": 0.4,
|
53 |
+
"width": 1
|
54 |
+
},
|
55 |
+
"move": {
|
56 |
+
"enable": true,
|
57 |
+
"speed": 3,
|
58 |
+
"direction": "none",
|
59 |
+
"random": false,
|
60 |
+
"straight": false,
|
61 |
+
"out_mode": "out",
|
62 |
+
"attract": {
|
63 |
+
"enable": false,
|
64 |
+
"rotateX": 600,
|
65 |
+
"rotateY": 1200
|
66 |
+
}
|
67 |
+
}
|
68 |
+
},
|
69 |
+
"interactivity": {
|
70 |
+
"detect_on": "canvas",
|
71 |
+
"events": {
|
72 |
+
"onhover": {
|
73 |
+
"enable": true,
|
74 |
+
"mode": "repulse"
|
75 |
+
},
|
76 |
+
"onclick": {
|
77 |
+
"enable": true,
|
78 |
+
"mode": "push"
|
79 |
+
},
|
80 |
+
"resize": true
|
81 |
+
},
|
82 |
+
"modes": {
|
83 |
+
"grab": {
|
84 |
+
"distance": 400,
|
85 |
+
"line_linked": {
|
86 |
+
"opacity": 1
|
87 |
+
}
|
88 |
+
},
|
89 |
+
"bubble": {
|
90 |
+
"distance": 400,
|
91 |
+
"size": 40,
|
92 |
+
"duration": 2,
|
93 |
+
"opacity": 8,
|
94 |
+
"speed": 3
|
95 |
+
},
|
96 |
+
"repulse": {
|
97 |
+
"distance": 200
|
98 |
+
},
|
99 |
+
"push": {
|
100 |
+
"particles_nb": 4
|
101 |
+
},
|
102 |
+
"remove": {
|
103 |
+
"particles_nb": 2
|
104 |
+
}
|
105 |
+
}
|
106 |
+
},
|
107 |
+
"retina_detect": true,
|
108 |
+
"config_demo": {
|
109 |
+
"hide_card": false,
|
110 |
+
"background_color": "#b61924",
|
111 |
+
"background_image": "",
|
112 |
+
"background_position": "50% 50%",
|
113 |
+
"background_repeat": "no-repeat",
|
114 |
+
"background_size": "cover"
|
115 |
+
}
|
116 |
+
}
|
reports/DOCS/_extensions/holtzy/lumo/style.css
ADDED
@@ -0,0 +1,158 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
body {
|
2 |
+
font-family: "Inter", sans-serif;
|
3 |
+
font-style: normal;
|
4 |
+
font-size: 16px;
|
5 |
+
}
|
6 |
+
|
7 |
+
/* ------------------------------------------- Titles ----------------- */
|
8 |
+
h1 {
|
9 |
+
margin-block-start: 20px;
|
10 |
+
font-size: 2.25rem;
|
11 |
+
font-weight: 800;
|
12 |
+
letter-spacing: -0.02em;
|
13 |
+
}
|
14 |
+
@media (min-width: 1024px) {
|
15 |
+
h1 {
|
16 |
+
font-size: 3rem;
|
17 |
+
}
|
18 |
+
}
|
19 |
+
h2 {
|
20 |
+
margin-top: 190px !important;
|
21 |
+
margin-block-start: 20px;
|
22 |
+
border-bottom: 0.1px solid rgb(232, 232, 232);
|
23 |
+
padding-bottom: 0.5rem;
|
24 |
+
font-size: 1.875rem;
|
25 |
+
font-weight: 600;
|
26 |
+
letter-spacing: -0.02em;
|
27 |
+
transition: color 0.2s ease;
|
28 |
+
}
|
29 |
+
h2:first-of-type {
|
30 |
+
margin-top: 0;
|
31 |
+
}
|
32 |
+
h3 {
|
33 |
+
margin-top: 2rem;
|
34 |
+
margin-block-start: 20px;
|
35 |
+
font-size: 1.5rem;
|
36 |
+
font-weight: 600;
|
37 |
+
letter-spacing: -0.02em;
|
38 |
+
}
|
39 |
+
|
40 |
+
/* ------------------------------------------- Text ----------------- */
|
41 |
+
p {
|
42 |
+
line-height: 28px;
|
43 |
+
}
|
44 |
+
p:not(:first-child) {
|
45 |
+
margin-top: 12px;
|
46 |
+
}
|
47 |
+
a {
|
48 |
+
font-weight: 500;
|
49 |
+
color: var(--primary-color);
|
50 |
+
text-decoration: underline;
|
51 |
+
text-underline-offset: 0.25rem;
|
52 |
+
}
|
53 |
+
|
54 |
+
/* ------------------------------------------- Lists ----------------- */
|
55 |
+
ul {
|
56 |
+
margin: 1.5rem 0;
|
57 |
+
margin-left: 1.5rem;
|
58 |
+
list-style-type: disc;
|
59 |
+
}
|
60 |
+
ul > li {
|
61 |
+
margin-top: 0.5rem;
|
62 |
+
}
|
63 |
+
|
64 |
+
/* ------------------------------------------- Buttons used for tabs ----------------- */
|
65 |
+
.nav-pills .nav-link {
|
66 |
+
color: var(--primary-color);
|
67 |
+
background-color: white;
|
68 |
+
border-color: var(--primary-color);
|
69 |
+
border-radius: 4px;
|
70 |
+
}
|
71 |
+
.nav-pills .nav-link.active {
|
72 |
+
color: white;
|
73 |
+
background-color: var(--primary-color);
|
74 |
+
}
|
75 |
+
.nav-pills .nav-link {
|
76 |
+
padding: 5px;
|
77 |
+
margin-right: 4px;
|
78 |
+
}
|
79 |
+
ul.nav.nav-tabs {
|
80 |
+
margin: 0px;
|
81 |
+
border: none;
|
82 |
+
}
|
83 |
+
.tab-content {
|
84 |
+
border: none;
|
85 |
+
margin-top: 10px;
|
86 |
+
padding: 0px;
|
87 |
+
}
|
88 |
+
|
89 |
+
/* ------------------------------------------- Table of content ----------------- */
|
90 |
+
.sidebar nav[role="doc-toc"] ul > li > a.active,
|
91 |
+
.sidebar nav[role="doc-toc"] ul > li > ul > li > a.active {
|
92 |
+
border-left: 1px solid var(--primary-color);
|
93 |
+
color: var(--primary-color) !important;
|
94 |
+
}
|
95 |
+
#TOC {
|
96 |
+
top: 50%;
|
97 |
+
position: relative;
|
98 |
+
transform: translate(0, -50%);
|
99 |
+
}
|
100 |
+
|
101 |
+
/* ------------------------------------------- Horizontal separator ----------------- */
|
102 |
+
hr {
|
103 |
+
margin-top: 23px;
|
104 |
+
margin-bottom: 23px;
|
105 |
+
border: 0;
|
106 |
+
border-top: 1px solid black;
|
107 |
+
width: 0;
|
108 |
+
animation: separator-width 2s ease-in-out forwards;
|
109 |
+
}
|
110 |
+
@keyframes separator-width {
|
111 |
+
0% {
|
112 |
+
width: 0;
|
113 |
+
}
|
114 |
+
100% {
|
115 |
+
width: 200px;
|
116 |
+
}
|
117 |
+
}
|
118 |
+
|
119 |
+
/* ------------------------------------------- Footer ----------------- */
|
120 |
+
.footer-container {
|
121 |
+
display: flex;
|
122 |
+
flex-direction: column;
|
123 |
+
justify-content: center;
|
124 |
+
align-items: center;
|
125 |
+
padding-top: 40px;
|
126 |
+
padding-bottom: 40px;
|
127 |
+
}
|
128 |
+
|
129 |
+
/* ------------------------------------------- DT table: smaller font ----------------- */
|
130 |
+
table.dataTable tbody th,
|
131 |
+
table.dataTable tbody td {
|
132 |
+
padding: 6px 10px;
|
133 |
+
font-size: 12px;
|
134 |
+
}
|
135 |
+
|
136 |
+
/* ------------------------------------------- Callout ----------------- */
|
137 |
+
div.callout.callout {
|
138 |
+
border: none;
|
139 |
+
padding: 0.4em 0.7em;
|
140 |
+
border-left: var(--primary-color) 4px solid;
|
141 |
+
background-color: color-mix(in srgb, var(--primary-color), transparent 95%);
|
142 |
+
border-radius: 0px;
|
143 |
+
}
|
144 |
+
|
145 |
+
button {
|
146 |
+
color: var(--primary-color);
|
147 |
+
background-color: white;
|
148 |
+
border: var(--primary-color) 1px solid;
|
149 |
+
border-radius: 1px;
|
150 |
+
}
|
151 |
+
|
152 |
+
.grey-section {
|
153 |
+
background-color: #f8f9fa;
|
154 |
+
padding-top: 40px;
|
155 |
+
padding-bottom: 40px;
|
156 |
+
margin-top: 20px;
|
157 |
+
margin-bottom: 20px;
|
158 |
+
}
|
reports/DOCS/_extensions/holtzy/lumo/title-block.html
ADDED
@@ -0,0 +1,160 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<style>
|
2 |
+
:root {
|
3 |
+
--primary-color: $primary-color$;
|
4 |
+
}
|
5 |
+
.title-block-content {
|
6 |
+
position: relative;
|
7 |
+
padding-top: 130px;
|
8 |
+
padding-bottom: 130px;
|
9 |
+
max-width: 752px;
|
10 |
+
margin: auto;
|
11 |
+
}
|
12 |
+
.header-keyword {
|
13 |
+
color: rgb(59, 59, 59);
|
14 |
+
opacity: 0.5;
|
15 |
+
font-size: 14;
|
16 |
+
}
|
17 |
+
.octocat-container {
|
18 |
+
fill: var(--primary-color);
|
19 |
+
color: #fff;
|
20 |
+
position: absolute;
|
21 |
+
top: 0;
|
22 |
+
border: 0;
|
23 |
+
right: 0;
|
24 |
+
}
|
25 |
+
#particles-js {
|
26 |
+
position: absolute;
|
27 |
+
top: 0px;
|
28 |
+
left: 0px;
|
29 |
+
width: 100%;
|
30 |
+
height: 100%;
|
31 |
+
}
|
32 |
+
</style>
|
33 |
+
|
34 |
+
<header id="title-block-header" style="position: relative">
|
35 |
+
<link
|
36 |
+
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap"
|
37 |
+
rel="stylesheet"
|
38 |
+
/>
|
39 |
+
|
40 |
+
<!-- This is the div in which the particles will be included -->
|
41 |
+
$if(is-particlejs-enabled)$
|
42 |
+
<div id="particles-js"></div>
|
43 |
+
$endif$
|
44 |
+
|
45 |
+
<!-- Actual content on top of the particles-->
|
46 |
+
<div class="title-block-content">
|
47 |
+
<!-- Logo -->
|
48 |
+
$if(logo)$
|
49 |
+
<img
|
50 |
+
src="$logo$"
|
51 |
+
alt="logo of company"
|
52 |
+
height="80px"
|
53 |
+
style="margin-bottom: 20px"
|
54 |
+
/>
|
55 |
+
$endif$
|
56 |
+
|
57 |
+
<!-- Title -->
|
58 |
+
$if(title)$
|
59 |
+
<h1 class="title">$title$</h1>
|
60 |
+
$endif$
|
61 |
+
|
62 |
+
<hr />
|
63 |
+
|
64 |
+
<!-- Subtitle -->
|
65 |
+
$if(subtitle)$
|
66 |
+
<p class="subtitle">$subtitle$</p>
|
67 |
+
$endif$
|
68 |
+
|
69 |
+
<!-- Author -->
|
70 |
+
$for(author)$
|
71 |
+
<p class="author"><span class="header-keyword">Author: </span>$author$</p>
|
72 |
+
$endfor$
|
73 |
+
|
74 |
+
<!-- Date -->
|
75 |
+
$if(date)$
|
76 |
+
<p style="margin-top: 0px">
|
77 |
+
<span class="header-keyword">Date: </span>$date$
|
78 |
+
</p>
|
79 |
+
$endif$
|
80 |
+
|
81 |
+
<!-- Particle.js script loaded from a CDN -->
|
82 |
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/particles.js/2.0.0/particles.min.js"></script>
|
83 |
+
|
84 |
+
<!-- use the particle js library with our own config (json file). -->
|
85 |
+
<script>
|
86 |
+
particlesJS.load(
|
87 |
+
"particles-js",
|
88 |
+
"https://raw.githubusercontent.com/holtzy/lumo/main/_extensions/lumo/particles.json"
|
89 |
+
);
|
90 |
+
</script>
|
91 |
+
</div>
|
92 |
+
</header>
|
93 |
+
|
94 |
+
<!------------------------- Code for the octocat (github Mascot) that will be included if a link to the github repo is provided. ------------------->
|
95 |
+
$if(github-repo)$
|
96 |
+
<a
|
97 |
+
href="$github-repo$"
|
98 |
+
class="github-corner"
|
99 |
+
aria-label="View source on GitHub"
|
100 |
+
>
|
101 |
+
<svg
|
102 |
+
width="80"
|
103 |
+
height="80"
|
104 |
+
viewBox="0 0 250 250"
|
105 |
+
class="octocat-container"
|
106 |
+
aria-hidden="true"
|
107 |
+
>
|
108 |
+
<path
|
109 |
+
d="M0,0 L115,115 L130,115
|
110 |
+
L142,142 L250,250 L250,0 Z"
|
111 |
+
></path>
|
112 |
+
<path
|
113 |
+
d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6
|
114 |
+
C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3
|
115 |
+
125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2"
|
116 |
+
fill="currentColor"
|
117 |
+
style="transform-origin: 130px 106px"
|
118 |
+
class="octo-arm"
|
119 |
+
></path>
|
120 |
+
<path
|
121 |
+
d="M115.0,115.0 C114.9,115.1 118.7,116.5
|
122 |
+
119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0
|
123 |
+
C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5
|
124 |
+
178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2
|
125 |
+
216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5
|
126 |
+
C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5
|
127 |
+
C139.8,137.7 141.6,141.9 141.8,141.8 Z"
|
128 |
+
fill="currentColor"
|
129 |
+
class="octo-body"
|
130 |
+
></path>
|
131 |
+
</svg>
|
132 |
+
</a>
|
133 |
+
<style>
|
134 |
+
.github-corner:hover .octo-arm {
|
135 |
+
animation: octocat-wave 560ms ease-in-out;
|
136 |
+
}
|
137 |
+
@keyframes octocat-wave {
|
138 |
+
0%,
|
139 |
+
100% {
|
140 |
+
transform: rotate(0);
|
141 |
+
}
|
142 |
+
20%,
|
143 |
+
60% {
|
144 |
+
transform: rotate(-25deg);
|
145 |
+
}
|
146 |
+
40%,
|
147 |
+
80% {
|
148 |
+
transform: rotate(10deg);
|
149 |
+
}
|
150 |
+
}
|
151 |
+
@media (max-width: 500px) {
|
152 |
+
.github-corner:hover .octo-arm {
|
153 |
+
animation: none;
|
154 |
+
}
|
155 |
+
.github-corner .octo-arm {
|
156 |
+
animation: octocat-wave 560ms ease-in-out;
|
157 |
+
}
|
158 |
+
}
|
159 |
+
</style>
|
160 |
+
$endif$
|
reports/DOCS/_extensions/nrennie/PrettyPDF/PrettyPDF.lua
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
function Div(el)
|
2 |
+
if el.classes:includes('article') then
|
3 |
+
local blocks = pandoc.List({
|
4 |
+
pandoc.RawBlock('typst', '#article[')
|
5 |
+
})
|
6 |
+
blocks:extend(el.content)
|
7 |
+
blocks:insert(pandoc.RawBlock('typst', ']\n'))
|
8 |
+
return blocks
|
9 |
+
end
|
10 |
+
end
|
reports/DOCS/_extensions/nrennie/PrettyPDF/PrettyPDF.tex
ADDED
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
% load packages
|
2 |
+
\usepackage{geometry}
|
3 |
+
\usepackage{xcolor}
|
4 |
+
\usepackage{eso-pic}
|
5 |
+
\usepackage{fancyhdr}
|
6 |
+
\usepackage{sectsty}
|
7 |
+
\usepackage{fontspec}
|
8 |
+
\usepackage{titlesec}
|
9 |
+
|
10 |
+
%% Set page size with a wider right margin
|
11 |
+
\geometry{a4paper, total={170mm,257mm}, left=20mm, top=20mm, bottom=20mm, right=50mm}
|
12 |
+
|
13 |
+
%% Let's define some colours
|
14 |
+
\definecolor{light}{HTML}{E6E6FA}
|
15 |
+
\definecolor{highlight}{HTML}{800080}
|
16 |
+
\definecolor{dark}{HTML}{330033}
|
17 |
+
|
18 |
+
%% Let's add the border on the right hand side
|
19 |
+
\AddToShipoutPicture{%
|
20 |
+
\AtPageLowerLeft{%
|
21 |
+
\put(\LenToUnit{\dimexpr\paperwidth-3cm},0){%
|
22 |
+
\color{light}\rule{3cm}{\LenToUnit\paperheight}%
|
23 |
+
}%
|
24 |
+
}%
|
25 |
+
% logo
|
26 |
+
\AtPageLowerLeft{% start the bar at the bottom right of the page
|
27 |
+
\put(\LenToUnit{\dimexpr\paperwidth-2.75cm},27.2cm){% move it to the top right
|
28 |
+
\color{light}\includegraphics[width=2.5cm]{_extensions/nrennie/PrettyPDF/logo.png}
|
29 |
+
}%
|
30 |
+
}%
|
31 |
+
}
|
32 |
+
|
33 |
+
%% Style the page number
|
34 |
+
\fancypagestyle{mystyle}{
|
35 |
+
\fancyhf{}
|
36 |
+
\renewcommand\headrulewidth{0pt}
|
37 |
+
\fancyfoot[R]{\thepage}
|
38 |
+
\fancyfootoffset{3.5cm}
|
39 |
+
}
|
40 |
+
\setlength{\footskip}{20pt}
|
41 |
+
|
42 |
+
%% style the chapter/section fonts
|
43 |
+
\chapterfont{\color{dark}\fontsize{20}{16.8}\selectfont}
|
44 |
+
\sectionfont{\color{dark}\fontsize{20}{16.8}\selectfont}
|
45 |
+
\subsectionfont{\color{dark}\fontsize{14}{16.8}\selectfont}
|
46 |
+
\titleformat{\subsection}
|
47 |
+
{\sffamily\Large\bfseries}{\thesection}{1em}{}[{\titlerule[0.8pt]}]
|
48 |
+
|
49 |
+
% left align title
|
50 |
+
\makeatletter
|
51 |
+
\renewcommand{\maketitle}{\bgroup\setlength{\parindent}{0pt}
|
52 |
+
\begin{flushleft}
|
53 |
+
{\sffamily\huge\textbf{\MakeUppercase{\@title}}} \vspace{0.3cm} \newline
|
54 |
+
{\Large {\@subtitle}} \newline
|
55 |
+
\@author
|
56 |
+
\end{flushleft}\egroup
|
57 |
+
}
|
58 |
+
\makeatother
|
59 |
+
|
60 |
+
%% Use some custom fonts
|
61 |
+
\setsansfont{Ubuntu}[
|
62 |
+
Path=_extensions/nrennie/PrettyPDF/Ubuntu/,
|
63 |
+
Scale=0.9,
|
64 |
+
Extension = .ttf,
|
65 |
+
UprightFont=*-Regular,
|
66 |
+
BoldFont=*-Bold,
|
67 |
+
ItalicFont=*-Italic,
|
68 |
+
]
|
69 |
+
|
70 |
+
\setmainfont{Ubuntu}[
|
71 |
+
Path=_extensions/nrennie/PrettyPDF/Ubuntu/,
|
72 |
+
Scale=0.9,
|
73 |
+
Extension = .ttf,
|
74 |
+
UprightFont=*-Regular,
|
75 |
+
BoldFont=*-Bold,
|
76 |
+
ItalicFont=*-Italic,
|
77 |
+
]
|
reports/DOCS/_extensions/nrennie/PrettyPDF/Ubuntu/UFL.txt
ADDED
@@ -0,0 +1,96 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
-------------------------------
|
2 |
+
UBUNTU FONT LICENCE Version 1.0
|
3 |
+
-------------------------------
|
4 |
+
|
5 |
+
PREAMBLE
|
6 |
+
This licence allows the licensed fonts to be used, studied, modified and
|
7 |
+
redistributed freely. The fonts, including any derivative works, can be
|
8 |
+
bundled, embedded, and redistributed provided the terms of this licence
|
9 |
+
are met. The fonts and derivatives, however, cannot be released under
|
10 |
+
any other licence. The requirement for fonts to remain under this
|
11 |
+
licence does not require any document created using the fonts or their
|
12 |
+
derivatives to be published under this licence, as long as the primary
|
13 |
+
purpose of the document is not to be a vehicle for the distribution of
|
14 |
+
the fonts.
|
15 |
+
|
16 |
+
DEFINITIONS
|
17 |
+
"Font Software" refers to the set of files released by the Copyright
|
18 |
+
Holder(s) under this licence and clearly marked as such. This may
|
19 |
+
include source files, build scripts and documentation.
|
20 |
+
|
21 |
+
"Original Version" refers to the collection of Font Software components
|
22 |
+
as received under this licence.
|
23 |
+
|
24 |
+
"Modified Version" refers to any derivative made by adding to, deleting,
|
25 |
+
or substituting -- in part or in whole -- any of the components of the
|
26 |
+
Original Version, by changing formats or by porting the Font Software to
|
27 |
+
a new environment.
|
28 |
+
|
29 |
+
"Copyright Holder(s)" refers to all individuals and companies who have a
|
30 |
+
copyright ownership of the Font Software.
|
31 |
+
|
32 |
+
"Substantially Changed" refers to Modified Versions which can be easily
|
33 |
+
identified as dissimilar to the Font Software by users of the Font
|
34 |
+
Software comparing the Original Version with the Modified Version.
|
35 |
+
|
36 |
+
To "Propagate" a work means to do anything with it that, without
|
37 |
+
permission, would make you directly or secondarily liable for
|
38 |
+
infringement under applicable copyright law, except executing it on a
|
39 |
+
computer or modifying a private copy. Propagation includes copying,
|
40 |
+
distribution (with or without modification and with or without charging
|
41 |
+
a redistribution fee), making available to the public, and in some
|
42 |
+
countries other activities as well.
|
43 |
+
|
44 |
+
PERMISSION & CONDITIONS
|
45 |
+
This licence does not grant any rights under trademark law and all such
|
46 |
+
rights are reserved.
|
47 |
+
|
48 |
+
Permission is hereby granted, free of charge, to any person obtaining a
|
49 |
+
copy of the Font Software, to propagate the Font Software, subject to
|
50 |
+
the below conditions:
|
51 |
+
|
52 |
+
1) Each copy of the Font Software must contain the above copyright
|
53 |
+
notice and this licence. These can be included either as stand-alone
|
54 |
+
text files, human-readable headers or in the appropriate machine-
|
55 |
+
readable metadata fields within text or binary files as long as those
|
56 |
+
fields can be easily viewed by the user.
|
57 |
+
|
58 |
+
2) The font name complies with the following:
|
59 |
+
(a) The Original Version must retain its name, unmodified.
|
60 |
+
(b) Modified Versions which are Substantially Changed must be renamed to
|
61 |
+
avoid use of the name of the Original Version or similar names entirely.
|
62 |
+
(c) Modified Versions which are not Substantially Changed must be
|
63 |
+
renamed to both (i) retain the name of the Original Version and (ii) add
|
64 |
+
additional naming elements to distinguish the Modified Version from the
|
65 |
+
Original Version. The name of such Modified Versions must be the name of
|
66 |
+
the Original Version, with "derivative X" where X represents the name of
|
67 |
+
the new work, appended to that name.
|
68 |
+
|
69 |
+
3) The name(s) of the Copyright Holder(s) and any contributor to the
|
70 |
+
Font Software shall not be used to promote, endorse or advertise any
|
71 |
+
Modified Version, except (i) as required by this licence, (ii) to
|
72 |
+
acknowledge the contribution(s) of the Copyright Holder(s) or (iii) with
|
73 |
+
their explicit written permission.
|
74 |
+
|
75 |
+
4) The Font Software, modified or unmodified, in part or in whole, must
|
76 |
+
be distributed entirely under this licence, and must not be distributed
|
77 |
+
under any other licence. The requirement for fonts to remain under this
|
78 |
+
licence does not affect any document created using the Font Software,
|
79 |
+
except any version of the Font Software extracted from a document
|
80 |
+
created using the Font Software may only be distributed under this
|
81 |
+
licence.
|
82 |
+
|
83 |
+
TERMINATION
|
84 |
+
This licence becomes null and void if any of the above conditions are
|
85 |
+
not met.
|
86 |
+
|
87 |
+
DISCLAIMER
|
88 |
+
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
89 |
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
90 |
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
|
91 |
+
COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
92 |
+
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
93 |
+
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
94 |
+
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
95 |
+
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER
|
96 |
+
DEALINGS IN THE FONT SOFTWARE.
|
reports/DOCS/_extensions/nrennie/PrettyPDF/Ubuntu/Ubuntu-Bold.ttf
ADDED
Binary file (270 kB). View file
|
|
reports/DOCS/_extensions/nrennie/PrettyPDF/Ubuntu/Ubuntu-BoldItalic.ttf
ADDED
Binary file (283 kB). View file
|
|
reports/DOCS/_extensions/nrennie/PrettyPDF/Ubuntu/Ubuntu-Italic.ttf
ADDED
Binary file (327 kB). View file
|
|
reports/DOCS/_extensions/nrennie/PrettyPDF/Ubuntu/Ubuntu-Light.ttf
ADDED
Binary file (363 kB). View file
|
|
reports/DOCS/_extensions/nrennie/PrettyPDF/Ubuntu/Ubuntu-LightItalic.ttf
ADDED
Binary file (350 kB). View file
|
|
reports/DOCS/_extensions/nrennie/PrettyPDF/Ubuntu/Ubuntu-Medium.ttf
ADDED
Binary file (285 kB). View file
|
|
reports/DOCS/_extensions/nrennie/PrettyPDF/Ubuntu/Ubuntu-MediumItalic.ttf
ADDED
Binary file (310 kB). View file
|
|
reports/DOCS/_extensions/nrennie/PrettyPDF/Ubuntu/Ubuntu-Regular.ttf
ADDED
Binary file (300 kB). View file
|
|
reports/DOCS/_extensions/nrennie/PrettyPDF/_extension.yml
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
title: PrettyPDF
|
2 |
+
author: Nicola Rennie
|
3 |
+
version: 0.0.3
|
4 |
+
contributes:
|
5 |
+
project:
|
6 |
+
project:
|
7 |
+
type: book
|
8 |
+
formats:
|
9 |
+
pdf:
|
10 |
+
include-in-header:
|
11 |
+
- "PrettyPDF.tex"
|
12 |
+
include-before-body:
|
13 |
+
- "pagestyle.tex"
|
14 |
+
toc: false
|
15 |
+
code-block-bg: light
|
16 |
+
linkcolor: highlight
|
17 |
+
urlcolor: highlight
|
18 |
+
typst:
|
19 |
+
papersize: a4
|
20 |
+
margin:
|
21 |
+
x: 2cm
|
22 |
+
y: 2cm
|
23 |
+
font-paths: Ubuntu
|
24 |
+
typst-logo:
|
25 |
+
path: "logo.png"
|
26 |
+
template-partials:
|
27 |
+
- typst-template.typ
|
28 |
+
- typst-show.typ
|
29 |
+
filters:
|
30 |
+
- PrettyPDF.lua
|
reports/DOCS/_extensions/nrennie/PrettyPDF/pagestyle.tex
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
\pagestyle{mystyle}
|
reports/DOCS/_extensions/nrennie/PrettyPDF/typst-show.typ
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#show: PrettyPDF.with(
|
2 |
+
$if(title)$
|
3 |
+
title: "$title$",
|
4 |
+
$endif$
|
5 |
+
$if(subtitle)$
|
6 |
+
title: "$subtitle$",
|
7 |
+
$endif$
|
8 |
+
$if(typst-logo)$
|
9 |
+
typst-logo: (
|
10 |
+
path: "$typst-logo.path$",
|
11 |
+
caption: [$typst-logo.caption$]
|
12 |
+
),
|
13 |
+
$endif$
|
14 |
+
)
|
15 |
+
|
reports/DOCS/_extensions/nrennie/PrettyPDF/typst-template.typ
ADDED
@@ -0,0 +1,90 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
#let PrettyPDF(
|
3 |
+
// The document title.
|
4 |
+
title: "PrettyPDF",
|
5 |
+
|
6 |
+
// Logo in top right corner.
|
7 |
+
typst-logo: none,
|
8 |
+
|
9 |
+
// The document content.
|
10 |
+
body
|
11 |
+
) = {
|
12 |
+
|
13 |
+
// Set document metadata.
|
14 |
+
set document(title: title)
|
15 |
+
|
16 |
+
// Configure pages.
|
17 |
+
set page(
|
18 |
+
margin: (left: 2cm, right: 1.5cm, top: 2cm, bottom: 2cm),
|
19 |
+
numbering: "1",
|
20 |
+
number-align: right,
|
21 |
+
background: place(right + top, rect(
|
22 |
+
fill: rgb("#E6E6FA"),
|
23 |
+
height: 100%,
|
24 |
+
width: 3cm,
|
25 |
+
))
|
26 |
+
)
|
27 |
+
|
28 |
+
// Set the body font.
|
29 |
+
set text(10pt, font: "Ubuntu")
|
30 |
+
|
31 |
+
// Configure headings.
|
32 |
+
show heading.where(level: 1): set block(below: 0.8em)
|
33 |
+
show heading.where(level: 1): underline
|
34 |
+
show heading.where(level: 2): set block(above: 0.5cm, below: 0.5cm)
|
35 |
+
|
36 |
+
// Links should be purple.
|
37 |
+
show link: set text(rgb("#800080"))
|
38 |
+
|
39 |
+
// Configure light purple border.
|
40 |
+
show figure: it => block({
|
41 |
+
move(dx: -3%, dy: 1.5%, rect(
|
42 |
+
fill: rgb("FF7D79"),
|
43 |
+
inset: 0pt,
|
44 |
+
move(dx: 3%, dy: -1.5%, it.body)
|
45 |
+
))
|
46 |
+
})
|
47 |
+
|
48 |
+
// Purple border column
|
49 |
+
grid(
|
50 |
+
columns: (1fr, 0.75cm),
|
51 |
+
column-gutter: 2.5cm,
|
52 |
+
|
53 |
+
// Title.
|
54 |
+
text(font: "Ubuntu", 20pt, weight: 800, upper(title)),
|
55 |
+
|
56 |
+
// The logo in the sidebar.
|
57 |
+
locate(loc => {
|
58 |
+
set align(right)
|
59 |
+
|
60 |
+
// Logo.
|
61 |
+
style(styles => {
|
62 |
+
if typst-logo == none {
|
63 |
+
return
|
64 |
+
}
|
65 |
+
|
66 |
+
let img = image(typst-logo.path, width: 1.5cm)
|
67 |
+
let img-size = measure(img, styles)
|
68 |
+
|
69 |
+
grid(
|
70 |
+
columns: (img-size.width, 1cm),
|
71 |
+
column-gutter: 16pt,
|
72 |
+
rows: img-size.height,
|
73 |
+
img,
|
74 |
+
)
|
75 |
+
})
|
76 |
+
|
77 |
+
}),
|
78 |
+
|
79 |
+
// The main body text.
|
80 |
+
{
|
81 |
+
set par(justify: true)
|
82 |
+
body
|
83 |
+
v(1fr)
|
84 |
+
},
|
85 |
+
|
86 |
+
|
87 |
+
)
|
88 |
+
}
|
89 |
+
|
90 |
+
|
reports/_extensions/holtzy/lumo/.DS_Store
ADDED
Binary file (6.15 kB). View file
|
|
reports/_extensions/holtzy/lumo/_extension.yml
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
title: Lumo
|
2 |
+
author: Holtz Yan
|
3 |
+
version: 1.0.0
|
4 |
+
quarto-required: ">=1.4.0"
|
5 |
+
contributes:
|
6 |
+
formats:
|
7 |
+
html:
|
8 |
+
toc: true
|
9 |
+
code-fold: true
|
10 |
+
code-summary: "Code"
|
11 |
+
toc-location: left
|
12 |
+
toc-title: " "
|
13 |
+
theme: [custom.scss]
|
14 |
+
include-after-body: "footer.html"
|
15 |
+
template-partials:
|
16 |
+
- title-block.html
|
17 |
+
css: style.css
|
18 |
+
smooth-scroll: true
|
19 |
+
code-annotations: hover
|
20 |
+
title-block-banner: true
|
reports/_extensions/holtzy/lumo/footer.html
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="footer-container">
|
2 |
+
<hr />
|
3 |
+
<p
|
4 |
+
style="text-align: center; opacity: 0.5; font-size: 15px; max-width: 300px"
|
5 |
+
>
|
6 |
+
This document was made using <code>lumo</code>, a quarto template by
|
7 |
+
<a href="https://www.yan-holtz.com">Yan Holtz</a>.
|
8 |
+
</p>
|
9 |
+
</div>
|
reports/_extensions/holtzy/lumo/particles.json
ADDED
@@ -0,0 +1,116 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"particles": {
|
3 |
+
"number": {
|
4 |
+
"value": 80,
|
5 |
+
"density": {
|
6 |
+
"enable": true,
|
7 |
+
"value_area": 800
|
8 |
+
}
|
9 |
+
},
|
10 |
+
"color": {
|
11 |
+
"value": "#888888"
|
12 |
+
},
|
13 |
+
"shape": {
|
14 |
+
"type": "circle",
|
15 |
+
"stroke": {
|
16 |
+
"width": 0,
|
17 |
+
"color": "#000000"
|
18 |
+
},
|
19 |
+
"polygon": {
|
20 |
+
"nb_sides": 5
|
21 |
+
},
|
22 |
+
"image": {
|
23 |
+
"src": "img/github.svg",
|
24 |
+
"width": 100,
|
25 |
+
"height": 100
|
26 |
+
}
|
27 |
+
},
|
28 |
+
"opacity": {
|
29 |
+
"value": 0.5,
|
30 |
+
"random": false,
|
31 |
+
"anim": {
|
32 |
+
"enable": false,
|
33 |
+
"speed": 1,
|
34 |
+
"opacity_min": 0.1,
|
35 |
+
"sync": false
|
36 |
+
}
|
37 |
+
},
|
38 |
+
"size": {
|
39 |
+
"value": 5,
|
40 |
+
"random": true,
|
41 |
+
"anim": {
|
42 |
+
"enable": false,
|
43 |
+
"speed": 40,
|
44 |
+
"size_min": 0.1,
|
45 |
+
"sync": false
|
46 |
+
}
|
47 |
+
},
|
48 |
+
"line_linked": {
|
49 |
+
"enable": true,
|
50 |
+
"distance": 150,
|
51 |
+
"color": "#888888",
|
52 |
+
"opacity": 0.4,
|
53 |
+
"width": 1
|
54 |
+
},
|
55 |
+
"move": {
|
56 |
+
"enable": true,
|
57 |
+
"speed": 3,
|
58 |
+
"direction": "none",
|
59 |
+
"random": false,
|
60 |
+
"straight": false,
|
61 |
+
"out_mode": "out",
|
62 |
+
"attract": {
|
63 |
+
"enable": false,
|
64 |
+
"rotateX": 600,
|
65 |
+
"rotateY": 1200
|
66 |
+
}
|
67 |
+
}
|
68 |
+
},
|
69 |
+
"interactivity": {
|
70 |
+
"detect_on": "canvas",
|
71 |
+
"events": {
|
72 |
+
"onhover": {
|
73 |
+
"enable": true,
|
74 |
+
"mode": "repulse"
|
75 |
+
},
|
76 |
+
"onclick": {
|
77 |
+
"enable": true,
|
78 |
+
"mode": "push"
|
79 |
+
},
|
80 |
+
"resize": true
|
81 |
+
},
|
82 |
+
"modes": {
|
83 |
+
"grab": {
|
84 |
+
"distance": 400,
|
85 |
+
"line_linked": {
|
86 |
+
"opacity": 1
|
87 |
+
}
|
88 |
+
},
|
89 |
+
"bubble": {
|
90 |
+
"distance": 400,
|
91 |
+
"size": 40,
|
92 |
+
"duration": 2,
|
93 |
+
"opacity": 8,
|
94 |
+
"speed": 3
|
95 |
+
},
|
96 |
+
"repulse": {
|
97 |
+
"distance": 200
|
98 |
+
},
|
99 |
+
"push": {
|
100 |
+
"particles_nb": 4
|
101 |
+
},
|
102 |
+
"remove": {
|
103 |
+
"particles_nb": 2
|
104 |
+
}
|
105 |
+
}
|
106 |
+
},
|
107 |
+
"retina_detect": true,
|
108 |
+
"config_demo": {
|
109 |
+
"hide_card": false,
|
110 |
+
"background_color": "#b61924",
|
111 |
+
"background_image": "",
|
112 |
+
"background_position": "50% 50%",
|
113 |
+
"background_repeat": "no-repeat",
|
114 |
+
"background_size": "cover"
|
115 |
+
}
|
116 |
+
}
|
reports/_extensions/holtzy/lumo/style.css
ADDED
@@ -0,0 +1,158 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
body {
|
2 |
+
font-family: "Inter", sans-serif;
|
3 |
+
font-style: normal;
|
4 |
+
font-size: 16px;
|
5 |
+
}
|
6 |
+
|
7 |
+
/* ------------------------------------------- Titles ----------------- */
|
8 |
+
h1 {
|
9 |
+
margin-block-start: 20px;
|
10 |
+
font-size: 2.25rem;
|
11 |
+
font-weight: 800;
|
12 |
+
letter-spacing: -0.02em;
|
13 |
+
}
|
14 |
+
@media (min-width: 1024px) {
|
15 |
+
h1 {
|
16 |
+
font-size: 3rem;
|
17 |
+
}
|
18 |
+
}
|
19 |
+
h2 {
|
20 |
+
margin-top: 190px !important;
|
21 |
+
margin-block-start: 20px;
|
22 |
+
border-bottom: 0.1px solid rgb(232, 232, 232);
|
23 |
+
padding-bottom: 0.5rem;
|
24 |
+
font-size: 1.875rem;
|
25 |
+
font-weight: 600;
|
26 |
+
letter-spacing: -0.02em;
|
27 |
+
transition: color 0.2s ease;
|
28 |
+
}
|
29 |
+
h2:first-of-type {
|
30 |
+
margin-top: 0;
|
31 |
+
}
|
32 |
+
h3 {
|
33 |
+
margin-top: 2rem;
|
34 |
+
margin-block-start: 20px;
|
35 |
+
font-size: 1.5rem;
|
36 |
+
font-weight: 600;
|
37 |
+
letter-spacing: -0.02em;
|
38 |
+
}
|
39 |
+
|
40 |
+
/* ------------------------------------------- Text ----------------- */
|
41 |
+
p {
|
42 |
+
line-height: 28px;
|
43 |
+
}
|
44 |
+
p:not(:first-child) {
|
45 |
+
margin-top: 12px;
|
46 |
+
}
|
47 |
+
a {
|
48 |
+
font-weight: 500;
|
49 |
+
color: var(--primary-color);
|
50 |
+
text-decoration: underline;
|
51 |
+
text-underline-offset: 0.25rem;
|
52 |
+
}
|
53 |
+
|
54 |
+
/* ------------------------------------------- Lists ----------------- */
|
55 |
+
ul {
|
56 |
+
margin: 1.5rem 0;
|
57 |
+
margin-left: 1.5rem;
|
58 |
+
list-style-type: disc;
|
59 |
+
}
|
60 |
+
ul > li {
|
61 |
+
margin-top: 0.5rem;
|
62 |
+
}
|
63 |
+
|
64 |
+
/* ------------------------------------------- Buttons used for tabs ----------------- */
|
65 |
+
.nav-pills .nav-link {
|
66 |
+
color: var(--primary-color);
|
67 |
+
background-color: white;
|
68 |
+
border-color: var(--primary-color);
|
69 |
+
border-radius: 4px;
|
70 |
+
}
|
71 |
+
.nav-pills .nav-link.active {
|
72 |
+
color: white;
|
73 |
+
background-color: var(--primary-color);
|
74 |
+
}
|
75 |
+
.nav-pills .nav-link {
|
76 |
+
padding: 5px;
|
77 |
+
margin-right: 4px;
|
78 |
+
}
|
79 |
+
ul.nav.nav-tabs {
|
80 |
+
margin: 0px;
|
81 |
+
border: none;
|
82 |
+
}
|
83 |
+
.tab-content {
|
84 |
+
border: none;
|
85 |
+
margin-top: 10px;
|
86 |
+
padding: 0px;
|
87 |
+
}
|
88 |
+
|
89 |
+
/* ------------------------------------------- Table of content ----------------- */
|
90 |
+
.sidebar nav[role="doc-toc"] ul > li > a.active,
|
91 |
+
.sidebar nav[role="doc-toc"] ul > li > ul > li > a.active {
|
92 |
+
border-left: 1px solid var(--primary-color);
|
93 |
+
color: var(--primary-color) !important;
|
94 |
+
}
|
95 |
+
#TOC {
|
96 |
+
top: 50%;
|
97 |
+
position: relative;
|
98 |
+
transform: translate(0, -50%);
|
99 |
+
}
|
100 |
+
|
101 |
+
/* ------------------------------------------- Horizontal separator ----------------- */
|
102 |
+
hr {
|
103 |
+
margin-top: 23px;
|
104 |
+
margin-bottom: 23px;
|
105 |
+
border: 0;
|
106 |
+
border-top: 1px solid black;
|
107 |
+
width: 0;
|
108 |
+
animation: separator-width 2s ease-in-out forwards;
|
109 |
+
}
|
110 |
+
@keyframes separator-width {
|
111 |
+
0% {
|
112 |
+
width: 0;
|
113 |
+
}
|
114 |
+
100% {
|
115 |
+
width: 200px;
|
116 |
+
}
|
117 |
+
}
|
118 |
+
|
119 |
+
/* ------------------------------------------- Footer ----------------- */
|
120 |
+
.footer-container {
|
121 |
+
display: flex;
|
122 |
+
flex-direction: column;
|
123 |
+
justify-content: center;
|
124 |
+
align-items: center;
|
125 |
+
padding-top: 40px;
|
126 |
+
padding-bottom: 40px;
|
127 |
+
}
|
128 |
+
|
129 |
+
/* ------------------------------------------- DT table: smaller font ----------------- */
|
130 |
+
table.dataTable tbody th,
|
131 |
+
table.dataTable tbody td {
|
132 |
+
padding: 6px 10px;
|
133 |
+
font-size: 12px;
|
134 |
+
}
|
135 |
+
|
136 |
+
/* ------------------------------------------- Callout ----------------- */
|
137 |
+
div.callout.callout {
|
138 |
+
border: none;
|
139 |
+
padding: 0.4em 0.7em;
|
140 |
+
border-left: var(--primary-color) 4px solid;
|
141 |
+
background-color: color-mix(in srgb, var(--primary-color), transparent 95%);
|
142 |
+
border-radius: 0px;
|
143 |
+
}
|
144 |
+
|
145 |
+
button {
|
146 |
+
color: var(--primary-color);
|
147 |
+
background-color: white;
|
148 |
+
border: var(--primary-color) 1px solid;
|
149 |
+
border-radius: 1px;
|
150 |
+
}
|
151 |
+
|
152 |
+
.grey-section {
|
153 |
+
background-color: #f8f9fa;
|
154 |
+
padding-top: 40px;
|
155 |
+
padding-bottom: 40px;
|
156 |
+
margin-top: 20px;
|
157 |
+
margin-bottom: 20px;
|
158 |
+
}
|
reports/_extensions/holtzy/lumo/title-block.html
ADDED
@@ -0,0 +1,160 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<style>
|
2 |
+
:root {
|
3 |
+
--primary-color: $primary-color$;
|
4 |
+
}
|
5 |
+
.title-block-content {
|
6 |
+
position: relative;
|
7 |
+
padding-top: 130px;
|
8 |
+
padding-bottom: 130px;
|
9 |
+
max-width: 752px;
|
10 |
+
margin: auto;
|
11 |
+
}
|
12 |
+
.header-keyword {
|
13 |
+
color: rgb(59, 59, 59);
|
14 |
+
opacity: 0.5;
|
15 |
+
font-size: 14;
|
16 |
+
}
|
17 |
+
.octocat-container {
|
18 |
+
fill: var(--primary-color);
|
19 |
+
color: #fff;
|
20 |
+
position: absolute;
|
21 |
+
top: 0;
|
22 |
+
border: 0;
|
23 |
+
right: 0;
|
24 |
+
}
|
25 |
+
#particles-js {
|
26 |
+
position: absolute;
|
27 |
+
top: 0px;
|
28 |
+
left: 0px;
|
29 |
+
width: 100%;
|
30 |
+
height: 100%;
|
31 |
+
}
|
32 |
+
</style>
|
33 |
+
|
34 |
+
<header id="title-block-header" style="position: relative">
|
35 |
+
<link
|
36 |
+
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap"
|
37 |
+
rel="stylesheet"
|
38 |
+
/>
|
39 |
+
|
40 |
+
<!-- This is the div in which the particles will be included -->
|
41 |
+
$if(is-particlejs-enabled)$
|
42 |
+
<div id="particles-js"></div>
|
43 |
+
$endif$
|
44 |
+
|
45 |
+
<!-- Actual content on top of the particles-->
|
46 |
+
<div class="title-block-content">
|
47 |
+
<!-- Logo -->
|
48 |
+
$if(logo)$
|
49 |
+
<img
|
50 |
+
src="$logo$"
|
51 |
+
alt="logo of company"
|
52 |
+
height="80px"
|
53 |
+
style="margin-bottom: 20px"
|
54 |
+
/>
|
55 |
+
$endif$
|
56 |
+
|
57 |
+
<!-- Title -->
|
58 |
+
$if(title)$
|
59 |
+
<h1 class="title">$title$</h1>
|
60 |
+
$endif$
|
61 |
+
|
62 |
+
<hr />
|
63 |
+
|
64 |
+
<!-- Subtitle -->
|
65 |
+
$if(subtitle)$
|
66 |
+
<p class="subtitle">$subtitle$</p>
|
67 |
+
$endif$
|
68 |
+
|
69 |
+
<!-- Author -->
|
70 |
+
$for(author)$
|
71 |
+
<p class="author"><span class="header-keyword">Author: </span>$author$</p>
|
72 |
+
$endfor$
|
73 |
+
|
74 |
+
<!-- Date -->
|
75 |
+
$if(date)$
|
76 |
+
<p style="margin-top: 0px">
|
77 |
+
<span class="header-keyword">Date: </span>$date$
|
78 |
+
</p>
|
79 |
+
$endif$
|
80 |
+
|
81 |
+
<!-- Particle.js script loaded from a CDN -->
|
82 |
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/particles.js/2.0.0/particles.min.js"></script>
|
83 |
+
|
84 |
+
<!-- use the particle js library with our own config (json file). -->
|
85 |
+
<script>
|
86 |
+
particlesJS.load(
|
87 |
+
"particles-js",
|
88 |
+
"https://raw.githubusercontent.com/holtzy/lumo/main/_extensions/lumo/particles.json"
|
89 |
+
);
|
90 |
+
</script>
|
91 |
+
</div>
|
92 |
+
</header>
|
93 |
+
|
94 |
+
<!------------------------- Code for the octocat (github Mascot) that will be included if a link to the github repo is provided. ------------------->
|
95 |
+
$if(github-repo)$
|
96 |
+
<a
|
97 |
+
href="$github-repo$"
|
98 |
+
class="github-corner"
|
99 |
+
aria-label="View source on GitHub"
|
100 |
+
>
|
101 |
+
<svg
|
102 |
+
width="80"
|
103 |
+
height="80"
|
104 |
+
viewBox="0 0 250 250"
|
105 |
+
class="octocat-container"
|
106 |
+
aria-hidden="true"
|
107 |
+
>
|
108 |
+
<path
|
109 |
+
d="M0,0 L115,115 L130,115
|
110 |
+
L142,142 L250,250 L250,0 Z"
|
111 |
+
></path>
|
112 |
+
<path
|
113 |
+
d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6
|
114 |
+
C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3
|
115 |
+
125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2"
|
116 |
+
fill="currentColor"
|
117 |
+
style="transform-origin: 130px 106px"
|
118 |
+
class="octo-arm"
|
119 |
+
></path>
|
120 |
+
<path
|
121 |
+
d="M115.0,115.0 C114.9,115.1 118.7,116.5
|
122 |
+
119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0
|
123 |
+
C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5
|
124 |
+
178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2
|
125 |
+
216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5
|
126 |
+
C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5
|
127 |
+
C139.8,137.7 141.6,141.9 141.8,141.8 Z"
|
128 |
+
fill="currentColor"
|
129 |
+
class="octo-body"
|
130 |
+
></path>
|
131 |
+
</svg>
|
132 |
+
</a>
|
133 |
+
<style>
|
134 |
+
.github-corner:hover .octo-arm {
|
135 |
+
animation: octocat-wave 560ms ease-in-out;
|
136 |
+
}
|
137 |
+
@keyframes octocat-wave {
|
138 |
+
0%,
|
139 |
+
100% {
|
140 |
+
transform: rotate(0);
|
141 |
+
}
|
142 |
+
20%,
|
143 |
+
60% {
|
144 |
+
transform: rotate(-25deg);
|
145 |
+
}
|
146 |
+
40%,
|
147 |
+
80% {
|
148 |
+
transform: rotate(10deg);
|
149 |
+
}
|
150 |
+
}
|
151 |
+
@media (max-width: 500px) {
|
152 |
+
.github-corner:hover .octo-arm {
|
153 |
+
animation: none;
|
154 |
+
}
|
155 |
+
.github-corner .octo-arm {
|
156 |
+
animation: octocat-wave 560ms ease-in-out;
|
157 |
+
}
|
158 |
+
}
|
159 |
+
</style>
|
160 |
+
$endif$
|
reports/figs/places.png
CHANGED
![]() |
![]() |
reports/template.html
ADDED
The diff for this file is too large to render.
See raw diff
|
|