blogit
A tool for curating Common Mark and Markdown front matter and publishing to a staging blog directory.
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.5%) to scientific vocabulary
Keywords
Repository
A tool for curating Common Mark and Markdown front matter and publishing to a staging blog directory.
Basic Info
- Host: GitHub
- Owner: rsdoiel
- License: agpl-3.0
- Language: TypeScript
- Default Branch: main
- Homepage: https://rsdoiel.github.io/BlogIt
- Size: 604 KB
Statistics
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 6
- Releases: 0
Topics
Metadata Files
README.md
BlogIt
I've written various scripts and programs over the years for managing my personal website and blog. BlogIt is the latest incarnation taking over duties from the now venerable pttk. I've found increasingly there are good off the shelf options for software chores. Examples include PageFind and FlatLake. Between those two you have a turn key search system and a JSON API. FlatLake itself can turn your CommonMark front matter into an aggregated JSON API. This is particularly nice for implementing features like RSS feeds and sitemap XML files. The net result is the tools I've previously written for similar tasks are no longer needed. This lead to re-access what my old "blogit" tool did. Core features are as follows.
- Validation and curation of front matter in my posts
- A means, when ready, of copying those CommonMark documents into a blog directory tree.
BlogIt is now implemented in TypeScript and compiled to an executable via Deno. It is focused on curating the metadata around blog post and "publishing" it to a blog staging directory.
BlogIt blogging process
- Use my favorite edit to create CommonMark (Markdown) documents
- Use BlogIt to edit or curate the front matter and include any required code samples.
- Run FlatLake to render the JSON API
- Use JSON API to render the RSS feeds and sitemaps
- Render the CommonMark documents to HTML
- Run PageFind for search
- Review the staged site and deploy when ready
BlogIt Software structure
- mod.ts (used to generate the executable and to allow BlogIt to be used in other Deno+TypeScript projects)
- src
- blogit.ts (holds workflows for blogit tool)
- commonMarkDoc.ts (defines a simple object made of front matter and markdown content)
- editor.ts (allows you to launch a text editor to update the field in your front matter)
- frontMatter.ts (this does the real work of validation and curation of the front matter)
Presently the prototype is less than 2000 lines of TypeScript.
Installing BlogIt
BlogIt is in the early stage of development and not currently built for distribution. You can easily compile BlogIt using Deno.
Required software
- Git to clone the repository, https://github.com/rsdoiel/BlogIt
- Deno >= 2.4.2
Suggested Software
- CMTools >= v0.0.35 (used to generate CITATION.cff, version.ts, etc.)
- Pandoc >= 3.5 (used to produce documentation in HTML)
Also helpful if you use BlogIt to generate a blog website.
- PageFind, site search from HTML documents
- FlatLake, JSON API from Front Matter
- jq, nice for view JSON and checking for values
- htmlq, like
jqbut for HTML documents
Steps to build
- Clone the repository
- Change into the repository directory
- Run
deno task build - Check the the help
- Copy
./bin/blogit(or.\bin\blogit.exeon Windows) to someplace in your path (e.g.$HOME/.deno/bin)
~~~shell git clone https://github.com/rsdoiel/BlogIt cd BlogIt deno task build ./bin/blogit --help cp -v ./bin/blogit $HOME/.deno/bin/ blogit --version ~~~
Or for Windows 10/11 using PowerShell
~~~pwsh git clone https://github.com/rsdoiel/BlogIt cd BlogIt deno task build ./bin/blogit --help copy .\bin\blogit.exe $HOME.deno\bin\ blogit --version ~~~
Author
- R. S. Doiel, ORCID: 0000-0003-0900-6903
LICENSE
GNU Affero General Public License 3.0 or newer, see https://www.gnu.org/licenses/agpl-3.0.html#license-text
Questions and collaboration
Owner
- Name: R. S. Doiel
- Login: rsdoiel
- Kind: user
- Location: California
- Company: California Institute of Technology
- Website: https://rsdoiel.github.io
- Repositories: 149
- Profile: https://github.com/rsdoiel
I am a human. Once upon a time I wrote music and prose. I write software.
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
type: software
title: BlogIt
abstract: "__BlogIt__ is a command line program for curating front matter in CommonMark (Markdown) documents used in producing a blog. __BlogIt__ primary purpose is curating the fornt matter
posts. It also supports a preprocessor for handling markdown linked files as HTML linked files and code include blocks. Additional functionality includes editing, checking and
publishing the CommonMark document to a blog directory structure.
Here's an example of creating a blog from scratch while levaraging __BlogIt__.
~~~shell
# Pick an editor, example nano in the case
export EDITOR=nano
mkdir -p $HOME/Site/website/blog
cd $HOME/Site/website
# Create your first post
nano $HOME/Documents/FirstPost.md
# Create/curate the Front Matter for your first blog post
BlogIt edit $HOME/Documents/FirstPost.md
# Check to make sure everything is ready to go
BlogIt check $HOME/Documents/FirstPost.md
# Publishing into your blog's directory tree
BlogIt $HOME/Document/FirstPost.md
# See the blog post ready in your blog directory
tree blog
~~~
Run a Common Mark to HTML converter like Pandoc on the Common Mark files to produce HTML. Then you're ready to run [PageFind](https://pagefind.com) for search and
[FlatLake](https://flatlake.app) to render your blog's JSON API."
authors:
- family-names: Doiel
given-names: Robert
orcid: https://orcid.org/0000-0003-0900-6903
email: rsdoiel@gmail.com
contacts:
- family-names: Doiel
given-names: Robert
orcid: https://orcid.org/0000-0003-0900-6903
email: rsdoiel@gmail.com
repository-code: "https://github.com/rsdoiel/BlogIt"
version: 0.0.3
date-released: 2025-07-28
license-url: "https://www.gnu.org/licenses/agpl-3.0.html#license-text"
keywords:
- blog
- front matter
- CommonMark
- Markdown
CodeMeta (codemeta.json)
{
"@context": "https://w3id.org/codemeta/3.0",
"type": "SoftwareSourceCode",
"codeRepository": "https://github.com/rsdoiel/BlogIt",
"author": [
{
"id": "https://orcid.org/0000-0003-0900-6903",
"type": "Person",
"givenName": "Robert",
"familyName": "Doiel",
"email": "rsdoiel@gmail.com"
}
],
"maintainer": [
{
"id": "https://orcid.org/0000-0003-0900-6903",
"type": "Person",
"givenName": "Robert",
"familyName": "Doiel",
"email": "rsdoiel@gmail.com"
}
],
"dateCreated": "2025-07-12",
"dateModified": "2025-09-13",
"datePublished": "2025-09-13",
"description": "__BlogIt__ is a command line program for curating front matter in CommonMark (Markdown) documents used in producing a blog. __BlogIt__ primary purpose is curating the fornt matter \nposts. It also supports a preprocessor for handling markdown linked files as HTML linked files and code include blocks. Additional functionality includes editing, checking and \npublishing the CommonMark document to a blog directory structure.\n\nHere's an example of creating a blog from scratch while levaraging __BlogIt__.\n\n~~~shell\n# Pick an editor, example nano in the case\nexport EDITOR=nano\nmkdir -p $HOME/Site/website/blog\ncd $HOME/Site/website\n# Create your first post\nnano $HOME/Documents/FirstPost.md\n# Create/curate the Front Matter for your first blog post\nBlogIt edit $HOME/Documents/FirstPost.md\n# Check to make sure everything is ready to go\nBlogIt check $HOME/Documents/FirstPost.md\n# Publishing into your blog's directory tree\nBlogIt $HOME/Document/FirstPost.md\n# See the blog post ready in your blog directory\ntree blog\n~~~\n\nRun a Common Mark to HTML converter like Pandoc on the Common Mark files to produce HTML. Then you're ready to run [PageFind](https://pagefind.com) for search and \n[FlatLake](https://flatlake.app) to render your blog's JSON API. It also works with [antennaApp](https://rsdoiel.github.io/antennaApp).",
"keywords": [
"blog",
"front matter",
"CommonMark",
"Markdown"
],
"name": "BlogIt",
"license": "https://www.gnu.org/licenses/agpl-3.0.html#license-text",
"programmingLanguage": [
"TypeScript"
],
"runtimePlatform": "Deno >= 2.5.0",
"softwareRequirements": [
"Deno >= 2.5.0",
"Git >= 2.3"
],
"softwareSuggestions": [
"CMTools >= v0.0.40",
"Pandoc >= 3.6"
],
"version": "0.0.5",
"developmentStatus": "wip",
"issueTracker": "https://github.com/rsdoiel/BlogIt/issues",
"releaseNotes": "Added release process, now supporting easy command line install via curl or irm.",
"copyrightYear": 2025,
"copyrightHolder": "R. S. Doiel"
}
GitHub Events
Total
- Issues event: 4
- Issue comment event: 7
- Public event: 1
- Push event: 12
Last Year
- Issues event: 4
- Issue comment event: 7
- Public event: 1
- Push event: 12