Commit Graph

314 Commits

Author SHA1 Message Date
Oliver Booth 8202bb7440
style: reword open source text 2023-08-16 14:02:58 +01:00
Oliver Booth 09f3535d77
refactor: remove unused ns import 2023-08-15 17:07:49 +01:00
Oliver Booth 20eabeeb1e
refactor: remove unneeded log line 2023-08-15 17:06:00 +01:00
Oliver Booth fe4701c1bf
chore(debug): set minlevel for DEBUG config 2023-08-15 17:05:16 +01:00
Oliver Booth d9c6034aa0
fix(blog): link to relative index not root index 2023-08-15 17:04:58 +01:00
Oliver Booth 7ee9d3637c
feat: add support for template variants 2023-08-15 17:04:43 +01:00
Oliver Booth 1cdad4c17c
fix(blog): set post in ViewData for article 2023-08-14 00:58:58 +01:00
Oliver Booth e7cbe0330b
feat: add post metadata for social embed support 2023-08-14 00:57:46 +01:00
Oliver Booth 9ce4b844fe
style: format RSS link child 2023-08-14 00:57:13 +01:00
Oliver Booth c3e64a6cde
style: add theme-color #121212 2023-08-14 00:56:59 +01:00
Oliver Booth adf9e63008
style: remove self-closing / 2023-08-14 00:56:45 +01:00
Oliver Booth fdea721f4f
fix: fix support for inline templates 2023-08-14 00:56:05 +01:00
Oliver Booth eb2a63e136
fix(blog): use tag helpers to generate href 2023-08-13 18:12:42 +01:00
Oliver Booth 193b2486a1
refactor(blog): use /blog prefix for article endpoints 2023-08-13 18:12:13 +01:00
Oliver Booth dc83309db7
perf(blog): cache users 2023-08-13 18:03:08 +01:00
Oliver Booth bbc76bc305
refactor(blog): use api controller for /blog/feed endpoint 2023-08-13 18:02:58 +01:00
Oliver Booth 369436ccce
refactor: use global templates 2023-08-13 18:02:19 +01:00
Oliver Booth 0a9c2e82d5
refactor: combine sites into one
CORS was "cors"ing some issues (heh).

But also it is easier to maintain this way. Development was made much more difficult when I separated it. Combining it all also improves SEO
2023-08-13 17:34:38 +01:00
Oliver Booth be44fb4b4b
chore: add per-project Dockerfile 2023-08-13 16:38:56 +01:00
Oliver Booth f878bff8f3
refactor: use shared Markdig pipeline 2023-08-13 15:24:57 +01:00
Oliver Booth 6bbdd0a74d
fix: add missing ns import 2023-08-13 13:28:25 +01:00
Oliver Booth 287af40501
feat: share template system among all projects 2023-08-13 13:27:44 +01:00
Oliver Booth bd5fd6114a
refactor: remove blog CORS policy from principal project 2023-08-13 13:11:50 +01:00
Oliver Booth f60b9c754a
fix: remove ref to removed service 2023-08-13 00:53:22 +01:00
Oliver Booth 692d688dc3
refactor: remove unused config service 2023-08-12 22:38:28 +01:00
Oliver Booth 58799594ae
refactor: switch to serilog 2023-08-12 21:06:48 +01:00
Oliver Booth 1432c8e0f1
fix: amend 4c86a43a84 2023-08-12 20:41:14 +01:00
Oliver Booth 419aae741d
fix: use shared assets in root site 2023-08-12 20:40:46 +01:00
Oliver Booth 4c86a43a84
chore: remove redundant gitignore 2023-08-12 20:40:31 +01:00
Oliver Booth a55c657d91
fix: add missing refs for blog project 2023-08-12 20:32:27 +01:00
Oliver Booth 86bbf803b5
feat: share wwwroot assets 2023-08-12 20:30:10 +01:00
Oliver Booth e8bc50bbdf
refactor: move blog to separate app
I'd ideally like to keep the blog. subdomain the same, and while there are a few ways to achieve this it is much simpler to just dedicate a separate application for the subdomain.

This change also adjusts the webhost builder extensions to default to ports 443/80, and each app now explicitly sets the port it needs.
2023-08-12 20:13:47 +01:00
Oliver Booth b3fd6e9420
chore: add toml config to common lib 2023-08-12 19:04:18 +01:00
Oliver Booth 67231c86af
refactor: delegate ssl cert read to common lib 2023-08-12 18:35:57 +01:00
Oliver Booth 9b9143632a
refactor: remove ref to jquery validation lib 2023-08-12 16:49:37 +01:00
Oliver Booth 641313f97a
refactor: remove Author schema
Introducing new User which serves both as author model and credential model
2023-08-12 14:24:27 +01:00
Oliver Booth 47b648f327
fix: fix markdown formatting inside templates 2023-08-11 21:51:16 +01:00
Oliver Booth 6f7fa67135
refactor: move DateFormatter to child ns 2023-08-11 21:34:04 +01:00
Oliver Booth 034bd66b29
feat: format template arguments 2023-08-11 21:33:14 +01:00
Oliver Booth 9d0e16abc1
feat: add CORS for /api/blog controller 2023-08-11 17:16:26 +01:00
Oliver Booth 415726cdcd
fix: add missing _ViewImports for blog area 2023-08-11 17:16:04 +01:00
Oliver Booth 0aee2aafbc
fix: add missing asp-area for article breadcrumb 2023-08-11 17:15:54 +01:00
Oliver Booth cd0f38764d
fix: send charset=utf-8 for content-type header 2023-08-11 16:42:12 +01:00
Oliver Booth 7bd1c5a45a
refactor: remove redundant write of StatusCode 2023-08-11 16:41:53 +01:00
Oliver Booth e9d9836238
refactor: move Template extension to subnamespace 2023-08-11 16:35:13 +01:00
Oliver Booth 049601a6fb
fix: remove explicit routing 2023-08-11 16:32:29 +01:00
Oliver Booth 54f3706ba0
refactor: move blog api controller to project root 2023-08-11 16:32:11 +01:00
Oliver Booth 143131b413
style: remove BOM 2023-08-11 15:51:20 +01:00
Oliver Booth 1a726b4962
style: format url as yyyy/MM/dd 2023-08-11 15:43:06 +01:00
Oliver Booth becd70c865
fix: use area "blog" for page link 2023-08-11 15:42:48 +01:00
Oliver Booth 1bdd2a04f0
docs: add xmldoc in api controller 2023-08-11 15:41:02 +01:00
Oliver Booth fb8848270f
refactor: remove unused ns imports 2023-08-11 14:29:26 +01:00
Oliver Booth 2844904723
fix: add missing _ViewStart to inherit shared layout 2023-08-11 14:27:38 +01:00
Oliver Booth 19a398d694
refactor: remove unused Post property 2023-08-11 14:27:13 +01:00
Oliver Booth eb2edcb3f6
fix: amend 0ecef1a547
Forgot these two
2023-08-11 14:26:38 +01:00
Oliver Booth 2d4d6d3823
refactor: amend c2deccafae
Define new Area for blog
2023-08-11 14:26:21 +01:00
Oliver Booth 0ecef1a547
refactor: match db change from INT to UUID for pkeys 2023-08-11 14:09:13 +01:00
Oliver Booth c2deccafae
refactor: move blog to new asp area 2023-08-11 14:08:14 +01:00
Oliver Booth 3c6a2209c2
style: remove self-closing tag 2023-08-11 13:52:43 +01:00
Oliver Booth 31794a1238
feat: add rss icon to layout footer 2023-08-11 13:24:57 +01:00
Oliver Booth 69e1279a8b
refactor: remove redundant asp-area attr 2023-08-11 13:23:03 +01:00
Oliver Booth bb0483d4ae
refactor: rename index link 2023-08-11 02:27:17 +01:00
Oliver Booth 682b7c2a87
style: use meaningful placeholders 2023-08-11 02:27:07 +01:00
Oliver Booth 69963a5b81
style: swap roles of strong/underline 2023-08-11 02:26:56 +01:00
Oliver Booth ca31a63bb7
feat: use ViewData title in layout 2023-08-11 02:08:18 +01:00
Oliver Booth cbb7d07844
fix: add missing ViewData title assignment 2023-08-11 02:08:03 +01:00
Oliver Booth 1c73ada81c
style: use breadcrumbs for child contact pages 2023-08-11 02:07:39 +01:00
Oliver Booth 7219c948e6
refactor: remove weird namespace declspec 2023-08-11 02:07:13 +01:00
Oliver Booth 95b7ed0ae7
feat: create partial for spinner, register as handlebars template 2023-08-11 02:06:52 +01:00
Oliver Booth 06fab21cd5
feat: link to blog from index 2023-08-11 02:05:27 +01:00
Oliver Booth 3e3f074e63
style: use dynamic bmc button 2023-08-11 02:05:18 +01:00
Oliver Booth f048c619f3
style: reword donate page 2023-08-11 02:05:08 +01:00
Oliver Booth b2a7bf3536
feat: read ssl pem/key path from env 2023-08-10 23:33:15 +01:00
Oliver Booth 3e20e41565
refactor: use HttpGet for api routes 2023-08-10 22:57:24 +01:00
Oliver Booth d3958fc22c
feat: validate referer on all routes 2023-08-10 22:56:49 +01:00
Oliver Booth 159e1ad65d
refactor: return Ok(...) instead of building a JsonResult 2023-08-10 22:55:52 +01:00
Oliver Booth 9d46d6495e
fix: 0-pad Published properties 2023-08-10 22:53:15 +01:00
Oliver Booth d6c24d80c1
fix: remove stdout diagnostic print 2023-08-10 22:52:43 +01:00
Oliver Booth 74e7187cba
chore: remove redundant NLog ref
this is implicitly ref'd by NLog.Extensions.Logging
2023-08-10 22:50:43 +01:00
Oliver Booth 8dd4468c1a
feat: gracefully shutdown logmanager on exit 2023-08-10 22:49:44 +01:00
Oliver Booth dcbc402bfb
refactor: remove redundant ns import 2023-08-10 22:49:15 +01:00
Oliver Booth 5bb6463a4b
fix: use manual Prism highlighting 2023-08-10 16:16:29 +01:00
Oliver Booth 4244f9f014
fix: add disqus comment counter after posts have loaded 2023-08-10 16:14:48 +01:00
Oliver Booth 506347ce9c
feat: add pre-formatted date "dddd, d MMMM yyyy HH:mm" 2023-08-10 15:32:34 +01:00
Oliver Booth f3ad04ff1f
feat: add disqus comment count injection to asp page 2023-08-10 15:15:36 +01:00
Oliver Booth 221a6f0007
fix: add missing method from BlogService 2023-08-10 14:37:52 +01:00
Oliver Booth 87c54fa5a4
fix: add missing ns import
amends 0b9841a724
2023-08-10 14:37:25 +01:00
Oliver Booth 217c1d660e
feat: use Handlebars to render template excerpt card 2023-08-10 14:36:51 +01:00
Oliver Booth 3868fcbaa8
feat: add pre-humanized timestamp to api schema 2023-08-10 14:34:52 +01:00
Oliver Booth aa69713e49
feat: add handlebars 4.7.8 2023-08-10 14:08:35 +01:00
Oliver Booth cb331ff54f
refactor: use - not _ for id word splitter 2023-08-10 14:08:22 +01:00
Oliver Booth 2036970fa2
fix: remove redundant article tag 2023-08-10 04:56:28 +01:00
Oliver Booth 95dd7e51e5
perf: add dynamic fetch of blog posts to speed up page load 2023-08-10 04:56:12 +01:00
Oliver Booth d11e3f616b
chore: move tsconfig to project root, add ES2020/DOM libs 2023-08-10 04:48:02 +01:00
Oliver Booth e64d8b47b8
feat: add support for Discord-style timestamps 2023-08-10 01:49:09 +01:00
Oliver Booth fa51e0a189
chore: use es2020 2023-08-10 00:29:31 +01:00
Oliver Booth 434c61d7fa
fix: remove non-existent css link 2023-08-10 00:29:24 +01:00
Oliver Booth 738bf1f3ba
feat: use emoji support 2023-08-09 23:19:39 +01:00
Oliver Booth 5c55318577
feat: use smarty pants extension 2023-08-09 23:19:29 +01:00
Oliver Booth 0b9841a724
refactor: simplify md pipeline 2023-08-09 23:19:19 +01:00
Oliver Booth 190e247067
feat: add /raw route to blog posts for markdown output 2023-08-09 23:17:16 +01:00
Oliver Booth a138c38009
feat: add mastodon to footer 2023-08-09 22:13:09 +01:00
Oliver Booth 26b022f7ba
refactor: set OpeningChars for parser 2023-08-09 21:09:50 +01:00
Oliver Booth 2e17daea52
docs: add xmldoc to TemplateExtension 2023-08-09 21:09:32 +01:00
Oliver Booth 07071dc7a5
refactor: remove unused ns import 2023-08-09 21:09:14 +01:00
Oliver Booth 8a1cd689ea
feat: add rss output at route /blog/feed 2023-08-09 21:08:57 +01:00
Oliver Booth 6743918f44
fix: slice from initial index 2023-08-08 22:25:23 +01:00
Oliver Booth 030e5fdd3d
perf: inline redundant var 2023-08-08 22:25:06 +01:00
Oliver Booth a6afe46891
fix: skip value read for key without = 2023-08-08 22:20:58 +01:00
Oliver Booth 6d8a1ac5b9
fix: consume token for template param value 2023-08-08 22:19:57 +01:00
Oliver Booth dbbc18b8a6
perf: optimize and cleanup template parser 2023-08-08 22:18:42 +01:00
Oliver Booth 68bff36fa6
style: remove double blank line 2023-08-08 21:04:27 +01:00
Oliver Booth aee4052954
docs: add xmldoc to BlogContext members 2023-08-08 21:04:13 +01:00
Oliver Booth 6af41cba5a
feat: add support for MediaWiki-style templates 2023-08-08 21:03:41 +01:00
Oliver Booth da5fe30c7a
feat: add font awesome 6.4.2 2023-08-08 21:01:31 +01:00
Oliver Booth 0fa43704ea
style: add alt to author image, reorder anchor attrs 2023-08-08 21:01:13 +01:00
Oliver Booth 77288a0ab5
feat: add operator== for BlogPost 2023-08-08 12:47:34 +01:00
Oliver Booth 4d10fd4ea1
docs: add xmldoc to members 2023-08-08 12:47:21 +01:00
Oliver Booth 50a25dad6f
chore: suppress NonReadonlyMemberInGetHashCode 2023-08-08 12:47:05 +01:00
Oliver Booth 2ef1e47ece
style: order members alphabetically 2023-08-08 12:46:52 +01:00
Oliver Booth aaafcaf760
perf: handle content processing in BlogService 2023-08-08 12:46:24 +01:00
Oliver Booth 983e636635
perf: structure query get a bit better 2023-08-08 12:41:12 +01:00
Oliver Booth 56a8ba7368
fix: add missing lookup 2023-08-08 12:40:51 +01:00
Oliver Booth 9de1a84446
refactor: determine disqus param in model; reduce duplication 2023-08-08 12:40:18 +01:00
Oliver Booth 95a5a9e93b
refactor: readonly IDbContextFactory 2023-08-08 12:25:28 +01:00
Oliver Booth 96ec83e525
feat: add new permalink to all posts 2023-08-08 12:07:30 +01:00
Oliver Booth 299e315ddd
style: reword contact page 2023-08-08 11:35:48 +01:00
Oliver Booth f14239bcfb
style: add bs alert for legal disclaimer 2023-08-08 11:35:36 +01:00
Oliver Booth 7f4ef10960
refactor: delegate id lookup to BlogService 2023-08-08 11:35:22 +01:00
Oliver Booth 6b18b36b96
refactor: get author using BlogService 2023-08-08 11:34:41 +01:00
Oliver Booth a8158611b8
chore: target es6 2023-08-08 02:07:08 +01:00
Oliver Booth 7abc44a58c
feat: use aspnetcore route helper instead of hardcoding url 2023-08-08 02:06:58 +01:00
Oliver Booth 6d40452fb3
feat: display Update timestamp if post has been updated 2023-08-08 02:06:38 +01:00
Oliver Booth 84814da85b
feat: describe project sections 2023-08-08 02:06:20 +01:00
Oliver Booth 69a6f4a3af
refactor: delegate post lookup to BlogService 2023-08-08 02:06:11 +01:00
Oliver Booth 4a94a404b3
fix: fix legacy 301 route 2023-08-08 01:56:13 +01:00
Oliver Booth b584bb84a2
style: guard clause article page 2023-08-08 01:34:27 +01:00
Oliver Booth 83e5757429
feat: delegate blog listing to BlogService 2023-08-08 01:31:05 +01:00
Oliver Booth 8768a90d48
fix: force disqus to use dark theme 2023-08-08 01:21:15 +01:00
Oliver Booth b9e7e938ba
refactor: remove references to hljs 2023-08-08 01:17:23 +01:00
Oliver Booth 6524a4f618
feat: inject custom markdown pipeline 2023-08-08 00:34:15 +01:00
Oliver Booth d69ef231eb
feat: add KaTeX 2023-08-08 00:31:15 +01:00
Oliver Booth e2ecc6dc57
refactor: route blog to asp not remote page 2023-08-08 00:30:57 +01:00
Oliver Booth 3db59d6ca2
feat: use prism instead of highlightjs 2023-08-08 00:30:43 +01:00
Oliver Booth 12309c0bf1
style: improve layout of blog/article 2023-08-08 00:29:39 +01:00
Oliver Booth e5f01f66a9
refactor: add day to article route 2023-08-08 00:21:22 +01:00
Oliver Booth cebaac553c
feat: add gravatar hash calculation 2023-08-08 00:20:52 +01:00
Oliver Booth 6f3961901e
feat: add comment toggle schema 2023-08-08 00:20:38 +01:00
Oliver Booth 8b2f0fb454
feat: add post redirect schema 2023-08-08 00:20:21 +01:00
Oliver Booth 0c594ac306
feat: add Updated property to BlogPost 2023-08-07 23:42:59 +01:00
Oliver Booth 480363dd5a
chore: ignore dynamically generated assets 2023-08-06 15:58:13 +01:00
Oliver Booth bd999f0ed8
feat: add preliminary /blog routes
This change also introduces toml file config
2023-08-06 15:57:44 +01:00
Oliver Booth 518ea1b933
feat: add NLog 2023-08-06 15:56:08 +01:00
Oliver Booth d24f9d3996
fix: add rider hot reload support 2023-08-06 15:55:12 +01:00
Oliver Booth 8ad324227a
refactor: remove localization 2023-08-06 13:55:39 +01:00
Oliver Booth d7d3cb6986
refactor: remove RouteCultureProvider 2023-08-06 13:55:27 +01:00
Oliver Booth 060514aca2
style: use bs-theme "dark" 2023-08-06 13:54:34 +01:00
Oliver Booth 47eeb276c5
style: use explicit https protocol 2023-08-06 13:54:18 +01:00
Oliver Booth 494a85a447
style: format privacy policy pages 2023-08-06 13:54:02 +01:00
Oliver Booth bcee08347a
feat: add projects page 2023-08-06 02:29:10 +01:00
Oliver Booth b2ada7d720
fix: amend 75eed18bc8 2023-08-06 02:27:16 +01:00
Oliver Booth 75eed18bc8
refactor: remove i18n
This can be a problem for Future Me™️
2023-08-06 02:26:45 +01:00
Oliver Booth e93db2c7a0
feat: add donation page 2023-08-05 23:28:01 +01:00
Oliver Booth 6205648e53
refactor: rename project to OliverBooth 2023-08-05 23:27:50 +01:00