{"id":13137,"date":"2025-04-18T20:30:14","date_gmt":"2025-04-18T18:30:14","guid":{"rendered":"https:\/\/monodes.com\/predaelli\/?p=13137"},"modified":"2025-04-18T20:30:16","modified_gmt":"2025-04-18T18:30:16","slug":"bssg-bash-static-site-generator","status":"publish","type":"post","link":"https:\/\/monodes.com\/predaelli\/2025\/04\/18\/bssg-bash-static-site-generator\/","title":{"rendered":"BSSG &#8211; Bash Static Site Generator"},"content":{"rendered":"\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<h2 class=\"wp-block-heading\"><em><a href=\"https:\/\/bssg.dragas.net\/\">BSSG &#8211; Bash Static Site Generator<\/a><\/em><\/h2>\n\n\n\n<p>A simple, performant static site generator in Bash for personal journals\/blogs with 50+ themes, i18n, SEO, parallel builds &amp; more.<\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p class=\"excerpt\">BSSG &#8211; Bash Static Site Generator A simple, performant static site generator in Bash for personal journals\/blogs with 50+ themes, i18n, SEO, parallel builds &amp; more.<\/p>\n<p class=\"more-link-p\"><a class=\"more-link\" href=\"https:\/\/monodes.com\/predaelli\/2025\/04\/18\/bssg-bash-static-site-generator\/\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"federated","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[14,46],"tags":[260],"class_list":["post-13137","post","type-post","status-publish","format-standard","hentry","category-software-libero","category-web","tag-bash"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6daft-3pT","jetpack-related-posts":[{"id":9904,"url":"https:\/\/monodes.com\/predaelli\/2022\/12\/10\/learn-how-to-use-bash-for-loop-in-shell-scripts\/","url_meta":{"origin":13137,"position":0},"title":"Learn How to Use Bash For Loop in Shell Scripts","author":"Paolo Redaelli","date":"2022-12-10","format":false,"excerpt":"A little promemoria For Loops in Shell Scripts Bash For Loop with Ranges #!\/bin\/bash for n in {1..7}; do echo $n done #!\/bin\/bash for n in {1..7..2}; do echo $n done Bash For Loops with Arrays #!\/bin\/bash fruits=(\"blueberry\" \"peach\" \"mango\" \"pineapple\" \"papaya\") for n in ${fruits[@]}; do echo $n done\u2026","rel":"","context":"In &quot;Documentations&quot;","block_context":{"text":"Documentations","link":"https:\/\/monodes.com\/predaelli\/category\/documentations\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":11554,"url":"https:\/\/monodes.com\/predaelli\/2024\/04\/03\/how-to-replace-string-in-bash-5-methods-linuxsimply\/","url_meta":{"origin":13137,"position":1},"title":"How to Replace String in Bash? [5 Methods] &#8211; LinuxSimply","author":"Paolo Redaelli","date":"2024-04-03","format":"quote","excerpt":"In bash scripting, the replacement of string is important because it allows you to modify a variable and the text of a file. It also helps in file and text processing and to validate user input. To replace a string in bash, check the following methods: Using Parameter expansion: ${String\/pattern\/replacement}\u2026","rel":"","context":"In &quot;Tricks&quot;","block_context":{"text":"Tricks","link":"https:\/\/monodes.com\/predaelli\/category\/documentations\/tricks\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":6447,"url":"https:\/\/monodes.com\/predaelli\/2020\/01\/13\/bash-ifs-marcobertorello-it\/","url_meta":{"origin":13137,"position":2},"title":"Bash $IFS | MarcoBertorello.it","author":"Paolo Redaelli","date":"2020-01-13","format":false,"excerpt":"Lo sapevo che c'era una soluzione semplice per gestire i file con spazi nel nome. Grazie, $IFS | MarcoBertorello per avermi fatto scoprire $IFS!","rel":"","context":"In &quot;Senza categoria&quot;","block_context":{"text":"Senza categoria","link":"https:\/\/monodes.com\/predaelli\/category\/senza-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3766,"url":"https:\/\/monodes.com\/predaelli\/2018\/02\/08\/how-can-i-escape-white-space-in-a-bash-loop-list-stack-overflow\/","url_meta":{"origin":13137,"position":3},"title":"How can I escape white space in a bash loop list? &#8211; Stack Overflow","author":"Paolo Redaelli","date":"2018-02-08","format":"link","excerpt":"I find this nice and elegant. The other proposed solutions may handle files with newline in their name, but currently I see such file names as nonsense find . -type d | while read file; do echo $file; done However, doesn't work if the file-name contains newlines. The above is\u2026","rel":"","context":"In &quot;Documentations&quot;","block_context":{"text":"Documentations","link":"https:\/\/monodes.com\/predaelli\/category\/documentations\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":13986,"url":"https:\/\/monodes.com\/predaelli\/2025\/09\/09\/eleventy-is-a-simpler-static-site-generator\/","url_meta":{"origin":13137,"position":4},"title":"Eleventy is a simpler static site generator","author":"Paolo Redaelli","date":"2025-09-09","format":"link","excerpt":"Eleventy is a simpler static site generator","rel":"","context":"In &quot;Javascript&quot;","block_context":{"text":"Javascript","link":"https:\/\/monodes.com\/predaelli\/category\/javascript\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":11660,"url":"https:\/\/monodes.com\/predaelli\/2024\/05\/23\/static-site-generators-and-headless-cms\/","url_meta":{"origin":13137,"position":5},"title":"Static site generators and headless CMS","author":"Paolo Redaelli","date":"2024-05-23","format":false,"excerpt":"A List of Static Site Generators A list of headless content management systems Most of them are Free as in Freedom software. From The Beginner\u2019s Guide to Headless CMSes","rel":"","context":"In &quot;Web&quot;","block_context":{"text":"Web","link":"https:\/\/monodes.com\/predaelli\/category\/web\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/cdn.sanity.io\/images\/o0o2tn5x\/production\/3cd8107cccc1c65b18a5ae5fba35ee6eece821ed-1200x820.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/cdn.sanity.io\/images\/o0o2tn5x\/production\/3cd8107cccc1c65b18a5ae5fba35ee6eece821ed-1200x820.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/cdn.sanity.io\/images\/o0o2tn5x\/production\/3cd8107cccc1c65b18a5ae5fba35ee6eece821ed-1200x820.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/cdn.sanity.io\/images\/o0o2tn5x\/production\/3cd8107cccc1c65b18a5ae5fba35ee6eece821ed-1200x820.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/cdn.sanity.io\/images\/o0o2tn5x\/production\/3cd8107cccc1c65b18a5ae5fba35ee6eece821ed-1200x820.png?resize=1050%2C600&ssl=1 3x"},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/13137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/comments?post=13137"}],"version-history":[{"count":0,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/13137\/revisions"}],"wp:attachment":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/media?parent=13137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/categories?post=13137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/tags?post=13137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}