# How to publish your site on compost.party These are the steps I took to publish my site on compost.party. -- Create a directory: $ mkdir compost Then change directory: $ cd compost Create a file for your homepage: $ touch index.md then edit that file using the text editor nano, for example: $ nano index.md Type some text. Save. Now add a CSS file called style.css: $ touch style.css You can copy mine if you want: html, body{ font-family:monospace; font-size: 1em; color: black; background: white; max-width: 600px; margin-left: auto; margin-right: auto; padding: 5px; } /* unvisited link */ a:link { color: lightseagreen; } /* visited link */ a:visited { color: hotpink; } /* mouse over link */ a:hover { color: magenta; } /* selected link */ a:active { color: pink; } You can also add a favicon. This, you can find online; there are websites that help you generate a favicon for your site. Add a header. Create a file header.html, and populate the file with: whatever title you want Now we add a script to convert the markdown file index.md into an HTML file index.html. To do so, add a file build.sh containing the following script: ``` # (c) 2025 w. kennedy #!/bin/bash echo Welcome to the markdown to html converter. markdown_file="$1" echo file is "$markdown_file" if [[ -z "$markdown_file" ]]; then printf "Usage: %s \n" "$0" exit 1 fi # output_dir="$(dirname "$markdown_file")" # output_file="$output_dir/${markdown_file%%.*}.html" output_file="${markdown_file%%.*}.html" pandoc "$markdown_file" -f markdown+hard_line_breaks \ -t html5 -H "header.html" \ --template="default.html5" \ -o "$output_file" --verbose --highlight-style=breezedark printf "markdown_file: %s\n" "$markdown_file" printf "output_file: %s\n" "$output_file" echo We did it capitan, we converted to html. ``` Make this script executable: $ chmod +x build.sh Download Pandoc: $ sudo apt install pandoc Run the script $ ./build.sh index.md You should have a file called index.html, check: $ ls Now that you have index.html, you want to send it to the server. To do so, I use the programme rsync. We will create a file with the command you need to send your file to the server. $ touch deploy.sh In this file add the following command: $ rsync -vz index.html style.css "$@" -e 'ssh -p23' --progress username@compost.party:/var/www/username.compost.party/html Substitute username for your actual username. Make the script executable: $ chmod +x deploy.sh To publish your site to the server, run: $ ./deploy If you want to add pages to your site, run: $ ./deploy page.html PS: you might need to edit the template Pandoc uses; I don't remember. If you need to do so, you can find the file default.html5 on the repository of Pandoc, and then customise it. Feel free to email me if you have questions. You can find my email address on the flyers published on https://yctct.compost.party.