Overview
What Markdown Numbered List does
Numbers non-empty lines, preserves nesting in four-space levels, and restarts numbering inside each nested level.
| Category | Markdown |
|---|---|
| Action type | JavaScript |
| Result | Replace or copy text |
| Internet | Not required |
Example
Action and outcome
| Action | Outcome |
|---|---|
| Markdown Numbered ListSelected text: Draft Review Publish | 1. Draft 1. Review 2. Publish |
Workflow
Use Markdown Numbered List
Follow these steps to turn selected lines into a numbered Markdown list with ActionClip.
- Select the text you want to use.
- Choose Markdown Numbered List from ActionClip.
- Review the result, then replace the selection or copy the new text.
Before you add it
Requirements and privacy
- Before you start: No setup required.
- Your selected text: Runs locally in ActionClip’s JavaScript sandbox. Selected text does not leave your Mac.
Inspect before installing
Action configuration
The definition below is included so you can inspect how the action works before downloading it.
JavaScript definition
function run(selected_text) {
const counters = [];
let previousLevel = 0;
const output = [];
selected_text.split(/\r\n?|\n/).forEach((line) => {
if (/^[ \t]*$/.test(line)) return;
const originalIndent = (line.match(/^[ \t]*/) || [""])[0];
const expandedIndent = originalIndent.replace(/\t/g, " ");
let level = Math.floor(expandedIndent.length / 4);
level = Math.min(level, previousLevel + 1);
const content = line
.slice(originalIndent.length)
.replace(/^(?:(?:[-+*]|\d+[.)])\s+)?(?:\[[ xX]\]\s+)?/, "")
.trim();
counters.length = level + 1;
counters[level] = (counters[level] || 0) + 1;
output.push(" ".repeat(level) + counters[level] + ". " + content);
previousLevel = level;
});
return output.join("\n");
}