In the spirit of a blogging framework, I will intro the design choices behind Sculblog in a stream-of-thought prose piece.
Previously I was part of a clothing startup. Someday, I will write a blog post detaling how making clothing for half a year influenced my design taste, but, in one sentence: designing clothing accentuated a strong propensity towards minimalism in my design tastes in the way everything not neccassary had to be taken away to convey a core end-goal design and to accentuate the most important things on the limited space on the human body.
A year later I got into computers and started writing software. And during my software writing journey, I stumbled across so many connnections between clothing design and software design. You might thing the usage of the word "design" for both fields is merely an accident, but no, they were largely in the same domain! Not merely overlapping in semantic ways, in "oh I overlap these words from this field with these words from that field...," but in activating the same brain circutries before I even realized it was happening.
I believe there are so many good ideas, ideas across disciplines, formed by people's unique experiences, in people's minds that would impact the world if they got out... The invention of the laser was just a hobby and it led to hard drives... And that is why I have made this program, so people can focus on writing their ideas instead of website management, and thus change the world.
The Sculblog project started when I was making a personal website compiling lots of my previous work including software projects, prose pieces I had written, and visual design pieces. It all started growing in complexity rather quickly, and keeping consistency between multiple HTML files was next to impossible, so it made sense to me to take a bit of time to make a simple framework. PHP and SQLite was the combination that worked best. After the website went up, I found out that there was no website framework that was minimalistic, customizable, and easy-to-use, so, with a little bit more development, I created one! In keeping with my tendancies towards minimalism, I wrote Sculblog to render down to pure HTML. Sculblog is the only blogging framework that renders down to pure HTML while preserving layout consistency across pages.
There is great beauty in pure information. That's what computers do, they process information. Take our messy, imperfect world and turn it into an easily replicatable and preservable format. Tim Berners Lee... Aaron Swartz... So many of the greatest minds have put their work in pure HTML, a very pure syntactic format for sharing textual information. Aesthetically, pure HTML calls back to the old internet, when computers and the internet were being pioneered by madmen like John Perry Barlow. These visionaries made computers do the preservation, processing, and transferring of information, and I believe writing a program that will keep the focus of the internet on that will bring about the best and most transformative ideas for humanity.
Sculblog is written in Python and built on top of pre-existing technologies - Debian, Apache, HTML, CSS, PHP, SQLite, browsers. These technologies are established, reliable, and easily customizable, perfect for building a lightweight blogging framework on top of.
Sculblog 0.1.6 is for an Apache server running on Debian. Future versions will support Nginx
source ``curl http://diegocabello.com/sculblog/install.sh.python -m venv sculblogsource sculblog/bin/activate to activate the
venvpip install sculblog/var/www/html/
are linked to templates stored in the 'resources' folder in the server
directory.
Compared to alternatives like Hugo, this configuration is much simpler and doesn't require learning a whole new scripting language.
Post are sorted:
This notation is provided in Extended Backus-Naur Form.1
Sculblog posts have a required schema so that Sculblog posts can be
cross-hosted between different websites. All these fields are
TEXT in SQLite.
file_name - this is what the url points to. It is the
name of the php file and the markdown file in the content
directory. Must contain only lowercase letters and single hyphens.
Cannot start or end with a hyphen
^[a-z0-9]+(-[a-z0-9]+)*$file_name uses hyphens for spaces;
column names use underscores for spaces. This is to prevent any
ambiguation between the two use casesheader - this is the text with capitalization and
spaces that gets rendered in the header element on the page or the
listing.
file_nametext - this is the HTML stored in the database that
gets rendered in the php.preview_text - the text all put into one
p eleement, with optional stylistic highliting for headers,
links, and more. Shows up in the listings. Automatically formatted from
textauthor - the authordate - the date
tags - seperated by commas. case insensitive, spaces
allowed around tags
^([\w\s-]+\s*,\s*)*[\w\s-]+$hide - anything in this column that is not empty or
whitespace will hide the postIn the spirit of extensability, anything else goes.
The process command in sculblog is used to convert
markdown content into HTML and preview HTML.
Usage: sculblog process <post_name>
As defined in ISO/IEC 14977 ↩︎