32 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			32 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
#
 | 
						|
# Script to create a markdown file containing links to all filenames prefixed
 | 
						|
# with "<prefix>-":
 | 
						|
#
 | 
						|
# Example usage: generate-md-index "book" "Books" "my-books.md"
 | 
						|
#
 | 
						|
#   Creates a file my-books.md in the wiki with a title of "Books" This file
 | 
						|
#   contains titled links to every markdown file starting with "books-"
 | 
						|
 | 
						|
wiki="$HOME/.wiki"
 | 
						|
prefix="$1"
 | 
						|
title="$2"
 | 
						|
filename="$3"
 | 
						|
 | 
						|
if [ $# == 2 ]; then
 | 
						|
    echo "$0 <prefix> <title> <filename>"
 | 
						|
    exit 0
 | 
						|
fi
 | 
						|
 | 
						|
find "$wiki"/"$prefix"-*.md -printf "%f\n"        > "$wiki/scripts/$prefix/$prefix-links"
 | 
						|
find "$wiki"/"$prefix"-*.md -exec head -n 1 {} \; > "$wiki/scripts/$prefix/$prefix-titles"
 | 
						|
 | 
						|
sed -i -e 's/^/(/' "$wiki/scripts/$prefix/$prefix-links" -e 's/$/)/'  # Wrap links in parentheses
 | 
						|
sed -i -e 's/^/[/' "$wiki/scripts/$prefix/$prefix-titles" -e 's/$/]/' # Wrap titles in square brackets
 | 
						|
sed -i -e 's/^\[#\ /* \[/'  "$wiki/scripts/$prefix/$prefix-titles"    # Remove '#' and add list bullet
 | 
						|
 | 
						|
echo -e "# $title\n" > "$wiki/$filename" # Clear file and add markdown title
 | 
						|
paste "$wiki/scripts/$prefix/$prefix-titles" "$wiki/scripts/$prefix/$prefix-links" -d "" >> "$wiki/$filename"   # Concatenate & append to file
 | 
						|
paste "$wiki/scripts/$prefix/$prefix-titles" "$wiki/scripts/$prefix/$prefix-links" -d ""
 |