
Security News
Oxlint Introduces Type-Aware Linting Preview
Oxlint’s new preview brings type-aware linting powered by typescript-go, combining advanced TypeScript rules with native-speed performance.
Livetext is a markup format that is a throwback to the old, old days of text formatters such as roff It's very flexible, and it is extensible in Ruby.
It is far from mature or full-featured, but it is usable. Runeblog uses Livetext, along with some custom definitions, to try to ease the formatting of a blog entry.
Think of them as multiple separate blogs with the same backend. Why would you want to do this? Maybe you wouldn't, but I do.
The purpose is to present different "faces" to different audiences. In my case, my computing-related stuff would go into one view, and my hometown-related things would go into another. There might be a view that only old friends or close friends can see. There might be a view purely for reviews of music, books, and movies.
But the important points are these:
There is a command-line tool called blog which is a REPL (read-eval-print loop). Note that this tool is a curses-based environment (mainly so it can display menus and such to the user).
The help message looks like this:
Basics: Views: ------------------------------------------- ------------------------------------------- h, help This message change view VIEW Change current view q, quit Exit the program cv VIEW Change current view v, version Print version information new view Create a new view clear Clear screen list views List all views available lsv Same as: list views
Posts: Advanced: ------------------------------------------- ------------------------------------------- p, post Create a new post config Edit various system files new post Same as p, post customize (BUGGY) Change set of tags, extra views lsp, list posts List posts in current view preview Look at current (local) view in browser lsd, list drafts List all drafts (all views) browse Look at current (published) view in browser delete ID [ID...] Remove multiple posts rebuild Regenerate all posts and relink undelete ID Undelete a post publish Publish (current view) edit ID Edit a post ssh Login to remote server import ASSETS Import assets (images, etc.) manage WIDGET Manage content/layout of a widget
But when you first run the REPL, it checks for an existing blog repository under the .blogs directory. If it doesn't find one, it asks whether you want to create a new blog repo. Enter y for yes.
You'll then enter the editor (vim for now) to add configuration info to the global.lt3 file.
The next thing you should do is to create at least one view of your own. Use the new view command for this. Note that the current view is displayed as part of the prompt.
[no view] new view mystuff
[mystuff]
To create a new post, use the new post command (also abbreviated post or simply p). You will be prompted for a title:
[mystuff] new post
Title: This is my first post
Then you'll be sent into the editor (currently vim but can be others):
FIXME wizard? (publishing one-time setup - server, ssh keys, etc.) preview... publish... browse... (and so on)
To be continued
You can use the config command to choose a file to edit.
The meaning and interaction of these files will be explained later. FIXME
When you make changes, rebuild will detect these and regenerate whatever files are needed.
Subject to change TBD: Add details
.blogs/views/mystuff/ ├── assets ├── posts ├── remote │ ├── assets │ ├── banner │ ├── etc │ ├── permalink │ └── widgets │ ├── ad │ ├── links │ ├── news │ ├── pages │ └── pinned └── themes └── standard ├── banner ├── blog ├── etc ├── post └── widgets ├── ad ├── bydates ├── links ├── news ├── pages ├── pinned ├── search ├── sitemap └── tag-cloud
FIXME add details here
TBD
Bold, italics, etc. single, double, bracketed
Common dot commands)
.debug .say .nopara .quit indented dot-commands
Using external files
.mixin .include .copy .seek
Predefined functions and variables
$File etc.
TBD
Dot commands - the basics
.mixin liveblog .post .title .views .tags .teaser
Dot commands - more advanced
.image .inset .dropcap .pin
Variables and functions
$view, etc. $\[date is undefined], $\[link is undefined], etc.
Dot commands, variables, functions
.def/.end .set .variables .heredoc .func
Defining these in Ruby
Meta tags, etc. CSS
Widgets
pages links pinned faq sitemap news etc.
Banner and navbar
Creating your own widgets
Special tags/functions coming "soon"
github, gitlab, gist wikipedia youtube, vimeo twitter, instagram etc.
TBD
TBD
FAQs
Unknown package
We found that runeblog demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oxlint’s new preview brings type-aware linting powered by typescript-go, combining advanced TypeScript rules with native-speed performance.
Security News
A new site reviews software projects to reveal if they’re truly FOSS, making complex licensing and distribution models easy to understand.
Security News
Astral unveils pyx, a Python-native package registry in beta, designed to speed installs, enhance security, and integrate deeply with uv.