PageSourceSearch

https://personaljournal.ca/personal-blog/

html personaljournal.ca collected 2026-09-24 10:10:26 UTC 15,272 bytes, 515 lines download raw bytes

1<!DOCTYPE HTML>
2<html  dir="">
3	<head>
4		<meta charset="utf-8">
5
6		<title>Personal Blog &mdash; Personal Journal</title>
7		
8		<link rel="stylesheet" type="text/css" href="/css/write.css?e42ba390ed9c9ce4164cb" />
9		<link rel="shortcut icon" href="/favicon.ico" />
10		<link rel="canonical" href="https://personaljournal.ca/personal-blog/">
11		
12		
13		<link rel="alternate" type="application/rss+xml" title="Personal Blog &raquo; Feed" href="https://personaljournal.ca/personal-blog/feed/" />
14		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
15
16		<meta name="generator" content="WriteFreely">
17		<meta name="description" content="">
18		<meta itemprop="name" content="Personal Blog">
19		<meta itemprop="description" content="">
20		<meta name="twitter:card" content="summary">
21		<meta name="twitter:title" content="Personal Blog">
22		<meta name="twitter:image" content="https://personaljournal.ca/img/avatars/p.png">
23		<meta name="twitter:description" content="">
24		<meta property="og:title" content="Personal Blog" />
25		<meta property="og:site_name" content="Personal Blog" />
26		<meta property="og:type" content="article" />
27		<meta property="og:url" content="https://personaljournal.ca/personal-blog/" />
28		<meta property="og:description" content="" />
29		<meta property="og:image" content="https://personaljournal.ca/img/avatars/p.png">
30		
31	
32
33		<style type="text/css">/* 
34   Written in 2020 by Write.as
35
36   To the extent possible under law, the author(s) have dedicated all 
37   copyright and related and neighboring rights to this software to the 
38   public domain worldwide. This software is distributed without any 
39   warranty.
40
41   You should have received a copy of the CC0 Public Domain Dedication 
42   along with this software. If not, see 
43   http://creativecommons.org/publicdomain/zero/1.0
44*/
45
46body {
47		 color: #eee;
48		 background: #111;
49	}
50	
51body .post-title a:link, a:visited {
52		 color: #ccc;
53	}
54	
55#collection .post-title a {
56               color: #ccc;
57}
58	
59#collection {
60		 color: #eee;
61	}
62	
63#collection pre {
64		 background: #060606;
65	}
66
67body h1 a, body header h2 a {
68		 color: #cfcfcf;
69	}
70	
71body h1 a:hover, body header h2 a:hover {
72		 color: #fff;
73	}
74	
75body h1 a:visited, body header h2 a:visited {
76		 color: #ccc;
77	}
78	
79body #manage ul a, body .dropdown-nav ul a, body #manage ul ul a, body #manage ul a {
80		 color: #ccc;
81	}
82	 
83body .dropdown-nav ul ul, body .dropdown-nav ul li:hover, body #manage ul ul, body #manage ul ul li:hover, body #manage ul li:hover {
84		 background: #222;
85	}
86
87body #official-writing h2, body #official-writing h3, body #official-writing h4, body #wrapper h2, body #wrapper h3, body #wrapper h4 {
88		 color: #ddd;
89	}
90	
91body a {
92		 color: #a2a2ff;
93	}
94	
95body a:visited {
96		 color: #c98afd;
97	}
98	
99body #official-writing h2, body #official-writing h3, body #official-writing h4, body #wrapper h2, body #wrapper h3, body #wrapper h4 {
100		 color: #aaa;
101	}
102	
103body #official-writing ul.collections li.collection a.title:link, body #official-writing ul.collections li.collection a.title:visited, body #wrapper ul.collections li.collection a.title:link, body #wrapper ul.collections li.collection a.title:visited {
104		 color: #cfcfcf;
105	}
106	 
107body #official-writing ul.collections li a.create, body #wrapper ul.collections li a.create {
108		 color: #aaa;
109	}
110	 
111body#me #official-writing h2 a:link, body#me #official-writing h2 a:visited {
112		 color: #a2a2ff;
113	}
114	 
115
116input {
117		 background: #202020;
118		 color: #bbb;
119	}
120	
121#manage ul ul li img {
122		 filter: invert(1);
123	}
124	
125#post code, #collection code, #subpage code {
126         background: #202020;
127		 color: #bbb;
128    }
129    
130body#collection pre, body#post pre, body#subpage pre {
131        background: #060606;
132}</style>
133
134		
135
136		
137		
138<script>
139  
140  addEventListener('DOMContentLoaded', function () {
141    var hlbaseUri = "/js/";
142    var lb = document.querySelectorAll("code[class^='language-']");
143
144
145    
146    var aliasmap = {
147      "elisp"      : "lisp",
148      "emacs-lisp" : "lisp",
149      "c"          : "cpp",
150      "cc"         : "cpp",
151      "h"          : "cpp",
152      "c++"        : "cpp",
153      "h++"        : "cpp",
154      "hpp"        : "cpp",
155      "hh"         : "cpp",
156      "hxx"        : "cpp",
157      "cxx"        : "cpp",
158      "sh"         : "bash",
159      "js"         : "javascript",
160      "jsx"        : "javascript",
161      "html"       : "xml"
162    };
163
164    
165    function highlight(nodes) {
166      for (i=0; i < nodes.length; i++) {
167          hljs.highlightBlock(nodes[i]);
168      }
169    }
170
171    
172    function loadLanguages(uris, callback) {
173      uris.forEach(function(uri) {
174        var sc = document.createElement('script');
175        sc.src = uri;
176        sc.async = false; 
177	  
178        if (uris.indexOf(uri) == uris.length-1) {
179	  
180	  
181	  
182          sc.onload  = callback; sc.onerror = callback;
183        }
184        document.head.appendChild(sc);
185      });
186    }
187
188    
189    if (lb.length > 0) {
190      
191      var st = document.createElement('link');
192      st.rel = "stylesheet";
193      st.href = "/css/lib/atom-one-light.min.css";
194      document.head.appendChild(st);
195
196      
197      var jss = [hlbaseUri + "highlight.min.js"];
198      
199      for (i=0; i < lb.length; i++) {
200        lang = lb[i].className.replace('language-','').toLowerCase();
201        
202        if (aliasmap[lang]) lang = aliasmap[lang];
203        lurl = hlbaseUri + "highlightjs/" + lang + ".min.js";
204        if (!jss.includes(lurl)) {
205          jss.push(lurl);
206        }
207      }
208      
209      loadLanguages(jss, () => {highlight(lb)});
210    }
211  });
212</script>
212
213
214
215	</head>
216	<body id="collection" itemscope itemtype="http://schema.org/WebPage">
217		
218		
219		<header>
220		
221		<h1 dir="" id="blog-title"><a href="/personal-blog/" class="h-card p-author u-url" rel="me author">Personal Blog</a></h1>
222		
223		
224		<nav>
225			</nav>
226		
227		</header>
228		
229		<section id="wrapper" itemscope itemtype="http://schema.org/Blog">
230
231			
232
233			
234<article id="post-b6b3nj85t5" class="norm h-entry" itemscope itemtype="http://schema.org/BlogPosting">
235	
236	<h2 class="post-title" itemprop="name" class="p-name"><a href="/personal-blog/dark-theme-for-blogs" itemprop="url" class="u-url">Dark Theme for Blogs</a>
237		
238	</h2>
239	<time class="dt-published" datetime="2020-02-11T16:57:21Z" pubdate itemprop="datePublished" content="2020-02-11 16:57:21 &#43;0000 UTC">February 11, 2020</time>
240
241
242<div lang="en" dir="auto" class="book e-content"><p>If you&#39;ve checked out your blog&#39;s settings page before, you&#39;ve probably seen the <em>Custom CSS</em> section. This allows you to customize the design of your own blog to your heart&#39;s content. While this lets you change anything easily, it can be a little daunting for some people.</p>
243
244<p>The good folks at <a href="https://write.as" rel="nofollow">Write.as</a> just made a complete dark theme for use on your blog if you find that the default light theme is a bit too bright for your preferences.</p>
245
246<p><details>
247<summary>Click Here to View CSS</summary></p>
248
249<pre><code class="language-css">/* 
250   Written in 2020 by Write.as
251
252   To the extent possible under law, the author(s) have dedicated all 
253   copyright and related and neighboring rights to this software to the 
254   public domain worldwide. This software is distributed without any 
255   warranty.
256
257   You should have received a copy of the CC0 Public Domain Dedication 
258   along with this software. If not, see 
259   http://creativecommons.org/publicdomain/zero/1.0
260*/
261
262body {
263		 color: #eee;
264		 background: #111;
265	}
266	
267body .post-title a:link, a:visited {
268		 color: #ccc;
269	}
270	
271#collection .post-title a {
272               color: #ccc;
273}
274	
275#collection {
276		 color: #eee;
277	}
278	
279#collection pre {
280		 background: #060606;
281	}
282
283body h1 a, body header h2 a {
284		 color: #cfcfcf;
285	}
286	
287body h1 a:hover, body header h2 a:hover {
288		 color: #fff;
289	}
290	
291body h1 a:visited, body header h2 a:visited {
292		 color: #ccc;
293	}
294	
295body #manage ul a, body .dropdown-nav ul a, body #manage ul ul a, body #manage ul a {
296		 color: #ccc;
297	}
298	 
299body .dropdown-nav ul ul, body .dropdown-nav ul li:hover, body #manage ul ul, body #manage ul ul li:hover, body #manage ul li:hover {
300		 background: #222;
301	}
302
303body #official-writing h2, body #official-writing h3, body #official-writing h4, body #wrapper h2, body #wrapper h3, body #wrapper h4 {
304		 color: #ddd;
305	}
306	
307body a {
308		 color: #a2a2ff;
309	}
310	
311body a:visited {
312		 color: #c98afd;
313	}
314	
315body #official-writing h2, body #official-writing h3, body #official-writing h4, body #wrapper h2, body #wrapper h3, body #wrapper h4 {
316		 color: #aaa;
317	}
318	
319body #official-writing ul.collections li.collection a.title:link, body #official-writing ul.collections li.collection a.title:visited, body #wrapper ul.collections li.collection a.title:link, body #wrapper ul.collections li.collection a.title:visited {
320		 color: #cfcfcf;
321	}
322	 
323body #official-writing ul.collections li a.create, body #wrapper ul.collections li a.create {
324		 color: #aaa;
325	}
326	 
327body#me #official-writing h2 a:link, body#me #official-writing h2 a:visited {
328		 color: #a2a2ff;
329	}
330	 
331
332input {
333		 background: #202020;
334		 color: #bbb;
335	}
336	
337#manage ul ul li img {
338		 filter: invert(1);
339	}
340	
341#post code, #collection code, #subpage code {
342                background: #202020;
343		 color: #bbb;
344    }
345body#collection pre, body#post pre, body#subpage pre {
346               background: #060606;
347}
348</code></pre>
349
350<p></details></p>
351
352<p>For other great themes, check out <a href="https://write.as/themes/" rel="nofollow">write.as/themes</a></p>
353</div></article><article id="post-8bgwali6ek" class="norm h-entry" itemscope itemtype="http://schema.org/BlogPosting">
354	
355	<h2 class="post-title" itemprop="name" class="p-name"><a href="/personal-blog/pinning-important-posts" itemprop="url" class="u-url">Pinning Important Posts</a>
356		
357	</h2>
358	<time class="dt-published" datetime="2019-07-04T20:54:46Z" pubdate itemprop="datePublished" content="2019-07-04 20:54:46 &#43;0000 UTC">July 4, 2019</time>
359
360
361<div lang="en" dir="auto" class="book e-content"><p>
361Did you know you can pin any blog post to your blog&#39;s navigation bar? This could include pages such as an About or Contact page, or anything else you may desire. To pin a blog post, follow these steps:</p>
362<ol><li>Publish a post to your blog</li>
363<li>Go to your blog home page by clicking your blog name in the top-left corner</li>
364<li>Hover over the post</li>
365<li>Click <strong>Pin</strong></li></ol>
366
367<p>That&#39;s it! You&#39;ll see a link to that post from every page on your blog.</p>
368</div></article><article id="post-8q6gbuccb7" class="norm h-entry" itemscope itemtype="http://schema.org/BlogPosting">
369	
370	<h2 class="post-title" itemprop="name" class="p-name"><a href="/personal-blog/hello-world" itemprop="url" class="u-url">Hello world!</a>
371		
372	</h2>
373	<time class="dt-published" datetime="2019-06-26T14:36:31Z" pubdate itemprop="datePublished" content="2019-06-26 14:36:31 &#43;0000 UTC">June 26, 2019</time>
374
375
376<div lang="en" dir="auto" class="book e-content"><p>Testing out my very first post on my new website. I hope for this to be a place where anybody can come to create their own blog or private journal without having to worry about all the crap that typically comes with free hosting sites. If you&#39;re interested in trying this out, sign up for free and get started today!</p>
377
378<h4 id="note-this-website-supports-creating-blog-posts-using-markdown-for-a-simple-getting-started-guide-on-how-to-improve-the-design-of-your-posts-visit-writefreely-s-writing-guide-https-writefreely-org-docs-v0-9-1-writer-writing-md">Note: This website supports creating blog posts using Markdown, for a simple getting started guide on how to improve the design of your posts, visit WriteFreely&#39;s <a href="https://writefreely.org/docs/v0.9.1/writer/writing.md" rel="nofollow">Writing Guide</a></h4>
379</div></article>
380
381
382		
383
384		</section>
385
386		
387		<footer>
388			<hr />
389			<nav dir="ltr">
390				<a class="home pubd" href="/">Personal Journal</a> &middot; powered by <a style="margin-left:0" href="https://writefreely.org">writefreely</a>
391			</nav>
392		</footer>
393		
394	</body>
395
396	
397	
397<script src="/js/h.js"></script>
397
398	
398<script src="/js/postactions.js"></script>
398
399	
399<script src="/js/localdate.js"></script>
399
400	
400<script type="text/javascript" src="/js/menu.js"></script>
400
401	
401<script type="text/javascript">
402var deleting = false;
403function delPost(e, id, owned) {
404	e.preventDefault();
405	if (deleting) {
406		return;
407	}
408
409	
410	if (window.confirm('Are you sure you want to delete this post?')) {
411		
412		deletePost(id, "", function() {
413			
414			var $postEl = document.getElementById('post-' + id);
415			$postEl.parentNode.removeChild($postEl);
416			
417		});
418	}
419}
420
421var deletePost = function(postID, token, callback) {
422	deleting = true;
423
424	var $delBtn = document.getElementById('post-' + postID).getElementsByClassName('delete action')[0];
425	$delBtn.innerHTML = '...';
426
427	var http = new XMLHttpRequest();
428	var url = "/api/posts/" + postID;
429	http.open("DELETE", url, true);
430	http.onreadystatechange = function() {
431		if (http.readyState == 4) {
432			deleting = false;
433			if (http.status == 204) {
434				callback();
435			} else if (http.status == 409) {
436				$delBtn.innerHTML = 'delete';
437				alert("Post is synced to another account. Delete the post from that account instead.");
438				
439				
440				
441			} else {
442				$delBtn.innerHTML = 'delete';
443				alert("Failed to delete." + (http.status>=500?" Please try again.":""));
444			}
445		}
446	}
447	http.send();
448};
449
450var pinning = false;
451function pinPost(e, postID, slug, title) {
452	e.preventDefault();
453	if (pinning) {
454		return;
455	}
456	pinning = true;
457
458	var callback = function() {
459		
460		var $postEl = document.getElementById('post-' + postID);
461		$postEl.parentNode.removeChild($postEl);
462		var $header = document.getElementsByTagName('header')[0];
463		var $pinnedNavs = $header.getElementsByTagName('nav');
464		
465		var link = '<a class="pinned" href="/personal-blog/'+slug+'">'+title+'</a>';
466		if ($pinnedNavs.length == 0) {
467			$header.insertAdjacentHTML("beforeend", '<nav>'+link+'</nav>');
468		} else {
469			$pinnedNavs[0].insertAdjacentHTML("beforeend", link);
470		}
471	};
472
473	var $pinBtn = document.getElementById('post-' + postID).getElementsByClassName('pin action')[0];
474	$pinBtn.innerHTML = '...';
475
476	var http = new XMLHttpRequest();
477	var url = "/api/collections/personal-blog/pin";
478	var params = [ { "id": postID } ];
479	http.open("POST", url, true);
480	http.setRequestHeader("Content-type", "application/json");
481	http.onreadystatechange = function() {
482		if (http.readyState == 4) {
483			pinning = false;
484			if (http.status == 200) {
485				callback();
486			} else if (http.status == 409) {
487				$pinBtn.innerHTML = 'pin';
488				alert("Post is synced to another account. Delete the post from that account instead.");
489				
490				
491				
492			} else {
493				$pinBtn.innerHTML = 'pin';
494				alert("Failed to pin." + (http.status>=500?" Please try again.":""));
495			}
496		}
497	}
498	http.send(JSON.stringify(params));
499};
500
501	try {
502	  WebFontConfig = {
503		custom: { families: [ 'Lora:400,700:latin', 'Open+Sans:400,700:latin' ], urls: [ '/css/fonts.css' ] }
504	  };
505	  (function() {
506		var wf = document.createElement('script');
507		wf.src = '/js/webfont.js';
508		wf.type = 'text/javascript';
509		wf.async = 'true';
510		var s = document.getElementsByTagName('script')[0];
511		s.parentNode.insertBefore(wf, s);
512	  })();
513	} catch (e) {}
514	</script>
514
515</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.