fred
Version, currently 0.3.310 versions
github.com/linden-project/fred
Fred, a cli front matter editor
Nothing has been indexed for 0.3.3 yet. The tag is recorded, its shard.yml has not been read, so the manifest and dependency list below are empty because they are unknown rather than because they are absent.
Installation
# Add this to your shard.yml
dependencies:
fred:
github: linden-project/fred
version: ~> 0.3.3Then run:
shards installshard.yml
No shard.yml has been indexed for 0.3.3. You can read it on the repository.
Dependencies
Unknown: the shard.yml for this version has not been read yet.
README
This README is the one indexed from the repository at its latest ref, not from the tag for this version.
Fred, a front matter cli editor
Fred is a cli utility for precisely editing YAML-nodes inside the front matter of a markdown file.
Features
- Unset key
- Rename the key of a scalar node
- Replace string value of scalar node
- Toggle bool value of scalar node
- Scaler node at 1st level are automatically defined as variable
- Substitute variables inside scalar node when it's defined lines earlier
- Recursive mode for processing files inside directories
- Dry run mode
Installation
With Homebrew
- brew tap mipmip/homebrew-crystal
- brew install fred
From Source
- git clone https://github.com/linden-project/fred
- cd fred
- make
Usage
Options:
--help Show this help.
Sub Commands:
echo echo display one node by key
set_bool_val Set boolean value for front matter key
set_string_val Set string value for front matter key
unset_key Remove key from front matter
replace_key Find and replace key in front matter
replace_string_val Find and replace a string value in front matter
toggle_bool_val Toggle a bool value in front matter, if true set false, if false or missing set true
replace_1st_level_vars replace variables found on 1st level in other levels in inside front matter
replace_includes replace includes inside front matter
process_functions replace $FORMAT and $INCLUDE inside front matter
version version
Variable usage
Every scalar node as 1st level can be used as replace value inside lower of deeper scalar values. See example:
You have a file crystal-rules.md with the following contents.
---
title: Crystal Rules
category: Programming languages
date: "15 august 2019"
meta_info:
abstract: $FORMAT This post is is written on {date} in the category {category}.
file_name_pdf: $FORMAT /Users/mipmip/{date}-{title}.pdf
---
Did I tell you ...
When you run fred replace_1st_level_vars the file will look like this:
---
title: Crystal Rules
category: Programming languages
date: "15 august 2019"
meta_info:
abstract: This post is is written on 15 august in the category Programming Languages.
file_name_pdf: $FORMAT /Users/mipmip/15 august-Crystal Rules.pdf
---
Did I tell you ...
Example integration in Vim with Pandocomatic
nmap ,t :AsyncRun /usr/bin/fred replace_1st_level_vars -d % > /tmp/pandotemp.md && rvm 2.5.1 do pandocomatic -b -i /tmp/pandotemp.md<CR>
Syntax
| Tag | Arguments | Example | Description |
|---|---|---|---|
| $FORMAT | String with vars inside {} | $FORMAT written by {author1} and {author2} | Replaces {author1} and {author2} with the values of the 1st level yaml keys author1: and author2: |
| $INCLUDE | Include path to YAML file | $INCLUDE ./blog_layout_config.yml | Imports external YAML at the include location. Path can be absolute or relative to the markdown file |
Development
Run Specs
make run_spec
make run_coverage
Build
make build
Contributing
- Fork it (https://github.com/your-github-user/fred/fork)
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request
Contributors
- Pim Snel - creator and maintainer
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
0.3.3- Tagged
- Jan 12, 2026
- Commit
39a4e7f22c01- Indexed
- not yet
Dependents
No indexed shard depends on this one yet.
Repository
github.com/linden-project/fred
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 15, 2026
- Synced
- Aug 15, 2026
- Versions
- 10