+
+{body}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Minutes/_Templates/main.css b/Minutes/_Templates/main.css
new file mode 100644
index 0000000..e039c8e
--- /dev/null
+++ b/Minutes/_Templates/main.css
@@ -0,0 +1,120 @@
+
+/* Basic stuff */
+body {
+ max-width: 100ch;
+ margin: 0 auto;
+ padding: 8px;
+ line-height: 1.2;
+}
+/* To make sure the header text is always bigger than a normal h1*/
+header h1 {
+ font-size: 300%;
+}
+
+
+/* get these to play nicely with teh max width */
+header, main, footer, img{
+ max-width: 100ch;
+}
+
+a:link{
+ color:#5bf
+}
+a:visited{
+ color:#5bf
+}
+
+table {
+ border-collapse: collapse;
+}
+
+td, th {
+ border: 1px solid #999;
+ padding: 0.5rem;
+ text-align: left;
+}
+
+li p {
+ margin-block-start: 0;
+ margin-block-end: 0;
+}
+
+p code {
+ background-color: rgba(173, 173, 173, 0.26);
+ border-radius: 0.3em;
+ padding: 4px 5px 6px;
+}
+
+pre {
+ max-width: 95vw;
+ display: block;
+ overflow: auto;
+}
+
+/* navbar */
+.links ul, .breadcrumb ul {
+ list-style-type: none;
+ display: flex;
+ padding-left: 0;
+}
+
+/* sticky footer */
+main {
+ min-height: calc(95vh - 150px);
+}
+footer {
+ min-height: 50px;
+}
+
+/* spoilers
+ using https://starbeamrainbowlabs.com/blog/article.php?article=posts%2F415-pure-css-spoiler.html
+ as a base then using it for on hover instead of target.
+ Seems to work well enough for mobile as well
+*/
+
+.md-spoiler {
+ background: #333333;
+ border-radius: 0.2em;
+ color: transparent;
+}
+/* hover is for desktop, active for mobile*/
+.md-spoiler:hover, .md-spoiler:active {
+ background: transparent;
+ color: inherit;
+}
+
+/* every page gets a scrollbar to stop it shifting around */
+html {
+ overflow-y: scroll;
+}
+
+label, input, select {
+ display: table-cell;
+ margin-bottom: 10px;
+}
+/* Make hidden great again */
+[hidden] {
+ display: none !important;
+}
+
+
+/* Specific to handovers */
+
+h1 {
+ color: #087581;
+}
+
+h2 {
+ color: white;
+ background: #087581;
+}
+
+/*h3 {*/
+/* background: #B8F4FA;*/
+/*}*/
+
+#logo {
+ background: white;
+ float: right;
+ margin: 0 0 0 1px;
+}
\ No newline at end of file
diff --git a/README.md b/README.md
index 9cb4b25..4336ecc 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,15 @@ Taking inspiration from https://git.dbyte.xyz/distro/redbrick-open-governance we
To view in Obsidian you can either download and install from https://obsidian.md/.
Or if you have nix installed you can do ``nix develop``.
-## Handovers
-latest handovers are available [here][0]
-[0]: https://gitlab.skynet.ie/api/v4/projects/57/jobs/artifacts/main/download?job=handovers
\ No newline at end of file
+## Documents
+Pipelines run and generate these files every time they are modified.
+
+### Handovers
+Latest handovers are available [here][0]
+
+### Minutes
+Latest Minutes are available [here][1]
+
+[0]: https://gitlab.skynet.ie/api/v4/projects/57/jobs/artifacts/main/download?job=handovers
+[1]: https://gitlab.skynet.ie/api/v4/projects/57/jobs/artifacts/main/download?job=minutes
\ No newline at end of file
diff --git a/_scripts/format_minutes.sh b/_scripts/format_minutes.sh
new file mode 100755
index 0000000..c9d334b
--- /dev/null
+++ b/_scripts/format_minutes.sh
@@ -0,0 +1,52 @@
+#!/usr/bin/env bash
+
+
+# delete to allow for a full rebuild without any ghost artifacts
+rm -rf "Minutes_pdf"
+
+cd Minutes
+
+for year in */ ; do
+ # skip symlinks
+ [ -L "''${year%/}" ] && continue
+ # exclude teh template fodler
+ if [[ $year == *"_Templates"* ]]; then
+ continue
+ fi
+
+ # go into the year folder
+ cd $year
+
+ # convert the Committee ones first
+
+ cp ../../_scripts/md_toml/_Minutes-Committee.md.toml ./.md.toml
+ cargo-bfom
+
+ cp ../../_scripts/md_toml/_Minutes-Council.md.toml ./.md.toml
+ cargo-bfom
+
+ mkdir -p "../../Minutes_pdf/$year/Committee"
+ mkdir -p "../../Minutes_pdf/$year/Council"
+
+ # iterate the files
+ for file in {Committee,Council}_html/*.html; do
+ if [ -f "$file" ]; then
+
+ # we need teh filename/path
+ stripped=''${file/.html/""}
+
+ output="../../Minutes_pdf/$year${stripped/_html/""}.pdf"
+
+ echo $output
+
+ wkhtmltopdf -q --enable-local-file-access --no-stop-slow-scripts "$stripped.html" "$output" 2> ../errors.log
+ fi
+ done
+
+ # cleanup
+ rm -f .md.toml
+ # the temp folders where teh html was created, leaving these could cause ghost artifacts
+ rm -rf ./*_html
+done
+
+cd ../
\ No newline at end of file
diff --git a/_scripts/md_toml/_Minutes-Committee.md.toml b/_scripts/md_toml/_Minutes-Committee.md.toml
new file mode 100644
index 0000000..09f3977
--- /dev/null
+++ b/_scripts/md_toml/_Minutes-Committee.md.toml
@@ -0,0 +1,46 @@
+
+
+# How many spaces of indentation do you want?
+# Defaults to 2
+# Optional
+indentation = 2
+
+# Optional
+src = "./Committee"
+
+# Optional
+dest= "./Committee_html"
+
+# html blocks you dont want to include in teh finished page
+# Optional
+html_void = []
+
+[template]
+# Templates are hjtml files that teh generated markdown is insereted into.
+# There are several options on how this is carried out.
+
+# enable templating
+# Optional
+enable = true
+# Set a base template
+# Optional
+general = "../_Templates/committee.html"
+
+# Priority of the _templates to use, first one to match a markdown file is used.
+# An Empty array below is also valid
+
+# general: use the general file specified above, if it exists.
+
+# ajacent: check if there is a template file with the same name as the markdown file ajacent to the markdown file.
+# ./src/exasmple.md
+# ./src/example.html
+
+# folder: a html file with the same name of the folder that the md resides in.
+# ./src/blog/blog.html
+# ./src/blog/post1.md
+
+# default: use an inbuilt html5 template
+
+
+# Optional
+order = ["ajacent", "general", "folder", "default"]
diff --git a/_scripts/md_toml/_Minutes-Council.md.toml b/_scripts/md_toml/_Minutes-Council.md.toml
new file mode 100644
index 0000000..13d8934
--- /dev/null
+++ b/_scripts/md_toml/_Minutes-Council.md.toml
@@ -0,0 +1,46 @@
+
+
+# How many spaces of indentation do you want?
+# Defaults to 2
+# Optional
+indentation = 2
+
+# Optional
+src = "./Council"
+
+# Optional
+dest= "./Council_html"
+
+# html blocks you dont want to include in teh finished page
+# Optional
+html_void = []
+
+[template]
+# Templates are hjtml files that teh generated markdown is insereted into.
+# There are several options on how this is carried out.
+
+# enable templating
+# Optional
+enable = true
+# Set a base template
+# Optional
+general = "../_Templates/committee.html"
+
+# Priority of the _templates to use, first one to match a markdown file is used.
+# An Empty array below is also valid
+
+# general: use the general file specified above, if it exists.
+
+# ajacent: check if there is a template file with the same name as the markdown file ajacent to the markdown file.
+# ./src/exasmple.md
+# ./src/example.html
+
+# folder: a html file with the same name of the folder that the md resides in.
+# ./src/blog/blog.html
+# ./src/blog/post1.md
+
+# default: use an inbuilt html5 template
+
+
+# Optional
+order = ["ajacent", "general", "folder", "default"]
diff --git a/flake.nix b/flake.nix
index d6e3238..7ccb8b0 100644
--- a/flake.nix
+++ b/flake.nix
@@ -19,10 +19,10 @@
outputs = { self, nixpkgs, utils, bfom }: utils.lib.eachDefaultSystem (system:
let
- pkgs = import nixpkgs {
- system = "${system}";
+ pkgs = import nixpkgs {
+ system = "${system}";
config = {
- allowUnfree = true;
+ allowUnfree = true;
permittedInsecurePackages = [
# for obsidian
"electron-25.9.0"
@@ -42,17 +42,16 @@
'';
};
-
- apps.bfom = {
- type = "app";
- program = "${bfom.defaultPackage.x86_64-linux}/bin/cargo-bfom";
- };
-
packages = {
handovers = pkgs.writeShellScriptBin "format_handovers" ''
export PATH=${pkgs.lib.makeBinPath [ pkgs.wkhtmltopdf bfom.defaultPackage.x86_64-linux ]}:$PATH
${./_scripts/format_handovers.sh}
'';
+
+ minutes = pkgs.writeShellScriptBin "format_minutes" ''
+ export PATH=${pkgs.lib.makeBinPath [ pkgs.wkhtmltopdf bfom.defaultPackage.x86_64-linux ]}:$PATH
+ ${./_scripts/format_minutes.sh}
+ '';
};
});