Note: THE TECHNICAL DOCS HAVE MOVED. For the sake of my own sanity, all technical documentation regarding Write.as/WriteFreely has been moved to a dedicated repository.
See my 2020 reflectory post for a few more details.
As part of my continued exploration of Git as an editorial tool, I have done my best to make use of as many GitHub-specific features as possible.
The Psalms' Project Board tracks ideas, notetaking, research, documentation, drafting, revision, and extra-site discourse (like Tweets or HackerNews comments.) Its left-most column also documents style and technical changes to its code.
I've been using Issues to document just about anything, including all of the above, as well as any other specific subject involved (ex: an "official" wallpaper pack.)
Commits function as a chronological revision-tracker which I have indeed made use of in a few, particularly dire writing situations.
I've been slow at integrating the Wiki, but its uses - such as documenting specific editorial definitions - will continue to be expanded.
Discussions are an intriguing possibility for external feedback (stop by and say something! really!,) but explaining why my general audience should have a GitHub account to participate even if they have zero interest in dev shit is going to be difficult.
Within the code, you'll find my voice notes, an image library, and a variety of other miscellaneous associated files (better organization is coming.)
This section is currently a work-in-progress.
The Psalms (alternatively/interchangeably entitled Bilge) is a monobyline World Wide Web Blog written by David Blue (good morning!) observing and selectively amplifying the characters, organizations, and stories surrounding the most abrupt, profound, and spectacular communicative renaissance in the history of the human species.
Less abstractly, its beat is wholly digital, namely in tools (software, services, and methodologies) and culture (music, film, podcasts, and media) from a distinct lens established at good distance from California.
It is entirely written in public largely via this GitHub Repository, supplemented by experiments on a variety of other platforms, including (arguably) my Twitter account.
David Blue
I proudly use Write.as as my blog's CMS. I am relatively new to Git and GitHub, but it occurred to me that a repository would be a great place to track technical changes and even versions/revisions of drafts.
To "install" my theme on your own Writeas blog, copy and paste the contents of Custom CSS.css and Custom Javascript.js into the respective "Custom CSS" and "Custom Javascript" fields in your blog's customization menu.
See: "Customizing Writeas"
The Psalms is proudly hosted by Write.as - a new sort of blogging content management system built atop Markdown and maintained by a company which explicitly shares my commitment to a better, Open web.
A somewhat-outdated version of this site's theme is listed among others in Writeas' official themes list. The full, up-to-date CSS and JS can be found below and on in this GitHub repository, which I created in November, 2020 as an experiment in using Git to track editorial changes. (That means you can see current in-progress drafts!)
Body Text: Adobe Caslon Pro
Nav/Headers/Other: Proxima Nova & Variations
@import url('https://use.typekit.net/kst2rrh.css');
body {
font-family: adobe-caslon-pro, serif !important;
font-weight: 400;
font-style: normal;
background-color: #FFF4E6;
}
/* old background-color: #f2f2f2 */
#blog-title a {
font-family: proxima-nova-condensed, sans-serif;
font-weight: 900;
font-style: normal;
/* font-style:bold !important; */
color: #00006b;
}
header nav a {
font-family: proxima-nova-condensed, sans-serif !important;
font-weight: 900;
font-size: 1.2em;
}
header p.description {
/* font-style: italic; */
font-family: proxima-nova-condensed, sans-serif !important;
font-weight: 700;
line-height: 200% !important;
color: #00006b !important;
font-size: 1em;
margin-left: inherit;
margin-right: inherit;
}
body#collection header {
margin-bottom: 1em !important;
}
header nav a {
color: #00006b;
font-family: proxima-nova-condensed, sans-serif;
font-weight: 900;
/* margin-bottom: 1em; */
}
body,
article {
font-family: adobe-caslon-pro, serif !important;
font-weight: 400;
line-height: 155%;
font-size: 1.1em !important;
color: #000000;
padding-left: 0.5rem;
padding-right: 0.5rem;
/* margin-top:1rem !important; */
}
body,
article a:link {
color: #00006b;
}
body,
article a:visited {
color: #FF0000;
}
h1 {
color: #00006b !important;
font-family: proxima-nova-condensed, sans-serif;
font-weight: 900;
font-size: 2em !important;
}
h2 {
color: #00006b !important;
font-family: proxima-nova-condensed, sans-serif;
font-weight: 700;
font-size: 1.4em !important;
}
h3 {
color: #1c0021 !important;
font-family: proxima-nova-extra-condensed, sans-serif;
font-weight: 600;
font-size: 1.3em !important;
}
h4 {
color: #1c0021 !important;
font-family: proxima-nova-condensed, sans-serif;
font-size: 1em !important;
}
h5 {
color: #1c0021 !important;
font-family: proxima-nova-condensed, sans-serif;
font-size: 1em !important;
}
h6 {
color: #1c0021 !important;
font-family: proxima-nova-condensed, sans-serif;
font-size: .85em !important;
}
code {
/* background-color:#f7ff85 !important; */
/* border: 1px solid #da2573 !important;
border-radius: 1px !important; */
font-size: 0.85em !important;
color: #1c0021 !important;
font-family: proxima-nova-condensed, sans-serif;
font-weight: 400;
/* padding: 0px 0px 0px 0px !important; */
}
body #post pre, body#collection pre, body#post pre, body#subpage pre {
background: #FFFdeb; !important;
border: 1px solid #da2573 !important;
border-radius: 1px !important;
font-size: 0.85em !important;
color: #1c0021 !important;
font-family: proxima-nova-condensed, sans-serif;
font-weight: 400;
/* padding: 0px 0px 0px 0px !important; */
}
.post-title a:visited,
.post-title a:link {
font-family: proxima-nova-condensed, sans-serif !important;
font-weight: 900;
color: #00006b !important;
font-size: 1.7rem !important;
}
body#post article time.dt-published,
body#subpage article time.dt-published {
font-family: proxima-nova-condensed, sans-serif !important;
color: #00006b !important;
font-size: 1rem !important;
}
body footer nav {
font-family: proxima-nova-condensed, sans-serif !important;
color: #00006b;
}
blockquote {
font-family: proxima-nova-condensed, sans-serif;
font-weight: 400;
color: #333333 !important;
border-left: 2.5px solid #00006b !important;
}
table {
background-color: #FFFdeb !important;
font-size: 0.8em !important;
line-height: 1.2em;
color: #1c0021 !important;
font-family: proxima-nova-condensed, sans-serif;
font-weight: 400;
border: 1px solid #f43f32 !important;
border-radius: 1px !important;
}
article table td, article table th {
border: 1px solid !important;
border-color: #da2573 !important;
}
.gist {
font-family: proxima-nova-condensed, sans-serif !important;
font-weight: 400 !important;
font-size: 18px !important;
}
.gist .gist-meta {
font-family: proxima-nova-extra-condensed, sans-serif !important;
font-weight: 600 !important;
color: #1c0021 !important;
}
.gist, .gist article, .gist article p {
font-family: proxima-nova-condensed, sans-serif !important;
font-weight: 400 !important;
}
.gist .gist-file .gist-data {
background: #FFFdeb; !important;
border: 1px solid #da2573 !important;
border-radius: 1px !important;
font-size: 0.85em !important;
color: #1c0021 !important;
font-family: proxima-nova-condensed, sans-serif !important;
font-weight: 400;
}
.gist, .gist article, .gist article p {
white-space: normal !important;
}
/* .gist .gist-hr {
display: hide !important;
} */
hr {
border: 2px solid red;
}
body footer a.home:link,
body footer a.home:visited {
color: #00006b;
}
.action {
font-family: proxima-nova-condensed, sans-serif;
}
nav#manage ul a {
color: #00006b;
}
nav#paging a {
color: #00006b !important;
font-family: proxima-nova-condensed, sans-serif !important;
}
a.bt {
background-color: #0d0d0d !important;
color: #00006b !important;
}
a.hashtag {
font-family: proxima-nova-condensed, sans-serif;
font-weight: 700;
color: #00006b !important;
}
body#collection #wrapper time,
body#subpage #wrapper time,
body#post article time.dt-published,
body#subpage article time.dt-published {
font-family: proxima-nova-condensed, sans-serif;
font-weight: 700;
font-size: 0.95em;
color: #00006b !important;
}
.custom-nav {
text-align: center;
font-size: 0.85em;
text-transform: uppercase;
font-family: proxima-nova-condensed, sans-serif;
font-weight: 700;
color: red;
}
.custom-nav a:link,
.custom-nav a:visited,
.custom-nav a:hover,
.custom-nav a:active {
color: #00006b;
}
.custom-nav a:hover,
.custom-nav a:active {
text-decoration: underline;
}
#subscribe-btn {
border: 1px #FF0000;
background: #00006b;
font-family: proxima-nova-condensed, sans-serif;
font-weight: 700;
font-size: 1em;
color: #FFF4E6;
}
#emailsub {
font-family: proxima-nova-condensed, sans-serif !important;
font-weight: 700;
}
.footnote, .footnote-ref {
font-family: proxima-nova-condensed, sans-serif !important;
font-weight: 700;
/* margin-left:2.5px; */
color: #da2573 !important;
font-size: 1.1em;
text-decoration:underline #FF0000;
}
.footnote-ref {
margin-left:25px;
}
.footnote-ref-text {
font-family: proxima-nova-condensed, sans-serif !important;
font-weight: 400;
color: #1c0021 !important;
font-size: 1em;
border-top: #00006b dotted 1px;
}
var topP = document.createElement("p");
//topP.style.textAlign = "center";
topP.innerHTML = '<hr><div class="custom-nav"><a rel="me" href="https://mastodon.social/@DavidBlue">Mastodon</a> ※ <a href="https://twitter.com/NeoYokel">Twitter</a> ※ <a href="https://discord.gg/4hdQcVd">Discord</a> ※ <a href="https://github.com/extratone/bilge">GitHub</a> ※ <a href="https://gist.github.com/extratone/140a11428b5dd1dda500b3928e0438b1">License</a></div>';
var cont = document.getElementById("wrapper");
if (cont !== null) {
// Add to blog index and tag pages
cont.appendChild(topP);
} else {
// Add to individual blog post page
cont = document.getElementById("post-body");
cont.insertAdjacentHTML("afterend", topP.outerHTML);
}
// src: https://platform.twitter.com/widgets.js
// src: https://hypothes.is/embed.js
window.hypothesisConfig = function () {
return {
"openSidebar": false,
"theme": "clean",
branding: {
appBackgroundColor: '#e6f7ff',
ctaBackgroundColor: '#da2573',
ctaTextColor: '#00006b',
selectionFontFamily: 'Georgia, serif'
}
};
};
// Footnote hyperlinks in the body.
var notePattern = /\[\^(\d+)\]/g;
var noteText = "<a name=\"fn$1\"></a><sup><a class=\"footnote\" href=\"#fnref$1\">$1</a></sup>";
// Footnote references at the bottom.
var refPattern = /\[(\d+)\](.*)/g;
var refText = "<a name=\"fnref$1\"></a><sup><a class=\"footnote-ref\" href=\"#fn$1\">$1</a></sup><span class=\"footnote-ref-text\">$2</span>";
var postContent = document.getElementById("post-body").innerHTML;
postContent = postContent.replace(notePattern, noteText);
postContent = postContent.replace(refPattern, refText);
document.getElementById("post-body").innerHTML = postContent;