aboutsummaryrefslogtreecommitdiff
path: root/_site/atom.xml
blob: 9bc9ffed07d4d3618fac3fe5f1e3623477d7dc24 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
<?xml version="1.0" encoding="utf-8"?>
    <feed xmlns="http://www.w3.org/2005/Atom">
    <title>PHPetite</title>
    <link href="https://phpetite.btxx.org/atom.xml" rel="self"/>
    <link href="https://phpetite.btxx.org"/>
    <updated>2024-02-02T18:05:24+00:00</updated>
    <id>https://phpetite.btxx.org/</id>
    <author>
      <name>Bradley Taunt</name>
      <email>bt@btxx.org</email>
    </author>
  <entry>
    <title>Cleaning Things Up &amp; Future PHPetite Updates</title>
    <link href="https://phpetite.btxx.org#2022-06-28-cleaning-things-up-future-phpetite-updates"/>
    <updated>2022-06-28T00:00:00+00:00</updated>
    <id>https://phpetite.btxx.org/#2022-06-28-cleaning-things-up-future-phpetite-updates</id>
    <content type="html">&lt;h1&gt;Cleaning Things Up &amp;amp; Future PHPetite Updates&lt;/h1&gt;
&lt;p&gt;It has been quite a long time since I've reviewed or updated this little project of mine. Since it's release, I've created another minimal blogging system (based on &lt;code&gt;bash&lt;/code&gt; this time) called &lt;a href="https://shinobi.website"&gt;Shinobi&lt;/a&gt; and converted my personal website to use &lt;em&gt;that&lt;/em&gt; instead.&lt;/p&gt;
&lt;p&gt;But I still love this single file blogging concept. So, I thought it was time for some basic cleanup. That "cleanup" slowly turned into a TODO list of sorts and now there are extra features I plan to add.&lt;/p&gt;
&lt;h2&gt;The Cleanup&lt;/h2&gt;
&lt;p&gt;* I first started by including the specific &lt;code&gt;$_SERVER['DOCUMENT_ROOT'].&lt;/code&gt; parameter in the main PHP includes. I noticed when pulling the project in a "fresh" instance that the build failed without this setup. Sorry for anyone who may have ran into this issue previously!&lt;/p&gt;
&lt;p&gt;* The default build script has been moved into a proper &lt;code&gt;makefile&lt;/code&gt;. Now, generating the website only requires you to run &lt;code&gt;make&lt;/code&gt; from the main directory. Running &lt;code&gt;make serve&lt;/code&gt; builds the website and also runs a local server for testing at &lt;code&gt;localhost:8000&lt;/code&gt;. Nothing groundbreaking but pretty helpful.&lt;/p&gt;
&lt;p&gt;* The original dark mode CSS styling has been removed in favor of using the browser supported &lt;code&gt;color scheme&lt;/code&gt; meta tag.&lt;/p&gt;
&lt;p&gt;* Post dates are now listed at the top of each blog article (see above for reference)&lt;/p&gt;
&lt;h2&gt;What's to Come&lt;/h2&gt;
&lt;p&gt;I keep a running list of features I plan to implement (in no particular order) on the main &lt;a href="#about"&gt;about section&lt;/a&gt;. Feel free to open an issue on the &lt;a href="https://todo.sr.ht/~bt/phpetite"&gt;official sourcehut todo&lt;/a&gt; if you have other features and suggestions. Don't be shy!&lt;/p&gt;
&lt;h2&gt;Follow Along&lt;/h2&gt;
&lt;p&gt;Rolling out any new updates for this project will take time. I'm in no &lt;em&gt;real&lt;/em&gt; rush and I do have other projects that require my attention. That said, if you wish to stay up-to-date, I recommend following along via the &lt;a href="/atom.xml"&gt;official RSS feed&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thanks for reading and happy single-file blogging!&lt;/p&gt;
&lt;p&gt;-- Brad&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>Converting Custom Fonts to Base64 Strings</title>
    <link href="https://phpetite.btxx.org#2021-02-27-converting-custom-fonts-to-base64-strings"/>
    <updated>2021-02-27T00:00:00+00:00</updated>
    <id>https://phpetite.btxx.org/#2021-02-27-converting-custom-fonts-to-base64-strings</id>
    <content type="html">&lt;h1&gt;Converting Custom Fonts to Base64 Strings&lt;/h1&gt;
&lt;p&gt;There are currently no plans to automatically convert custom fonts to base64 strings within the project itself - &lt;strong&gt;but&lt;/strong&gt; it is very easy to do so manually for Mac/Linux users.&lt;/p&gt;
&lt;p&gt;Simply open a terminal window and navigate to where your custom font file is located. The enter the following command (replacing the font extension name with your appropriate file name):&lt;/p&gt;
&lt;pre&gt;&lt;code class="bash"&gt;base64 your-custom-font.woff2 &amp;gt; font-base64.txt&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then in your &lt;code&gt;style.css&lt;/code&gt; file, add the custom font as you normally would via the &lt;code&gt;@font-face&lt;/code&gt; property but this time utilizing base64:&lt;/p&gt;
&lt;pre&gt;&lt;code class="css"&gt;@font-face {
    font-family: 'FontName;
    src: url(data:font/woff2;base64,[BASE64 CODE]) format('woff2');
}&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Things to Keep in Mind&lt;/h2&gt;
&lt;p&gt;Remember that by using base64 strings you are &lt;em&gt;significantly&lt;/em&gt; increasing the overall size of your single file project. This should be used for extreme use cases where a single file website/blog isn't allowed access to 3rd party URLs or extra files on the root server. Hence why by default it isn't include in the PHPetite project itself.&lt;/p&gt;
&lt;h2&gt;Live Example&lt;/h2&gt;
&lt;p&gt;You can check out the &lt;a href="https://thrifty.name"&gt;ThriftyName&lt;/a&gt; project (built on PHPetite) to see base64 custom fonts in use.&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>Disable Image to Base64 Conversion</title>
    <link href="https://phpetite.btxx.org#2021-02-18-disable-image-to-base64-conversion"/>
    <updated>2021-02-18T00:00:00+00:00</updated>
    <id>https://phpetite.btxx.org/#2021-02-18-disable-image-to-base64-conversion</id>
    <content type="html">&lt;h1&gt;Disable Image to Base64 Conversion&lt;/h1&gt;
&lt;p&gt;Some users&lt;sup&gt;&lt;a href="#" class="footnote-ref"&gt;2&lt;/a&gt;&lt;/sup&gt; may wish to host their imagery and media via a 3rd party source or simply want to avoid the heavy weight added with using base64 strings (~133%+ in size). &lt;/p&gt;
&lt;p&gt;To disable this feature, open your &lt;code&gt;_phpetite/_config.php&lt;/code&gt; file and change the &lt;code&gt;images_to_base64&lt;/code&gt; variable to false.&lt;/p&gt;
&lt;pre&gt;&lt;code class="php"&gt;// Activate or disable images to base64 strings
$images_to_base64 = false;&lt;/code&gt;&lt;/pre&gt;
&lt;div class="footnotes"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Thanks to &lt;a href="https://news.ycombinator.com/user?id=Minor49er"&gt;Minor49er&lt;/a&gt; for suggesting this option on &lt;a href="https://news.ycombinator.com/item?id=26175904"&gt;Hacker News&lt;/a&gt;&amp;#160;&lt;a href="#" class="footnote-backref"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content>
  </entry>
  
  <entry>
    <title>Automatic RSS</title>
    <link href="https://phpetite.btxx.org#2021-02-08-automatic-rss"/>
    <updated>2021-02-08T00:00:00+00:00</updated>
    <id>https://phpetite.btxx.org/#2021-02-08-automatic-rss</id>
    <content type="html">&lt;h1&gt;Automatic RSS&lt;/h1&gt;
&lt;p&gt;PHPetite ships with a very basic and crude auto-generated RSS feed. When you run the project's build script:&lt;/p&gt;
&lt;pre&gt;&lt;code class="bash"&gt;bash build.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;it not only generates the single HTML blog file, but also creates an &lt;code&gt;atom.xml&lt;/code&gt; file in the root directory. Simply share this with your followers or link it somewhere on your site itself (eg. &lt;code&gt;yourdomain.com/atom.xml&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;You can view this site's RSS feed here: &lt;/p&gt;
&lt;p&gt;&lt;a href="https://phpetite.org/atom.xml"&gt;https://phpetite.org/atom.xml&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>The Benefits of a Single File Blog</title>
    <link href="https://phpetite.btxx.org#2021-02-07-the-benefits-of-a-single-file-blog"/>
    <updated>2021-02-07T00:00:00+00:00</updated>
    <id>https://phpetite.btxx.org/#2021-02-07-the-benefits-of-a-single-file-blog</id>
    <content type="html">&lt;h1&gt;The Benefits of a Single File Blog&lt;/h1&gt;
&lt;p&gt;Rendering your blog or website as a single file using PHPetite is pretty fantastic. It gives you the freedom to easily share, host or edit your site's content on almost any hosting provider. &lt;/p&gt;
&lt;p&gt;Since the entire blog's content is generated inline on &lt;code&gt;build&lt;/code&gt;, you don't need to fiddle around with external &lt;code&gt;CSS&lt;/code&gt; and &lt;code&gt;JS&lt;/code&gt; files. There is also no need to worry about broken &lt;code&gt;img&lt;/code&gt; sources since PHPetite converts all images into proper base64 strings.&lt;/p&gt;
&lt;p&gt;Using this website as an example: this blog weighs in at &lt;strong&gt;~21KB&lt;/strong&gt;&lt;sup&gt;&lt;a href="#" class="footnote-ref"&gt;2&lt;/a&gt;&lt;/sup&gt;. &lt;/p&gt;
&lt;p&gt;That is incredibly tiny in terms of website size. Some sections on other web pages are larger than that!&lt;/p&gt;
&lt;p&gt;The portability of having a &lt;em&gt;single&lt;/em&gt; &lt;code&gt;HTML&lt;/code&gt; file as your blog is quite liberating. Though it should be noted, if your blog consists of high resolutions imagery or includes massive amounts of content, a single file might be a little impractical for you.&lt;/p&gt;
&lt;h2&gt;Hosting for Newcomers&lt;/h2&gt;
&lt;p&gt;I suggest using &lt;a href="https://app.netlify.com/drop"&gt;Netlify Drop&lt;/a&gt; if this is your first time setting up a hosting environment or you don't consider yourself too tech-savvy. Once you have your rendered &lt;code&gt;index.html&lt;/code&gt; file, simply drag-and-drop the file into Netlify Drop - that's it!&lt;/p&gt;
&lt;p&gt;From there you can always setup a permanent subdomain or use your own custom domain.&lt;/p&gt;
&lt;h2&gt;Local Development&lt;/h2&gt;
&lt;p&gt;Simply follow the instructions found on the &lt;a href="#generating-this-blog"&gt;Generating This Blog&lt;/a&gt; page and you'll be running a local version of your site in seconds.&lt;/p&gt;
&lt;div class="footnotes"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;At this time of writing (Feb 2021)&amp;#160;&lt;a href="#" class="footnote-backref"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content>
  </entry>
  
  <entry>
    <title>Converting from Jekyll</title>
    <link href="https://phpetite.btxx.org#2021-02-06-converting-from-jekyll"/>
    <updated>2021-02-06T00:00:00+00:00</updated>
    <id>https://phpetite.btxx.org/#2021-02-06-converting-from-jekyll</id>
    <content type="html">&lt;h1&gt;Converting from Jekyll&lt;/h1&gt;
&lt;p&gt;This walkthrough is still being tweaked and optimized. Check back soon for the final version!&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>Markdown examples</title>
    <link href="https://phpetite.btxx.org#2021-01-09-markdown-examples"/>
    <updated>2021-01-09T00:00:00+00:00</updated>
    <id>https://phpetite.btxx.org/#2021-01-09-markdown-examples</id>
    <content type="html">&lt;h1&gt;&lt;abbr title="Markdown is a lightweight markup language for creating formatted text using a plain-text editor"&gt;Markdown&lt;/abbr&gt; examples&lt;/h1&gt;
&lt;p&gt;On top of plain &lt;abbr title="Markdown is a lightweight markup language for creating formatted text using a plain-text editor"&gt;Markdown&lt;/abbr&gt;, &lt;a href="https://michelf.ca/projects/php-markdown/extra"&gt;&lt;abbr title="Markdown is a lightweight markup language for creating formatted text using a plain-text editor"&gt;Markdown&lt;/abbr&gt; Extra&lt;/a&gt; adds support for footnotes, abbreviations, definition lists, tables, &lt;code&gt;class&lt;/code&gt; and &lt;code&gt;id&lt;/code&gt; attributes, fenced code blocks, and &lt;abbr title="Markdown is a lightweight markup language for creating formatted text using a plain-text editor"&gt;Markdown&lt;/abbr&gt; inside &lt;abbr title="Hypertext Markup Language"&gt;HTML&lt;/abbr&gt; blocks.&lt;/p&gt;
&lt;p&gt;Additionally, images are properly enclosed in figure elements (with optional figcaption), and the &lt;code&gt;loading="lazy"&lt;/code&gt; attribute is added.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;This is &lt;strong&gt;bold&lt;/strong&gt;, &lt;em&gt;italic&lt;/em&gt;,  this is an &lt;a href="#2021-01-11-hello-world"&gt;internal link&lt;/a&gt;, this is &lt;del&gt;not&lt;/del&gt;  &lt;code&gt;code&lt;/code&gt;, press &lt;kbd&gt;alt&lt;/kbd&gt;.&lt;/p&gt;
&lt;figure&gt;&lt;img src="content/img/image.png" alt="This is the image alt text" title="This is the image title." width="1280" height="800" loading="lazy" /&gt;&lt;figcaption&gt;This is the image caption (line begins with a space). The image above is actually a rendered base64 encoding.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;blockquote&gt;
&lt;p&gt;This text is in a blockquote.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;This is a level 2 heading&lt;/h2&gt;
&lt;h3&gt;This is a level 3 heading&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;This&lt;/li&gt;
&lt;li&gt;is&lt;/li&gt;
&lt;li&gt;a list&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start="0"&gt;
&lt;li&gt;This&lt;/li&gt;
&lt;li&gt;is&lt;/li&gt;
&lt;li&gt;an&lt;/li&gt;
&lt;li&gt;ordered list&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class="txt"&gt;This is
    preformatted
  text.&lt;/code&gt;&lt;/pre&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;this is a table&lt;/th&gt;
&lt;th&gt;header&lt;/th&gt;
&lt;th style="text-align: right;"&gt;this column is right-aligned&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;these&lt;/td&gt;
&lt;td&gt;content&lt;/td&gt;
&lt;td style="text-align: right;"&gt;1234&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;are&lt;/td&gt;
&lt;td&gt;cells&lt;/td&gt;
&lt;td style="text-align: right;"&gt;56789&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;This sentence has a footnote.&lt;sup&gt;&lt;a href="#" class="footnote-ref"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;div class="footnotes"&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;This is a footnote&amp;#160;&lt;a href="#" class="footnote-backref"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content>
  </entry>
  </feed>