diff options
| -rw-r--r-- | metadata/categories.json | 6 | ||||
| -rw-r--r-- | metadata/metadata.yaml | 8 | ||||
| -rwxr-xr-x | scripts/build_content.sh | 34 | ||||
| -rw-r--r-- | templates/base.html | 6 | ||||
| -rw-r--r-- | templates/categoryRef.html | 6 | ||||
| -rw-r--r-- | templates/feed.xml | 27 |
6 files changed, 69 insertions, 18 deletions
diff --git a/metadata/categories.json b/metadata/categories.json new file mode 100644 index 0000000..9ce0815 --- /dev/null +++ b/metadata/categories.json | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | { | ||
| 2 | "blog": { | ||
| 3 | "tes": "Testing", | ||
| 4 | "per": "Personal" | ||
| 5 | } | ||
| 6 | } | ||
diff --git a/metadata/metadata.yaml b/metadata/metadata.yaml index 00a8571..7d30a2a 100644 --- a/metadata/metadata.yaml +++ b/metadata/metadata.yaml | |||
| @@ -2,6 +2,9 @@ site: | |||
| 2 | title: Volpeon's Den | 2 | title: Volpeon's Den |
| 3 | logo: \\\\/ | 3 | logo: \\\\/ |
| 4 | 4 | ||
| 5 | author: | ||
| 6 | - name: Volpeon | ||
| 7 | |||
| 5 | menus: | 8 | menus: |
| 6 | main: | 9 | main: |
| 7 | - id: index | 10 | - id: index |
| @@ -10,8 +13,3 @@ menus: | |||
| 10 | - id: blog | 13 | - id: blog |
| 11 | label: Blog | 14 | label: Blog |
| 12 | url: /blog/ | 15 | url: /blog/ |
| 13 | |||
| 14 | categories: | ||
| 15 | blog: | ||
| 16 | tes: Testing | ||
| 17 | per: Personal | ||
diff --git a/scripts/build_content.sh b/scripts/build_content.sh index 12de8c8..fc5ddea 100755 --- a/scripts/build_content.sh +++ b/scripts/build_content.sh | |||
| @@ -25,6 +25,8 @@ get_filters() { | |||
| 25 | 25 | ||
| 26 | FILTERS=$(get_filters) | 26 | FILTERS=$(get_filters) |
| 27 | 27 | ||
| 28 | CATEGORIES=$(cat "$METADATA_DIR/categories.json") | ||
| 29 | |||
| 28 | target_filename() { | 30 | target_filename() { |
| 29 | filename=$1 | 31 | filename=$1 |
| 30 | filename=${filename#"$CONTENT_DIR"} | 32 | filename=${filename#"$CONTENT_DIR"} |
| @@ -98,6 +100,8 @@ get_subpages_meta() { | |||
| 98 | not_empty: false \ | 100 | not_empty: false \ |
| 99 | }") | 101 | }") |
| 100 | 102 | ||
| 103 | categories="{}" | ||
| 104 | |||
| 101 | if [ ${#child_pages[@]} -ne 0 ]; then | 105 | if [ ${#child_pages[@]} -ne 0 ]; then |
| 102 | #echo -e "\033[0;90m[////////]\033[0m Child pages:" | 106 | #echo -e "\033[0;90m[////////]\033[0m Child pages:" |
| 103 | 107 | ||
| @@ -108,6 +112,8 @@ get_subpages_meta() { | |||
| 108 | 112 | ||
| 109 | metadata=$(metadata "$file") | 113 | metadata=$(metadata "$file") |
| 110 | 114 | ||
| 115 | section=$(get_section "$file") | ||
| 116 | |||
| 111 | url_rel=$(target_url_rel "$basedir" "$file" "html") | 117 | url_rel=$(target_url_rel "$basedir" "$file" "html") |
| 112 | url_abs=$(target_url_abs "$file" "html") | 118 | url_abs=$(target_url_abs "$file" "html") |
| 113 | url_full="${SITE%/}$url_abs" | 119 | url_full="${SITE%/}$url_abs" |
| @@ -119,6 +125,13 @@ get_subpages_meta() { | |||
| 119 | date_rfc3339=$(date -d "$date" --rfc-3339=seconds | sed 's/ /T/') | 125 | date_rfc3339=$(date -d "$date" --rfc-3339=seconds | sed 's/ /T/') |
| 120 | fi | 126 | fi |
| 121 | 127 | ||
| 128 | category=$(echo "$metadata" | jq -r .category) | ||
| 129 | category_name="" | ||
| 130 | |||
| 131 | if [ "$section" != "" ] && [ "$category" != "" ]; then | ||
| 132 | category_name=$(echo "$CATEGORIES" | jq -r .$section.$category) | ||
| 133 | fi | ||
| 134 | |||
| 122 | metadata=$(echo "$metadata" | jq ". * { \ | 135 | metadata=$(echo "$metadata" | jq ". * { \ |
| 123 | date: { \ | 136 | date: { \ |
| 124 | yyyy_mm_dd: \"$date\", \ | 137 | yyyy_mm_dd: \"$date\", \ |
| @@ -140,16 +153,23 @@ get_subpages_meta() { | |||
| 140 | 153 | ||
| 141 | pages=$(echo "$pages" | jq ".by_year.\"$date_year\" += [ $metadata ]") | 154 | pages=$(echo "$pages" | jq ".by_year.\"$date_year\" += [ $metadata ]") |
| 142 | fi | 155 | fi |
| 143 | done | ||
| 144 | 156 | ||
| 145 | pages=$(echo "$pages" \ | 157 | if [ "$category" != "" ]; then |
| 146 | | jq ".all |= (sort_by(.date) | reverse) \ | 158 | categories=$(echo "$categories" | jq ".$category = { name: \"$category_name\", count: (.$category.count + 1) } ") |
| 147 | | .by_year |= (to_entries | sort_by(.key) | reverse \ | 159 | fi |
| 148 | | .[].value |= (sort_by(.date) | reverse))") | 160 | done |
| 149 | fi | 161 | fi |
| 150 | 162 | ||
| 163 | pages=$(echo "$pages" \ | ||
| 164 | | jq ".all |= (sort_by(.date) | reverse) \ | ||
| 165 | | .by_year |= (to_entries | sort_by(.key) | reverse \ | ||
| 166 | | .[].value |= (sort_by(.date) | reverse))") | ||
| 167 | |||
| 168 | categories=$(echo "$categories" | jq ". | to_entries | sort_by(.key)") | ||
| 169 | |||
| 151 | echo "{}" | jq ". + { \ | 170 | echo "{}" | jq ". + { \ |
| 152 | pages: $pages \ | 171 | pages: $pages, \ |
| 172 | categories: $categories | ||
| 153 | }" | 173 | }" |
| 154 | } | 174 | } |
| 155 | 175 | ||
| @@ -163,7 +183,7 @@ handle () { | |||
| 163 | 183 | ||
| 164 | meta_file=$(mktemp) | 184 | meta_file=$(mktemp) |
| 165 | 185 | ||
| 166 | metadata=$(metadata "$file") | 186 | metadata=$(metadata "$1") |
| 167 | metadata=$(echo "[ \ | 187 | metadata=$(echo "[ \ |
| 168 | $metadata, \ | 188 | $metadata, \ |
| 169 | $(get_subpages_meta "$1") \ | 189 | $(get_subpages_meta "$1") \ |
diff --git a/templates/base.html b/templates/base.html index 9574d08..4b8ea1e 100644 --- a/templates/base.html +++ b/templates/base.html | |||
| @@ -6,8 +6,8 @@ | |||
| 6 | <meta name="viewport" content="width=device-width, initial-scale=1" /> | 6 | <meta name="viewport" content="width=device-width, initial-scale=1" /> |
| 7 | <meta name="robots" content="noindex" /> | 7 | <meta name="robots" content="noindex" /> |
| 8 | <link rel="shortcut icon" href="/favicon.ico" /> | 8 | <link rel="shortcut icon" href="/favicon.ico" /> |
| 9 | $for(author-meta)$ | 9 | $for(author)$ |
| 10 | <meta name="author" content="$author-meta$" /> | 10 | <meta name="author" content="$it.name$$if(it.email)$ <$it.email$>$endif$" /> |
| 11 | $endfor$ | 11 | $endfor$ |
| 12 | $if(date-meta)$ | 12 | $if(date-meta)$ |
| 13 | <meta name="dcterms.date" content="$date-meta$" /> | 13 | <meta name="dcterms.date" content="$date-meta$" /> |
| @@ -53,7 +53,7 @@ $body$ | |||
| 53 | 53 | ||
| 54 | $if(section.is_blog)$ | 54 | $if(section.is_blog)$ |
| 55 | $if(pages.not_empty)$ | 55 | $if(pages.not_empty)$ |
| 56 | ${categories.blog:categoryRef()} | 56 | ${categoryRef()} |
| 57 | ${pagelistByYear()} | 57 | ${pagelistByYear()} |
| 58 | $endif$ | 58 | $endif$ |
| 59 | $endif$ | 59 | $endif$ |
diff --git a/templates/categoryRef.html b/templates/categoryRef.html index 5715fa8..58dc5fe 100644 --- a/templates/categoryRef.html +++ b/templates/categoryRef.html | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | $if(it)$ | 1 | $if(categories)$ |
| 2 | <ul class="c-hlist"> | 2 | <ul class="c-hlist"> |
| 3 | $for(it/pairs)$ | 3 | $for(categories)$ |
| 4 | <li class="c-hlist__item"><strong>$it.key/uppercase$</strong>: $it.value$</li> | 4 | <li class="c-hlist__item"><strong>$it.key/uppercase$</strong>: $it.value.name$ ($it.value.count$)</li> |
| 5 | $endfor$ | 5 | $endfor$ |
| 6 | </ul> | 6 | </ul> |
| 7 | $endif$ | 7 | $endif$ |
diff --git a/templates/feed.xml b/templates/feed.xml index 68d2fc4..f1439eb 100644 --- a/templates/feed.xml +++ b/templates/feed.xml | |||
| @@ -5,6 +5,14 @@ | |||
| 5 | <link href="$url.full$"/> | 5 | <link href="$url.full$"/> |
| 6 | <updated>$feed.last_update.rfc3339$</updated> | 6 | <updated>$feed.last_update.rfc3339$</updated> |
| 7 | <id>$url.full$</id> | 7 | <id>$url.full$</id> |
| 8 | $for(author)$ | ||
| 9 | <author> | ||
| 10 | <name>$it.name$</name> | ||
| 11 | $if(it.email)$ | ||
| 12 | <email>$it.email$</email> | ||
| 13 | $endif$ | ||
| 14 | </author> | ||
| 15 | $endfor$ | ||
| 8 | 16 | ||
| 9 | $for(pages)$ | 17 | $for(pages)$ |
| 10 | $for(it.all)$ | 18 | $for(it.all)$ |
| @@ -12,6 +20,25 @@ | |||
| 12 | <entry> | 20 | <entry> |
| 13 | <id>$it.url.full$</id> | 21 | <id>$it.url.full$</id> |
| 14 | <title type="html"><![CDATA[$it.title$]]></title> | 22 | <title type="html"><![CDATA[$it.title$]]></title> |
| 23 | $if(it.author)$ | ||
| 24 | $for(it.author)$ | ||
| 25 | <author> | ||
| 26 | <name>$it.name$</name> | ||
| 27 | $if(it.email)$ | ||
| 28 | <email>$it.email$</email> | ||
| 29 | $endif$ | ||
| 30 | </author> | ||
| 31 | $endfor$ | ||
| 32 | $else$ | ||
| 33 | $for(author)$ | ||
| 34 | <author> | ||
| 35 | <name>$author.name$</name> | ||
| 36 | $if(author.email)$ | ||
| 37 | <email>$author.email$</email> | ||
| 38 | $endif$ | ||
| 39 | </author> | ||
| 40 | $endfor$ | ||
| 41 | $endif$ | ||
| 15 | <link href="$it.url.full$"/> | 42 | <link href="$it.url.full$"/> |
| 16 | <published>$it.date.rfc3339$</published> | 43 | <published>$it.date.rfc3339$</published> |
| 17 | <updated>$it.date.rfc3339$</updated> | 44 | <updated>$it.date.rfc3339$</updated> |
