Compare commits

..

No commits in common. "9295c4a8489763cefae641ea964f7c91b816a719" and "09f3535d775a4a738ab50b874e1348bcec1e4cfa" have entirely different histories.

17 changed files with 58 additions and 51 deletions

View File

@ -20,7 +20,7 @@ public sealed class BlogApiController : ControllerBase
/// Initializes a new instance of the <see cref="BlogApiController" /> class. /// Initializes a new instance of the <see cref="BlogApiController" /> class.
/// </summary> /// </summary>
/// <param name="blogPostService">The <see cref="IBlogPostService" />.</param> /// <param name="blogPostService">The <see cref="IBlogPostService" />.</param>
/// <param name="userService">The <see cref="IBlogUserService" />.</param> /// <param name="userService">The <see cref="IUserService" />.</param>
public BlogApiController(IBlogPostService blogPostService, IBlogUserService userService) public BlogApiController(IBlogPostService blogPostService, IBlogUserService userService)
{ {
_blogPostService = blogPostService; _blogPostService = blogPostService;

View File

@ -1,4 +1,4 @@
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using OliverBooth.Data.Web.Configuration; using OliverBooth.Data.Web.Configuration;
namespace OliverBooth.Data.Web; namespace OliverBooth.Data.Web;
@ -6,7 +6,7 @@ namespace OliverBooth.Data.Web;
/// <summary> /// <summary>
/// Represents a session with the web database. /// Represents a session with the web database.
/// </summary> /// </summary>
internal sealed class WebContext : DbContext public sealed class WebContext : DbContext
{ {
private readonly IConfiguration _configuration; private readonly IConfiguration _configuration;

View File

@ -18,7 +18,7 @@
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb"> <nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
<ol class="breadcrumb"> <ol class="breadcrumb">
<li class="breadcrumb-item"> <li class="breadcrumb-item">
<a asp-page="Index">Blog</a> <a asp-page="index">Blog</a>
</li> </li>
<li class="breadcrumb-item active" aria-current="page">@post.Title</li> <li class="breadcrumb-item active" aria-current="page">@post.Title</li>
</ol> </ol>

View File

@ -6,11 +6,11 @@
<h1 class="display-4">Contact</h1> <h1 class="display-4">Contact</h1>
<p class="lead">What would you like to talk about?</p> <p class="lead">What would you like to talk about?</p>
<ul class="contact-reasons"> <ul class="contact-reasons">
<li><a asp-page="JobOpportunity">💼 Job opportunity / collaboration</a></li> <li><a asp-page="/contact/jobopportunity">💼 Job opportunity / collaboration</a></li>
<li><a asp-page="/Donate">☕ Donate money for coffee</a></li> <li><a asp-page="/donate">☕ Donate money for coffee</a></li>
<li><a asp-page="ProjectIdea">💡 Project idea</a></li> <li><a asp-page="/contact/projectidea">💡 Project idea</a></li>
<li><a asp-page="TechnicalHelp">💬️ Technical help and code review</a></li> <li><a asp-page="/contact/technicalhelp">💬️ Technical help and code review</a></li>
<li><a asp-page="OpenSource">🌍 Open source contribution</a></li> <li><a asp-page="/contact/opensource">🌍 Open source contribution</a></li>
<li><a asp-page="Privacy">🔒 Privacy policy concerns</a></li> <li><a asp-page="/contact/privacy">🔒 Privacy policy concerns</a></li>
<li><a asp-page="Other">❓ Misc / general inquiry</a></li> <li><a asp-page="/contact/other">❓ Misc / general inquiry</a></li>
</ul> </ul>

View File

@ -6,7 +6,7 @@
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb"> <nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
<ol class="breadcrumb"> <ol class="breadcrumb">
<li class="breadcrumb-item"> <li class="breadcrumb-item">
<a asp-page="Index">Contact</a> <a asp-page="/contact/index">Contact</a>
</li> </li>
<li class="breadcrumb-item active" aria-current="page">Job Opportunity</li> <li class="breadcrumb-item active" aria-current="page">Job Opportunity</li>
</ol> </ol>

View File

@ -6,23 +6,22 @@
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb"> <nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
<ol class="breadcrumb"> <ol class="breadcrumb">
<li class="breadcrumb-item"> <li class="breadcrumb-item">
<a asp-page="Index">Contact</a> <a asp-page="/contact/index">Contact</a>
</li> </li>
<li class="breadcrumb-item active" aria-current="page">Open Source Contribution</li> <li class="breadcrumb-item active" aria-current="page">Open Source Contribution</li>
</ol> </ol>
</nav> </nav>
<p> <p>
Thank you for taking the time to consider contributing to one of my open source projects. I appreciate any and all Thank you for taking the time to consider contributing to one of my open source projects! I am always looking for
contributions that I receive. You do not need to contact me to do so, just submit a pull request on GitHub and I ways to improve my code, and I appreciate any and all contributions that I receive. You do not need to contact
will review it as soon as I can! me to do so, just submit a pull request on GitHub and I will review it as soon as I can.
</p> </p>
<p> <p>
Below is a <strong>non-exhaustive</strong> list of the repositories that are currently active. This list is subject Below are links to the repositories for each of my active projects. This list is subject to change at any time. If
to change at any time, and may not be up to date. For a better gauge of what I am currently working on, please you'd like to contribute to a project that is not listed below, it is likely that I am not currently actively
visit my <a href="https://github.com/oliverbooth">GitHub profile</a>. If you would like to contribute to a project maintaining it, I would recommend that you fork the repository and continue development on your own as unfortunately
that is not in active development, I would recommend that you fork the repository and continue development on your I have no timeline as to when I will start such projects back up again.
own as unfortunately I have no timeline as to when I will start such projects back up again.
</p> </p>
<ul> <ul>
<li> <li>

View File

@ -6,7 +6,7 @@
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb"> <nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
<ol class="breadcrumb"> <ol class="breadcrumb">
<li class="breadcrumb-item"> <li class="breadcrumb-item">
<a asp-page="Index">Contact</a> <a asp-page="/contact/index">Contact</a>
</li> </li>
<li class="breadcrumb-item active" aria-current="page">Other</li> <li class="breadcrumb-item active" aria-current="page">Other</li>
</ol> </ol>

View File

@ -7,7 +7,7 @@
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb"> <nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
<ol class="breadcrumb"> <ol class="breadcrumb">
<li class="breadcrumb-item"> <li class="breadcrumb-item">
<a asp-page="Index">Contact</a> <a asp-page="/contact/index">Contact</a>
</li> </li>
<li class="breadcrumb-item active" aria-current="page">Privacy Policy Concerns</li> <li class="breadcrumb-item active" aria-current="page">Privacy Policy Concerns</li>
</ol> </ol>

View File

@ -6,7 +6,7 @@
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb"> <nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
<ol class="breadcrumb"> <ol class="breadcrumb">
<li class="breadcrumb-item"> <li class="breadcrumb-item">
<a asp-page="Index">Contact</a> <a asp-page="/contact/index">Contact</a>
</li> </li>
<li class="breadcrumb-item active" aria-current="page">Project Idea</li> <li class="breadcrumb-item active" aria-current="page">Project Idea</li>
</ol> </ol>
@ -31,7 +31,7 @@
<strong> <strong>
If this is not something you want, and you'd like to collaborate, please If this is not something you want, and you'd like to collaborate, please
<span style="text-decoration: underline">do not</span> use this form, instead, please use <span style="text-decoration: underline">do not</span> use this form, instead, please use
<a asp-page="JobOpportunity">this one</a>. <a asp-page="/contact/jobopportunity">this one</a>.
</strong> </strong>
</p> </p>
</div> </div>
@ -45,7 +45,7 @@
</div> </div>
<div class="form-group" style="margin-top: 10px;"> <div class="form-group" style="margin-top: 10px;">
<label for="project-title">Your Email Address</label> <label for="project-title">Your Email Adddress</label>
<input type="email" class="form-control" id="email" name="project-title" placeholder="How can I reach you, if I need to?"> <input type="email" class="form-control" id="email" name="project-title" placeholder="How can I reach you, if I need to?">
</div> </div>
@ -60,7 +60,7 @@
</div> </div>
<div class="form-check" style="margin-top: 10px;"> <div class="form-check" style="margin-top: 10px;">
<input class="form-check-input" type="checkbox" id="agreement-checkbox" name="agreement-checkbox" required> <input class="form-check-input" type="checkbox" value="" id="agreement-checkbox" required>
<label class="form-check-label" for="agreement-checkbox"> <label class="form-check-label" for="agreement-checkbox">
I acknowledge and agree to the transfer of intellectual property rights as described above. I acknowledge and agree to the transfer of intellectual property rights as described above.
</label> </label>

View File

@ -6,7 +6,7 @@
<nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb"> <nav style="--bs-breadcrumb-divider: '>';" aria-label="breadcrumb">
<ol class="breadcrumb"> <ol class="breadcrumb">
<li class="breadcrumb-item"> <li class="breadcrumb-item">
<a asp-page="Index">Contact</a> <a asp-page="/contact/index">Contact</a>
</li> </li>
<li class="breadcrumb-item active" aria-current="page">Technical Help</li> <li class="breadcrumb-item active" aria-current="page">Technical Help</li>
</ol> </ol>

View File

@ -11,12 +11,9 @@
</p> </p>
<p> <p>
I've also written a few <a asp-page="/Tutorials/Index">tutorials</a> on various topics, usually involving I've also written a few <a asp-page="/tutorials/index">tutorials</a> on various topics, usually involvin information
information not readily available elsewhere. I hope you find them useful. On occasion, I also write about other not readily available elsewhere. I hope you find them useful. On occasion, I also write about other topics that I
topics that I find interesting, such as find interesting, such as <a asp-page="/blog/index">my thoughts on the state of the world or the tech industry</a>.
<a asp-page="/Blog/Index">
my thoughts on the state of the world or the tech industry
</a>.
</p> </p>
<p> <p>
@ -25,4 +22,4 @@
<a href="https://play.google.com/store/apps/dev?id=9010459220239503006">Google Play</a>. <a href="https://play.google.com/store/apps/dev?id=9010459220239503006">Google Play</a>.
</p> </p>
<p>If you'd like to get in touch, you can do so by <a asp-page="/Contact/Index">clicking here</a>.</p> <p>If you'd like to get in touch, you can do so by <a asp-page="/contact/index">clicking here</a>.</p>

View File

@ -8,7 +8,7 @@
<p class="lead">Last Updated: 26 May 2023</p> <p class="lead">Last Updated: 26 May 2023</p>
<div class="alert alert-primary"> <div class="alert alert-primary">
This Privacy Policy differs from the policy that applies to this website. For this website's privacy policy, please This Privacy Policy differs from the policy that applies to this website. For this website's privacy policy, please
<a asp-page="/Privacy/Index">click here</a>. <a asp-page="/privacy/index">click here</a>.
</div> </div>
<p> <p>
@ -62,5 +62,5 @@
<h2>Contact Me</h2> <h2>Contact Me</h2>
<p> <p>
If you have any questions or concerns about this Privacy Policy or my privacy practices, please If you have any questions or concerns about this Privacy Policy or my privacy practices, please
<a asp-page="/Contact/Privacy" asp-route-which="google-play">get in touch</a>. <a asp-page="/contact/privacy" asp-route-which="google-play">get in touch</a>.
</p> </p>

View File

@ -8,7 +8,7 @@
<p class="lead">Last Updated: 26 May 2023</p> <p class="lead">Last Updated: 26 May 2023</p>
<div class="alert alert-primary"> <div class="alert alert-primary">
This Privacy Policy differs from the policy that applies to my applications published to Google Play. For my This Privacy Policy differs from the policy that applies to my applications published to Google Play. For my
applications' privacy policy, please <a asp-page="/Privacy/GooglePlay">click here</a>. applications' privacy policy, please <a asp-page="/privacy/googleplay">click here</a>.
</div> </div>
<p> <p>
@ -79,7 +79,7 @@
<h2>Contact Me</h2> <h2>Contact Me</h2>
<p> <p>
If you have any questions or concerns about this Privacy Policy or my privacy practices, please If you have any questions or concerns about this Privacy Policy or my privacy practices, please
<a asp-page="/Contact/Privacy" asp-route-which="website">get in touch</a>. <a asp-page="/contact/privacy" asp-route-which="website">get in touch</a>.
</p> </p>
<hr/> <hr/>

View File

@ -58,22 +58,22 @@
<nav> <nav>
<ul class="site-nav"> <ul class="site-nav">
<li> <li>
<a asp-page="/Index">About</a> <a asp-page="/index">About</a>
</li> </li>
<li> <li>
<a asp-page="/Blog/Index">Blog</a> <a asp-page="/blog/index">Blog</a>
</li> </li>
<li> <li>
<a asp-page="/Tutorials/Index">Tutorials</a> <a asp-page="/tutorials/index">Tutorials</a>
</li> </li>
<li> <li>
<a asp-page="/Projects/Index">Projects</a> <a asp-page="/projects/index">Projects</a>
</li> </li>
<li> <li>
<a asp-page="/Contact/Index">Contact</a> <a asp-page="/contact/index">Contact</a>
</li> </li>
<li> <li>
<a asp-page="/Donate">Donate</a> <a asp-page="/donate">Donate</a>
</li> </li>
</ul> </ul>
</nav> </nav>

View File

@ -252,7 +252,3 @@ a.bmc-btn {
.text-orange { .text-orange {
color: #f60 !important; color: #f60 !important;
} }
.accordion.faq {
margin: 20px 0;
}

View File

@ -218,7 +218,7 @@ class UI {
let content = block.innerHTML; let content = block.innerHTML;
// but ugly fucking hack. I hate this // but ugly fucking hack. I hate this
content = content.replaceAll(/&lt;mark(.*?)&gt;/g, "<mark$1>"); content = content.replaceAll("&lt;mark&gt;", "<mark>");
content = content.replaceAll("&lt;/mark&gt;", "</mark>"); content = content.replaceAll("&lt;/mark&gt;", "</mark>");
block.innerHTML = content; block.innerHTML = content;
}); });

View File

@ -3,6 +3,8 @@ import UI from "./UI";
import Input from "./Input"; import Input from "./Input";
import Author from "./Author"; import Author from "./Author";
const pkg = require("../../package.json");
declare const Handlebars: any; declare const Handlebars: any;
declare const Prism: any; declare const Prism: any;
@ -10,7 +12,7 @@ declare const Prism: any;
Prism.languages.extend('markup', {}); Prism.languages.extend('markup', {});
Prism.languages.hex = { Prism.languages.hex = {
'number': { 'number': {
pattern: /(?:[a-fA-F0-9]{3}){1,2}\b/i, pattern: /(?:[a-f0-9]{3}){1,2}\b/i,
lookbehind: true lookbehind: true
} }
}; };
@ -27,6 +29,19 @@ declare const Prism: any;
} }
}); });
let isCtrl = false;
document.addEventListener('keyup', (e) => {
if (e.ctrlKey) isCtrl = false;
});
document.addEventListener('keydown', (e) => {
if (e.ctrlKey) isCtrl = true;
if (isCtrl && e.key === "u") {
window.open(pkg.repository.url, "_blank");
return false;
}
});
Input.registerShortcut(Input.KONAMI_CODE, () => { Input.registerShortcut(Input.KONAMI_CODE, () => {
window.open("https://www.youtube.com/watch?v=dQw4w9WgXcQ", "_blank"); window.open("https://www.youtube.com/watch?v=dQw4w9WgXcQ", "_blank");
}); });