https://github.com/skx/org-tag-cloud
Easily maintain a tag-cloud of org-mode tags.
https://github.com/skx/org-tag-cloud
emacs-lisp org-mode tag-cloud tags
Last synced: 3 months ago
JSON representation
Easily maintain a tag-cloud of org-mode tags.
- Host: GitHub
- URL: https://github.com/skx/org-tag-cloud
- Owner: skx
- License: gpl-3.0
- Created: 2022-02-07T16:55:59.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2026-03-23T18:23:15.000Z (3 months ago)
- Last Synced: 2026-03-24T16:37:59.450Z (3 months ago)
- Topics: emacs-lisp, org-mode, tag-cloud, tags
- Language: Emacs Lisp
- Homepage:
- Size: 44.9 KB
- Stars: 2
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# org-tag-cloud
This package is designed to allow you to maintain a "tag cloud"
of all the tags stored within a particular `org-mode` file.
The cloud is rendered as an `org-mode` table and can be updated
automatically when the file is saved. The rendered table will
make each tag clickable via a newly-installed protocol handler
for links of the form `[[tag::foo]]`.
## Example Output
This repository contains `example.org` showing the rendered result,
but note that you will need to click the "RAW" link to view it in
a readable format:
* https://raw.githubusercontent.com/skx/org-tag-cloud/refs/heads/master/example.org
## Package Overview
The cloud is rendered as an `org-mode` table and can be updated
automatically when the file is saved. The rendered table will
make each tag clickable via a newly-installed protocol handler
for links of the form `[[tag::foo]]`.
There are three main functions of interest:
* `org-tag-cloud-insert` - Insert a tag cloud at the current point.
* `org-tag-cloud-update` - Update an existing cloud.
* `org-tag-cloud-save-hook` - Something to add to save-hook to automate updates when files are saved.
The main configuration value is `org-tag-cloud-name-first`, when this is non-nil the tag-name is listed in the first column, followed by the frequency as the second column. When nil the ordering is reversed.
Sorting defaults to showing the table with the highest frequencies first, but you might prefer to show by alphabetical tag. See example.org, or the package for how to set that.
## Usage
Require the package and add the save hook for org-mode files.
If you're doing this the old-school way, having saved a copy of
the package file to a directory upon your `load-path` you can configure
it like so:
(require 'org-tag-cloud)
(add-hook 'before-save-hook #'org-tag-cloud-save-hook)
If you're using `use-package` you would instead prefer something
like this which has the same result:
(use-package org-tag-cloud
:after org
:straight t
:hook
(before-save-hook . org-tag-cloud-save-hook))
Once loaded you'll find you can browse tag-search results via a new
protocol `[[tag:foo]]` - this will open a buffer showing all the entries
you have tagged with the value `foo`.
## Limitations
* There can only be one tag cloud in a specific document.
* The tag cloud refers only to the current file, you cannot make a cloud of tags used across multiple `org-mode' files.