aboutsummaryrefslogtreecommitdiff
path: root/aux/workflow
diff options
context:
space:
mode:
Diffstat (limited to 'aux/workflow')
-rwxr-xr-xaux/workflow/TODOs.sh72
-rwxr-xr-xaux/workflow/assert-changelog.sh60
-rwxr-xr-xaux/workflow/assert-readme.sh75
-rwxr-xr-xaux/workflow/assert-todos.sh7
-rwxr-xr-xaux/workflow/commonmark.sh50
-rwxr-xr-xaux/workflow/dist.sh63
-rw-r--r--aux/workflow/preamble.md6
-rwxr-xr-xaux/workflow/public.sh63
-rwxr-xr-xaux/workflow/sign-tarballs.sh39
-rw-r--r--aux/workflow/style.css83
10 files changed, 391 insertions, 127 deletions
diff --git a/aux/workflow/TODOs.sh b/aux/workflow/TODOs.sh
index 80059ee..efc0b04 100755
--- a/aux/workflow/TODOs.sh
+++ b/aux/workflow/TODOs.sh
@@ -1,26 +1,59 @@
#!/bin/sh
set -eu
-mkdir -p public
-
-PROJECT_UC="$1"
-PROJECT="$2"
-MAILING_LIST="$3"
TLD="$(cat aux/tld.txt)"
+PROJECT_UC=
+while getopts 'n:N:m:o:' flag; do
+ case "$flag" in
+ n)
+ PROJECT="$OPTARG"
+ ;;
+ N)
+ PROJECT_UC="$OPTARG"
+ ;;
+ m)
+ MAILING_LIST="$OPTARG"
+ ;;
+ o)
+ OUTDIR="$OPTARG"
+ ;;
+ *)
+ exit 2
+ ;;
+ esac
+done
+shift $((OPTIND - 1))
+
+assert_arg() {
+ if [ -z "$1" ]; then
+ echo "Missing $2" >&2
+ exit 2
+ fi
+}
+
+assert_arg "${PROJECT:-}" '-n PROJECT'
+assert_arg "${MAILING_LIST:-}" '-m MAILING_LIST'
+assert_arg "${OUTDIR:-}" '-o OUTDIR'
+
+if [ -z "${PROJECT_UC:-}" ]; then
+ PROJECT_UC="$PROJECT"
+fi
-TODOS_REGEX='s/^## (TODO|DOING|WAITING|MEETING|INACTIVE|NEXT|CANCELLED|DONE) (.*) \{#(.*?)\}$/## <a href="#\3"><span class="\1">\1<\/span> \2<\/a>\n<span class="header-anchor" id="\3">#\3<\/span>\n/'
-TAGS_REGEX='s/tag:([\w-]+)/<span class="tag">\1<\/span>/g'
+# shellcheck disable=1004
+IDS_REGEX='s:^## \(TODO\|DOING\|WAITING\|MEETING\|INACTIVE\|NEXT\|CANCELLED\|DONE\|WONTFIX\) \(.*\) {#\(.*\)}\(.*\)$:## <a href="#\3"><span class="\1">\1</span> \2</a>\4\
+<pre class="header-anchor" id="\3">#\3</pre>\
+:g'
+TAGS_REGEX='s|tag:\([a-z0-9-]*\)|<span class="tag">\1</span>|g'
-sed -e "s:@PROJECT_UC@:$PROJECT_UC:g" \
- -e "s:@PROJECT@:$PROJECT:g" \
- -e "s:@MAILING_LIST@:$MAILING_LIST:g" \
- -e "s:@TLD@:$TLD:g" \
- < aux/workflow/preamble.md | \
- printf \
- '%s\n\n%s' \
- "$(cat -)" \
- "$(perl -pe "$TODOS_REGEX" TODOs.md | perl -pe "$TAGS_REGEX")" | \
+cat aux/workflow/preamble.md TODOs.md |
+ sed \
+ -e "s:@PROJECT_UC@:$PROJECT_UC:g" \
+ -e "s:@PROJECT@:$PROJECT:g" \
+ -e "s:@MAILING_LIST@:$MAILING_LIST:g" \
+ -e "s:@TLD@:$TLD:g" \
+ -e "$IDS_REGEX" \
+ -e "$TAGS_REGEX" |
pandoc \
--toc \
--highlight-style pygments \
@@ -31,5 +64,8 @@ sed -e "s:@PROJECT_UC@:$PROJECT_UC:g" \
-r commonmark \
-w html \
-H aux/workflow/favicon.html \
- -H aux/workflow/style.css \
- > public/TODOs.html
+ -H aux/workflow/style.css |
+ sed \
+ -e 's:<a><a:<a:g' \
+ -e 's:</a></a>:</a>:g' \
+ > "$OUTDIR/TODOs.html"
diff --git a/aux/workflow/assert-changelog.sh b/aux/workflow/assert-changelog.sh
index 8e81f1f..ca86407 100755
--- a/aux/workflow/assert-changelog.sh
+++ b/aux/workflow/assert-changelog.sh
@@ -1,14 +1,64 @@
#!/bin/sh
set -eu
-PROJECT="$1"
+TLD="$(cat aux/tld.txt)"
+PROJECT_UC=
+while getopts 'n:N:' flag; do
+ case "$flag" in
+ n)
+ PROJECT="$OPTARG"
+ ;;
+ N)
+ PROJECT_UC="$OPTARG"
+ ;;
+ *)
+ exit 2
+ ;;
+ esac
+done
+shift $((OPTIND - 1))
-for VVERSION in $(git tag); do
- VERSION="${VVERSION#v}"
- DATE="$(git log -1 --format=%cd --date=short "$VVERSION")"
- CHANGELOG_ENTRY="# [$VERSION](https://git.euandreh.xyz/$PROJECT/commit/?id=$VVERSION) - $DATE"
+assert_arg() {
+ if [ -z "$1" ]; then
+ echo "Missing $2" >&2
+ exit 2
+ fi
+}
+
+assert_arg "${PROJECT:-}" '-n PROJECT'
+
+if [ -z "${PROJECT_UC:-}" ]; then
+ PROJECT_UC="$PROJECT"
+fi
+
+HOMEPAGE_LINK="Changelog for [$PROJECT_UC](https://$TLD/$PROJECT/en/)."
+
+if ! grep -qF "$HOMEPAGE_LINK" CHANGELOG.md; then
+ echo "Missing link to homepage in CHANGELOG.md:" >&2
+ echo "$HOMEPAGE_LINK"
+ exit 1
+fi
+
+assert() {
+ DATE="$1"
+ VVERSION="$2"
+ VERSION="${2#v}"
+ CHANGELOG_ENTRY="$(printf \
+ '# [%s](https://git.euandreh.xyz/%s/commit/?id=%s) - %s' \
+ "$VERSION" "$PROJECT" "$VVERSION" "$DATE")"
if ! grep -qF "$CHANGELOG_ENTRY" CHANGELOG.md; then
echo "Missing '$CHANGELOG_ENTRY' entry from CHANGELOG.md" >&2
exit 1
fi
+}
+
+for VVERSION in $(git tag); do
+ DATE="$(git log -1 --format=%cd --date=short "$VVERSION")"
+ assert "$DATE" "$VVERSION"
+done
+
+# "$@" represents a list of tags to be also included in the verification.
+for VVERSION in "$@"; do
+ DATE="$(date '+%Y-%m-%d')"
+ assert "$DATE" "$VVERSION"
done
diff --git a/aux/workflow/assert-readme.sh b/aux/workflow/assert-readme.sh
index cef75dd..6635832 100755
--- a/aux/workflow/assert-readme.sh
+++ b/aux/workflow/assert-readme.sh
@@ -1,13 +1,35 @@
#!/bin/sh
set -eu
-mkdir -p public
-
-PROJECT="$1"
-MAILING_LIST="$2"
TLD="$(cat aux/tld.txt)"
+. aux/lib.sh
+
+while getopts 'n:m:' flag; do
+ case "$flag" in
+ n)
+ PROJECT="$OPTARG"
+ ;;
+ m)
+ MAILING_LIST="$OPTARG"
+ ;;
+ *)
+ exit 2
+ ;;
+ esac
+done
+shift $((OPTIND - 1))
+
+assert_arg() {
+ if [ -z "$1" ]; then
+ echo "Missing $2" >&2
+ exit 2
+ fi
+}
-EXPECTED="$(mktemp)"
+assert_arg "${PROJECT:-}" '-n PROJECT'
+assert_arg "${MAILING_LIST:-}" '-m MAILING_LIST'
+
+EXPECTED="$(mkstemp)"
cat <<EOF >> "$EXPECTED"
For running the extra development-only checks, run:
@@ -22,25 +44,45 @@ and for generating the documentation HTML and website, run:
$ make public
\`\`\`
+Send contributions to the [mailing list] via
+[\`git send-email\`](https://git-send-email.io/).
+
## Links
-- [home page](https://$TLD/$PROJECT/)
+- [homepage](https://$TLD/$PROJECT/en/)
- [source code](https://git.euandreh.xyz/$PROJECT/)
- [bug tracking](https://$TLD/$PROJECT/TODOs.html)
-- [mailing list](https://lists.sr.ht/~euandreh/$MAILING_LIST?search=%5B$PROJECT%5D)
+- [mailing list]
- [CI logs](https://$TLD/$PROJECT/ci.html)
-- [CHANGELOG](https://$TLD/$PROJECT/CHANGELOG.html)
+- [CHANGELOG](https://$TLD/$PROJECT/en/CHANGELOG.html)
+
+[mailing list]: https://lists.sr.ht/~euandreh/$MAILING_LIST?search=%5B$PROJECT%5D
EOF
-RELEASES_LIST="$(mktemp)"
-for version in $(git tag | perl -e 'print reverse <>'); do
- echo "- version [$version](https://git.euandreh.xyz/$PROJECT/snapshot/$PROJECT-$version.tar.gz) ([sig](https://git.euandreh.xyz/$PROJECT/snapshot/$PROJECT-$version.tar.gz.asc)), released in $(git log -1 --format=%cd --date=short "$version")" >> "$RELEASES_LIST"
+RELEASES_LIST="$(mkstemp)"
+add_release() {
+ DATE="$1"
+ VVERSION="$2"
+ echo "- [$VVERSION](https://git.euandreh.xyz/$PROJECT/commit/?id=$VVERSION) [$PROJECT-$VVERSION.tar.xz](https://git.euandreh.xyz/$PROJECT/snapshot/$PROJECT-$VVERSION.tar.xz) ([sig](https://git.euandreh.xyz/$PROJECT/snapshot/$PROJECT-$VVERSION.tar.xz.asc)) - $DATE" >> "$RELEASES_LIST"
+}
+
+for VVERSION in $(git tag); do
+ DATE="$(git log -1 --format=%cd --date=short "$VVERSION")"
+ add_release "$DATE" "$VVERSION"
+done
+
+# "$@" represents a list of tags to be also included in the verification.
+for VVERSION in "$@"; do
+ if ! git tag | grep -qF "$VVERSION"; then
+ DATE="$(date '+%Y-%m-%d')"
+ add_release "$DATE" "$VVERSION"
+ fi
done
if [ -s "$RELEASES_LIST" ]; then
printf '\n\n## Releases\n\n' >> "$EXPECTED"
- cat "$RELEASES_LIST" >> "$EXPECTED"
+ sort -r "$RELEASES_LIST" >> "$EXPECTED"
fi
cat <<EOF >> "$EXPECTED"
@@ -48,12 +90,15 @@ cat <<EOF >> "$EXPECTED"
## License
-The code is licensed under [GNU Affero General Public License v3.0 or later][AGPL-3.0-or-later] (AGPL-3.0-or-later).
+The code is licensed under
+[GNU Affero General Public License v3.0 or later][AGPL-3.0-or-later]
+(AGPL-3.0-or-later).
-[AGPL-3.0-or-later]: https://www.gnu.org/licenses/agpl-3.0.en.html
+[AGPL-3.0-or-later]: https://git.euandreh.xyz/$PROJECT/tree/COPYING
EOF
if ! tail -n "$(wc -l < "$EXPECTED")" README.md | diff - "$EXPECTED"; then
- echo 'Missing metadata at the end of README.md file'
+ echo 'Wrong metadata at the end of README.md file'
+ echo "See expected content at: $EXPECTED"
exit 1
fi
diff --git a/aux/workflow/assert-todos.sh b/aux/workflow/assert-todos.sh
index ca73b7f..c21ebb9 100755
--- a/aux/workflow/assert-todos.sh
+++ b/aux/workflow/assert-todos.sh
@@ -1,7 +1,8 @@
#!/bin/sh
set -eu
-if git grep FIXME | grep -v '^TODOs.md' | grep -v '^aux/workflow/assert-todos.sh'; then
+if git grep FIXME | grep -v '^TODOs.md' |
+ grep -v '^aux/workflow/assert-todos.sh'; then
echo "Found dangling FIXME markers on the project."
echo "You should write them down properly on TODOs.md."
exit 1
@@ -29,8 +30,8 @@ h2flag == 1 {
h2flag = 0
}
-/^## (TODO|DOING|WAITING|MEETING|INACTIVE|NEXT|CANCELLED|DONE)/ {
- if (match($0, / \{#.*?\}$/) == 0) {
+/^## (TODO|DOING|WAITING|MEETING|INACTIVE|NEXT|CANCELLED|DONE|WONTFIX)/ {
+ if (match($0, / \{#.*?\}.*$/) == 0) {
print "Missing ID for line " NR ":\n" $0
exitstatus = 1
}
diff --git a/aux/workflow/commonmark.sh b/aux/workflow/commonmark.sh
index 6016f51..6f5e59b 100755
--- a/aux/workflow/commonmark.sh
+++ b/aux/workflow/commonmark.sh
@@ -1,20 +1,42 @@
#!/bin/sh
set -eu
-mkdir -p public
+while getopts 'N:t:l:' flag; do
+ case "$flag" in
+ N)
+ PROJECT_UC="$OPTARG"
+ ;;
+ t)
+ TITLE="$OPTARG"
+ ;;
+ l)
+ THE_LANG="$OPTARG"
+ ;;
+ *)
+ exit 2
+ ;;
+ esac
+done
+shift $((OPTIND - 1))
-PROJECT_UC="$1"
-F="$2"
-OUT="${3:-${F%.*}.html}"
+assert_arg() {
+ if [ -z "$1" ]; then
+ echo "Missing $2" >&2
+ exit 2
+ fi
+}
+
+assert_arg "${PROJECT_UC:-}" '-N PROJECT_UC'
+assert_arg "${TITLE:-}" '-t TITLE'
+assert_arg "${THE_LANG:-}" '-l THE_LANG'
pandoc \
- --toc \
- --highlight-style pygments \
- --toc-depth=2 \
- -s \
- --metadata title="$PROJECT_UC - ${F%.*}" \
- --metadata lang=en \
- -r commonmark \
- -w html \
- -H aux/workflow/favicon.html \
- < "$F" > "public/$OUT"
+ --toc \
+ --highlight-style pygments \
+ --toc-depth=2 \
+ -s \
+ --metadata title="$PROJECT_UC - $TITLE" \
+ --metadata "lang=$THE_LANG" \
+ -r commonmark \
+ -w html \
+ -H aux/workflow/favicon.html
diff --git a/aux/workflow/dist.sh b/aux/workflow/dist.sh
index c061a04..15593f4 100755
--- a/aux/workflow/dist.sh
+++ b/aux/workflow/dist.sh
@@ -1,15 +1,55 @@
#!/bin/sh
set -eu
-DATE="$1"
-VVERSION="v$2"
-PROJECT="$3"
+PROJECT_UC=
+while getopts 'd:V:n:N:m:' flag; do
+ case "$flag" in
+ d)
+ DATE="$OPTARG"
+ ;;
+ V)
+ VVERSION="v$OPTARG"
+ ;;
+ n)
+ PROJECT="$OPTARG"
+ ;;
+ N)
+ PROJECT_UC="$OPTARG"
+ ;;
+ m)
+ MAILING_LIST="$OPTARG"
+ ;;
+ *)
+ exit 2
+ ;;
+ esac
+done
+shift $((OPTIND - 1))
+
+assert_arg() {
+ if [ -z "$1" ]; then
+ echo "Missing $2" >&2
+ exit 2
+ fi
+}
+
+assert_arg "${DATE:-}" '-d DATE'
+assert_arg "${VVERSION:-}" '-V VERSION'
+assert_arg "${PROJECT:-}" '-n PROJECT'
+assert_arg "${MAILING_LIST:-}" '-m MAILING_LIST'
+
+if [ -z "${PROJECT_UC:-}" ]; then
+ PROJECT_UC="$PROJECT"
+fi
if git show "$VVERSION" 1>/dev/null 2>/dev/null; then
echo "Version '$VVERSION' already exists." >&2
exit 1
fi
+sh aux/workflow/assert-changelog.sh -N "$PROJECT_UC" -n "$PROJECT" "$VVERSION"
+sh aux/workflow/assert-readme.sh -n "$PROJECT" -m "$MAILING_LIST" "$VVERSION"
+
if [ "$DATE" != "$(git log -1 --format=%cd --date=short HEAD)" ]; then
echo "Date '$DATE' is not up-to-date." >&2
exit 1
@@ -20,8 +60,21 @@ if [ "Release $VVERSION" != "$(git log --format=%B -1 HEAD | head -n1)" ]; then
exit 1
fi
-sh aux/workflow/assert-changelog.sh "$PROJECT"
+if ! (git diff --quiet && git diff --quiet --staged); then
+ echo 'Dirty repository.'
+ exit 1
+fi
git tag "$VVERSION"
-sh aux/workflow/sign-tarballs.sh "$PROJECT"
+sh aux/workflow/sign-tarballs.sh -n "$PROJECT"
+
+
+cat <<EOF >&2
+Now push the tag and the signature before pushing the commit:
+
+git push origin refs/notes/signatures/tar.xz -o skip-ci --no-verify
+git push --tags -o skip-ci --no-verify
+git push
+
+EOF
diff --git a/aux/workflow/preamble.md b/aux/workflow/preamble.md
index 30efe0b..ee32d58 100644
--- a/aux/workflow/preamble.md
+++ b/aux/workflow/preamble.md
@@ -1,11 +1,9 @@
# About
-TODOs for @PROJECT_UC@.
-
-See also [@TLD@/@PROJECT@/](https://@TLD@/@PROJECT@/) and [CI logs](https://@TLD@/@PROJECT@/ci.html).
+TODOs for [@PROJECT_UC@](https://@TLD@/@PROJECT@/en/).
Register a new one at
-[~euandreh/@MAILING_LIST@@lists.sr.ht](mailto:~euandreh/@MAILING_LIST@@lists.sr.ht?subject=%5B@PROJECT@%5D%20BUG%20or%20TASK%3A%20%3Cdescription%3E)
+<span id="new">[~euandreh/@MAILING_LIST@@lists.sr.ht](mailto:~euandreh/@MAILING_LIST@@lists.sr.ht?subject=%5B@PROJECT@%5D%20BUG%20or%20TASK%3A%20%3Cdescription%3E)</span>
and see [existing discussions](https://lists.sr.ht/~euandreh/@MAILING_LIST@?search=%5B@PROJECT@%5D).
*Você também pode escrever em português*.
diff --git a/aux/workflow/public.sh b/aux/workflow/public.sh
index 8ecb855..2276ed3 100755
--- a/aux/workflow/public.sh
+++ b/aux/workflow/public.sh
@@ -1,17 +1,60 @@
#!/bin/sh
set -eu
-PROJECT_UC="$1"
-PROJECT="$2"
-MAILING_LIST="$3"
+PROJECT_UC=
+while getopts 'n:N:m:o:l:' flag; do
+ case "$flag" in
+ n)
+ PROJECT="$OPTARG"
+ ;;
+ N)
+ PROJECT_UC="$OPTARG"
+ ;;
+ m)
+ MAILING_LIST="$OPTARG"
+ ;;
+ o)
+ OUTDIR="$OPTARG"
+ ;;
+ l)
+ LANGS="$OPTARG"
+ ;;
+ *)
+ exit 2
+ ;;
+ esac
+done
+shift $((OPTIND - 1))
-sh aux/workflow/TODOs.sh "$PROJECT_UC" "$PROJECT" "$MAILING_LIST"
-sh aux/workflow/commonmark.sh "$PROJECT" README.md index.html ||:
+assert_arg() {
+ if [ -z "$1" ]; then
+ echo "Missing $2" >&2
+ exit 2
+ fi
+}
-if [ -f CHANGELOG.md ]; then
- sh aux/workflow/commonmark.sh "$PROJECT" CHANGELOG.md
-fi
+assert_arg "${PROJECT:-}" '-n PROJECT'
+assert_arg "${MAILING_LIST:-}" '-m MAILING_LIST'
+assert_arg "${OUTDIR:-}" '-o OUTDIR'
+assert_arg "${LANGS:-}" '-l LANGS'
+PROJECT_UC="${PROJECT_UC:-$PROJECT}"
-sh aux/ci/report.sh "$PROJECT"
+mkdir -p "$OUTDIR"
-cp aux/workflow/favicon.* public/
+sh aux/workflow/TODOs.sh \
+ -N "$PROJECT_UC" -n "$PROJECT" -m "$MAILING_LIST" -o "$OUTDIR"
+
+for lang in $LANGS; do
+ mkdir -p "$OUTDIR/$lang/"
+ sh aux/workflow/commonmark.sh -N "$PROJECT" -t README -l "$lang" \
+ < "README.$lang.md" > "$OUTDIR/$lang/index.html"
+ sh aux/workflow/commonmark.sh -N "$PROJECT" -t CHANGELOG -l "$lang" \
+ < "CHANGELOG.$lang.md" > "$OUTDIR/$lang/CHANGELOG.html"
+ cp aux/workflow/favicon.svg aux/workflow/favicon.png "$OUTDIR/$lang"
+done
+
+ln -fs en/index.html "$OUTDIR/index.html"
+ln -fs en/CHANGELOG.html "$OUTDIR/CHANGELOG.html"
+cp aux/workflow/favicon.svg aux/workflow/favicon.png "$OUTDIR"
+
+sh aux/ci/report.sh -n "$PROJECT" -o "$OUTDIR"
diff --git a/aux/workflow/sign-tarballs.sh b/aux/workflow/sign-tarballs.sh
index 8de6ac4..295619c 100755
--- a/aux/workflow/sign-tarballs.sh
+++ b/aux/workflow/sign-tarballs.sh
@@ -1,17 +1,38 @@
#!/bin/sh
set -eu
-PROJECT="$1"
+while getopts 'n:' flag; do
+ case "$flag" in
+ n)
+ PROJECT="$OPTARG"
+ ;;
+ *)
+ exit 2
+ ;;
+ esac
+done
+shift $((OPTIND -1))
+
+assert_arg() {
+ if [ -z "$1" ]; then
+ echo "Missing $2" >&2
+ exit 2
+ fi
+}
+
+assert_arg "${PROJECT:-}" '-n PROJECT'
+
-SIGNATURES="$(git notes --ref=refs/notes/signatures/tar.gz list | cut -d\ -f2)"
+SIGNATURES="$(git notes --ref=refs/notes/signatures/tar.xz list | cut -d\ -f2)"
for tag in $(git tag); do
COMMIT="$(git rev-list -n1 "$tag")"
- if ! echo "$SIGNATURES" | grep -qF "$COMMIT"; then
- echo "Adding missing signature to $tag" >&2
- git notes --ref=refs/notes/signatures/tar.gz add -f -C "$(
- git archive --format tar.gz --prefix "$PROJECT-${tag#v}/" "$tag" |
- gpg --output - --armor --detach-sign |
- git hash-object -w --stdin
- )" "$tag"
+ if echo "$SIGNATURES" | grep -qF "$COMMIT"; then
+ continue
fi
+ echo "Adding missing signature to $tag" >&2
+ git notes --ref=refs/notes/signatures/tar.xz add -C "$(
+ git archive --format tar.xz --prefix "$PROJECT-$tag/" "$tag" |
+ gpg --output - --armor --detach-sign |
+ git hash-object -w --stdin
+ )" "$tag"
done
diff --git a/aux/workflow/style.css b/aux/workflow/style.css
index d7935d0..d72991e 100644
--- a/aux/workflow/style.css
+++ b/aux/workflow/style.css
@@ -1,46 +1,41 @@
<style>
- hr {
- background-color: #ccc;
- }
-
- div.header-anchor {
- opacity: 0.5;
- }
-
- span.tag {
- font-family: monospace;
- font-size: 70%;
- background-color: lightgray;
- padding: 3px;
- border-radius: 5px;
- }
-
- /*
- Replicate colors from:
- https://git.euandreh.xyz/dotfiles/tree/spacemacs.el?id=fcd9f9c4ef399d45d54927382dc1cdde251ebb0a#n866
- */
-
- .TODO {
- color: brown;
- }
-
- .DOING {
- color: yellowgreen;
- }
-
- .WAITING, .MEETING {
- color: gray;
- }
-
- .INACTIVE {
- color: orange;
- }
-
- .NEXT {
- color: red;
- }
-
- .CANCELLED, .DONE {
- color: green;
- }
+ hr {
+ background-color: #ccc;
+ }
+
+ .header-anchor {
+ opacity: 0.5;
+ }
+
+ .tag {
+ font-family: monospace;
+ font-size: 70%;
+ background-color: lightgray;
+ padding: 3px;
+ border-radius: 5px;
+ }
+
+ .TODO {
+ color: brown;
+ }
+
+ .DOING {
+ color: yellowgreen;
+ }
+
+ .WAITING, .MEETING {
+ color: orange;
+ }
+
+ .INACTIVE {
+ color: gray;
+ }
+
+ .NEXT {
+ color: red;
+ }
+
+ .CANCELLED, .DONE, .WONTFIX {
+ color: green;
+ }
</style>