aboutsummaryrefslogtreecommitdiffstats
path: root/pkgs/by-name/ba/back/src/issues/format
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-12-26 10:00:45 +0100
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-12-26 10:01:56 +0100
commita3111a5d214db66b7d676940b8f8bfda5074bd45 (patch)
treea68cc1458386052a7c97a07b69bd161866ad7046 /pkgs/by-name/ba/back/src/issues/format
parentfix(hosts/server2): Use correct path to `vhack.eu/nixos-server` repo (diff)
downloadnixos-server-a3111a5d214db66b7d676940b8f8bfda5074bd45.zip
fix(pkgs/back): Use rocket to manage the configuration values
This reduces the amount of needed `unwraps`/`expects` and allows us to streamline the parsing processes.
Diffstat (limited to 'pkgs/by-name/ba/back/src/issues/format')
-rw-r--r--pkgs/by-name/ba/back/src/issues/format/mod.rs88
1 files changed, 0 insertions, 88 deletions
diff --git a/pkgs/by-name/ba/back/src/issues/format/mod.rs b/pkgs/by-name/ba/back/src/issues/format/mod.rs
deleted file mode 100644
index f78d3b3..0000000
--- a/pkgs/by-name/ba/back/src/issues/format/mod.rs
+++ /dev/null
@@ -1,88 +0,0 @@
-// Back - An extremely simple git issue tracking system. Inspired by tvix's
-// panettone
-//
-// Copyright (C) 2024 Benedikt Peetz <benedikt.peetz@b-peetz.de>
-// SPDX-License-Identifier: AGPL-3.0-or-later
-//
-// This file is part of Back.
-//
-// You should have received a copy of the License along with this program.
-// If not, see <https://www.gnu.org/licenses/agpl.txt>.
-
-use std::fmt::Display;
-
-use markdown::to_html;
-
-#[derive(Debug, Default, Clone)]
-pub struct Markdown {
- value: String,
-}
-
-impl From<String> for Markdown {
- fn from(value: String) -> Self {
- Self { value }
- }
-}
-impl Display for Markdown {
- fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
- f.write_str(to_html(&self.value).as_str())
- }
-}
-
-#[derive(Debug, Default)]
-pub struct BackString {
- value: String,
-}
-
-impl From<Markdown> for BackString {
- fn from(value: Markdown) -> Self {
- Self { value: value.value }
- }
-}
-
-impl From<String> for BackString {
- fn from(value: String) -> Self {
- Self { value }
- }
-}
-impl Display for BackString {
- fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
- f.write_str(escape_html(&self.value).as_str())
- }
-}
-
-// From `tera::escape_html`
-/// Escape HTML following [OWASP](https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet)
-///
-/// Escape the following characters with HTML entity encoding to prevent switching
-/// into any execution context, such as script, style, or event handlers. Using
-/// hex entities is recommended in the spec. In addition to the 5 characters
-/// significant in XML (&, <, >, ", '), the forward slash is included as it helps
-/// to end an HTML entity.
-///
-/// ```text
-/// & --> &amp;
-/// < --> &lt;
-/// > --> &gt;
-/// " --> &quot;
-/// ' --> &#x27; &apos; is not recommended
-/// / --> &#x2F; forward slash is included as it helps end an HTML entity
-/// ```
-#[inline]
-pub fn escape_html(input: &str) -> String {
- let mut output = String::with_capacity(input.len() * 2);
- for c in input.chars() {
- match c {
- '&' => output.push_str("&amp;"),
- '<' => output.push_str("&lt;"),
- '>' => output.push_str("&gt;"),
- '"' => output.push_str("&quot;"),
- '\'' => output.push_str("&#x27;"),
- '/' => output.push_str("&#x2F;"),
- _ => output.push(c),
- }
- }
-
- // Not using shrink_to_fit() on purpose
- output
-}