diff --git a/Readme.md b/Readme.md index 4606465..5b73e2d 100644 --- a/Readme.md +++ b/Readme.md @@ -20,4 +20,4 @@ This is a bash script for creating a page in WordPress for each council. If a page for a council already exists, the page will be updated instead. The source of councils for this script is the "council_names.json" file. -The script needs the `jq` and `wp` tools. \ No newline at end of file +The script needs the [`jq`](https://jqlang.github.io/jq/), [`gomplate'](https://docs.gomplate.ca/), and [`wp`](https://wp-cli.org/) tools. \ No newline at end of file diff --git a/make-council-pages.sh b/make-council-pages.sh index d24b9a6..2d030fe 100644 --- a/make-council-pages.sh +++ b/make-council-pages.sh @@ -1,10 +1,11 @@ #!/bin/bash -# This script uses the wp and jq commands, make sure they are installed before running this script. +# This script uses the jq, wp, and gomplate commands, make sure they are installed before running this script. # The council_names.json file must contain a list of objects (one for each council). -# Each object must have a "shortName" field and a "wardNames" field. +# Each object must have the following fields: "shortName", "councilName", and "wardNames" # The "shortName" field must be a string. +# The "councilName" field must be a string. # The "wardNames" field must be a list of strings. JSON_FILE="council_names.json" @@ -17,15 +18,14 @@ function create_or_update_page() { short_name=$(echo "$council_block" | jq -r '.shortName') - # TODO: Generate better content! This just outputs the name of each ward. - content=$(echo "$council_block" | jq -r '.wardNames | .[]') + content=$(echo "$council_block" | jq -c | gomplate -d config=stdin:///in.json -f page-template) if [[ -n "$page_id" ]]; then echo "Update page $short_name (post $page_id)" - wp post update "$page_id" --post_content="$content" $WP_FLAGS + echo "$content" | wp post update "$page_id" --post_content="$content" $WP_FLAGS - else echo "Create page $short_name" - wp post create --post_type=page --post_title="$short_name" --post_status=publish --post_content="$content" $WP_FLAGS + echo "$content" | wp post create --post_type=page --post_title="$short_name" --post_status=publish $WP_FLAGS - fi } diff --git a/page-template b/page-template new file mode 100644 index 0000000..34dcc6f --- /dev/null +++ b/page-template @@ -0,0 +1,33 @@ + +

{{ (datasource "config").councilName }}

+ + +{{ range $index, $element := (datasource "config").wardNames }} + +

{{ $element }}

+ + + +
+ + {{ range seq 1 5 }} + +
+ +

Candidate {{.}}

+ + + +
+ + + +

Lorem Ipsum

+ +
+ + {{end}} + +
+ +{{end}} \ No newline at end of file