This commit is contained in:
@@ -8,7 +8,7 @@ BEGIN {
|
|||||||
if ($0 ~ /^<pre>/) {
|
if ($0 ~ /^<pre>/) {
|
||||||
if (!in_pre) in_pre = 1
|
if (!in_pre) in_pre = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!in_pre && $0 ~ /^:[ \t]+[^ \t]/) {
|
if (!in_pre && $0 ~ /^:[ \t]+[^ \t]/) {
|
||||||
if (!in_dl) {
|
if (!in_dl) {
|
||||||
in_dl = 1
|
in_dl = 1
|
||||||
@@ -24,7 +24,7 @@ BEGIN {
|
|||||||
def_text = $0
|
def_text = $0
|
||||||
sub(/^:[ \t]+/, "", def_text)
|
sub(/^:[ \t]+/, "", def_text)
|
||||||
print "<dd>" def_text "</dd>"
|
print "<dd>" def_text "</dd>"
|
||||||
|
|
||||||
if ($0 ~ /<\/pre>/) {
|
if ($0 ~ /<\/pre>/) {
|
||||||
if (in_pre) in_pre = 0
|
if (in_pre) in_pre = 0
|
||||||
}
|
}
|
||||||
@@ -46,7 +46,7 @@ BEGIN {
|
|||||||
prev_line = $0
|
prev_line = $0
|
||||||
has_prev = 1
|
has_prev = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($0 ~ /<\/pre>/) {
|
if ($0 ~ /<\/pre>/) {
|
||||||
if (in_pre) in_pre = 0
|
if (in_pre) in_pre = 0
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ BEGIN { fn_count = 0 }
|
|||||||
text = substr($0, id_end + 2)
|
text = substr($0, id_end + 2)
|
||||||
# Trim leading space
|
# Trim leading space
|
||||||
sub(/^[ \t]+/, "", text)
|
sub(/^[ \t]+/, "", text)
|
||||||
|
|
||||||
fn_ids[++fn_count] = id
|
fn_ids[++fn_count] = id
|
||||||
fn_texts[id] = text
|
fn_texts[id] = text
|
||||||
next
|
next
|
||||||
@@ -21,19 +21,19 @@ BEGIN { fn_count = 0 }
|
|||||||
END {
|
END {
|
||||||
for (i = 1; i <= line_count; i++) {
|
for (i = 1; i <= line_count; i++) {
|
||||||
line = lines[i]
|
line = lines[i]
|
||||||
|
|
||||||
for (j = 1; j <= fn_count; j++) {
|
for (j = 1; j <= fn_count; j++) {
|
||||||
id = fn_ids[j]
|
id = fn_ids[j]
|
||||||
marker = "[^" id "]"
|
marker = "[^" id "]"
|
||||||
repl = "<sup><a href=\"#fn:" id "\" id=\"fnref:" id "\">" id "</a></sup>"
|
repl = "<sup><a href=\"#fn:" id "\" id=\"fnref:" id "\">" id "</a></sup>"
|
||||||
|
|
||||||
while ((pos = index(line, marker)) > 0) {
|
while ((pos = index(line, marker)) > 0) {
|
||||||
line = substr(line, 1, pos - 1) repl substr(line, pos + length(marker))
|
line = substr(line, 1, pos - 1) repl substr(line, pos + length(marker))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
print line
|
print line
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fn_count > 0) {
|
if (fn_count > 0) {
|
||||||
print "<hr />"
|
print "<hr />"
|
||||||
print "<section class=\"footnotes\">"
|
print "<section class=\"footnotes\">"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ BEGIN { in_code = 0; in_html_pre = 0 }
|
|||||||
{
|
{
|
||||||
if ($0 ~ /<pre>/) in_html_pre = 1
|
if ($0 ~ /<pre>/) in_html_pre = 1
|
||||||
if ($0 ~ /<\/pre>/) { in_html_pre = 0; if (in_code) { print "</code></pre>"; in_code = 0 }; print; next }
|
if ($0 ~ /<\/pre>/) { in_html_pre = 0; if (in_code) { print "</code></pre>"; in_code = 0 }; print; next }
|
||||||
|
|
||||||
if (!in_html_pre && $0 ~ /^(\t| )/) {
|
if (!in_html_pre && $0 ~ /^(\t| )/) {
|
||||||
if (!in_code) { printf "%s", "<pre><code>"; in_code = 1 }
|
if (!in_code) { printf "%s", "<pre><code>"; in_code = 1 }
|
||||||
sub(/^(\t| )/, "", $0)
|
sub(/^(\t| )/, "", $0)
|
||||||
@@ -10,7 +10,7 @@ BEGIN { in_code = 0; in_html_pre = 0 }
|
|||||||
print
|
print
|
||||||
next
|
next
|
||||||
}
|
}
|
||||||
|
|
||||||
if (in_code) {
|
if (in_code) {
|
||||||
print "</code></pre>"
|
print "</code></pre>"
|
||||||
in_code = 0
|
in_code = 0
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ BEGIN {
|
|||||||
# get indentation level
|
# get indentation level
|
||||||
match(line, /^[ \t]*/)
|
match(line, /^[ \t]*/)
|
||||||
indent = RLENGTH
|
indent = RLENGTH
|
||||||
|
|
||||||
if (depth == 0 || indent > cur_indent[depth]) {
|
if (depth == 0 || indent > cur_indent[depth]) {
|
||||||
depth++
|
depth++
|
||||||
cur_indent[depth] = indent
|
cur_indent[depth] = indent
|
||||||
|
|||||||
@@ -140,18 +140,18 @@ function css_highlight_line(line, m, prop, val) {
|
|||||||
match(line, /:[[:space:]]*/)
|
match(line, /:[[:space:]]*/)
|
||||||
sep_pos = RSTART
|
sep_pos = RSTART
|
||||||
sep_len = RLENGTH
|
sep_len = RLENGTH
|
||||||
|
|
||||||
pre_sep = substr(line, 1, sep_pos - 1)
|
pre_sep = substr(line, 1, sep_pos - 1)
|
||||||
sep = substr(line, sep_pos, sep_len)
|
sep = substr(line, sep_pos, sep_len)
|
||||||
post_sep = substr(line, sep_pos + sep_len)
|
post_sep = substr(line, sep_pos + sep_len)
|
||||||
|
|
||||||
match(pre_sep, /--?[A-Za-z0-9_-]+/)
|
match(pre_sep, /--?[A-Za-z0-9_-]+/)
|
||||||
prop_pos = RSTART
|
prop_pos = RSTART
|
||||||
prop_len = RLENGTH
|
prop_len = RLENGTH
|
||||||
|
|
||||||
indent = substr(pre_sep, 1, prop_pos - 1)
|
indent = substr(pre_sep, 1, prop_pos - 1)
|
||||||
prop_name = substr(pre_sep, prop_pos, prop_len)
|
prop_name = substr(pre_sep, prop_pos, prop_len)
|
||||||
|
|
||||||
if (match(post_sep, /;[[:space:]]*$/)) {
|
if (match(post_sep, /;[[:space:]]*$/)) {
|
||||||
val_part = substr(post_sep, 1, RSTART - 1)
|
val_part = substr(post_sep, 1, RSTART - 1)
|
||||||
suffix = substr(post_sep, RSTART)
|
suffix = substr(post_sep, RSTART)
|
||||||
@@ -159,11 +159,11 @@ function css_highlight_line(line, m, prop, val) {
|
|||||||
val_part = post_sep
|
val_part = post_sep
|
||||||
suffix = ""
|
suffix = ""
|
||||||
}
|
}
|
||||||
|
|
||||||
prop = "<span class=\"tok-prop\">" prop_name "</span>"
|
prop = "<span class=\"tok-prop\">" prop_name "</span>"
|
||||||
gsub(/var\(--[A-Za-z0-9_-]+\)/, "<span class=\"tok-var\">&</span>", val_part)
|
gsub(/var\(--[A-Za-z0-9_-]+\)/, "<span class=\"tok-var\">&</span>", val_part)
|
||||||
val = "<span class=\"tok-val\">" val_part "</span>"
|
val = "<span class=\"tok-val\">" val_part "</span>"
|
||||||
|
|
||||||
return indent prop sep val suffix
|
return indent prop sep val suffix
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -46,14 +46,9 @@ function mask(s, t) {
|
|||||||
while (match(substr(line, p), /`+/)) {
|
while (match(substr(line, p), /`+/)) {
|
||||||
pstart = p + RSTART - 1
|
pstart = p + RSTART - 1
|
||||||
plen = RLENGTH
|
plen = RLENGTH
|
||||||
if (plen >= 3) {
|
|
||||||
out = out substr(line, p, pstart - p + plen)
|
|
||||||
p = pstart + plen
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
# Found 1 or 2 backticks at pstart
|
# Found backtick sequence at pstart
|
||||||
# Search for closing marker
|
# Search for closing marker of same length
|
||||||
marker = substr(line, pstart, plen)
|
marker = substr(line, pstart, plen)
|
||||||
tail = substr(line, pstart + plen)
|
tail = substr(line, pstart + plen)
|
||||||
mpos = index(tail, marker)
|
mpos = index(tail, marker)
|
||||||
@@ -65,11 +60,11 @@ function mask(s, t) {
|
|||||||
p = pstart + plen
|
p = pstart + plen
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
# Found match!
|
# Found match!
|
||||||
content = substr(tail, 1, mpos - 1)
|
content = substr(tail, 1, mpos - 1)
|
||||||
out = out substr(line, p, pstart - p)
|
out = out substr(line, p, pstart - p)
|
||||||
if (plen == 2 && substr(content, 1, 1) == " " && substr(content, length(content), 1) == " ") {
|
if (plen >= 2 && substr(content, 1, 1) == " " && substr(content, length(content), 1) == " ") {
|
||||||
content = substr(content, 2, length(content) - 2)
|
content = substr(content, 2, length(content) - 2)
|
||||||
}
|
}
|
||||||
out = out "<code>" mask(content) "</code>"
|
out = out "<code>" mask(content) "</code>"
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ BEGIN { in_plain = 0; in_script_style = 0 }
|
|||||||
script_start = RSTART; script_len = RLENGTH
|
script_start = RSTART; script_len = RLENGTH
|
||||||
pos_style = match(tolower(tmp_line), /<style([ >]|$)/)
|
pos_style = match(tolower(tmp_line), /<style([ >]|$)/)
|
||||||
style_start = RSTART; style_len = RLENGTH
|
style_start = RSTART; style_len = RLENGTH
|
||||||
|
|
||||||
if (pos_script == 0 && pos_style == 0) {
|
if (pos_script == 0 && pos_style == 0) {
|
||||||
out2 = out2 tmp_line
|
out2 = out2 tmp_line
|
||||||
break
|
break
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ BEGIN {
|
|||||||
|
|
||||||
{
|
{
|
||||||
if ($0 ~ /<pre>/) in_pre = 1
|
if ($0 ~ /<pre>/) in_pre = 1
|
||||||
|
|
||||||
if (in_pre) {
|
if (in_pre) {
|
||||||
if (in_p) { print "</p>"; in_p = 0 }
|
if (in_p) { print "</p>"; in_p = 0 }
|
||||||
print
|
print
|
||||||
|
|||||||
@@ -18,17 +18,17 @@ BEGIN {
|
|||||||
if (title_end > 0) {
|
if (title_end > 0) {
|
||||||
title = substr(title_str, 1, title_end - 1)
|
title = substr(title_str, 1, title_end - 1)
|
||||||
gsub(/<[^>]+>/, "", title)
|
gsub(/<[^>]+>/, "", title)
|
||||||
|
|
||||||
# extract id
|
# extract id
|
||||||
id_start = match($0, /id="[^"]*"/)
|
id_start = match($0, /id="[^"]*"/)
|
||||||
if (id_start > 0) {
|
if (id_start > 0) {
|
||||||
id_str = substr($0, id_start + 4)
|
id_str = substr($0, id_start + 4)
|
||||||
id_end = index(id_str, "\"")
|
id_end = index(id_str, "\"")
|
||||||
id = substr(id_str, 1, id_end - 1)
|
id = substr(id_str, 1, id_end - 1)
|
||||||
|
|
||||||
# what tag? level
|
# what tag? level
|
||||||
level = substr($0, match($0, /<h[23]/) + 2, 1)
|
level = substr($0, match($0, /<h[23]/) + 2, 1)
|
||||||
|
|
||||||
if (level == "2") {
|
if (level == "2") {
|
||||||
toc_str = toc_str "<li class=\"toc-h2\"><a href=\"#" id "\">" title "</a></li>\n"
|
toc_str = toc_str "<li class=\"toc-h2\"><a href=\"#" id "\">" title "</a></li>\n"
|
||||||
} else if (level == "3") {
|
} else if (level == "3") {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
BEGIN {
|
BEGIN {
|
||||||
new_title = ENVIRON["AWK_NEW_TITLE"]
|
new_title = ENVIRON["AWK_NEW_TITLE"]
|
||||||
done = 0
|
done = 0
|
||||||
}
|
}
|
||||||
/^title[[:space:]]*=/ {
|
/^title[[:space:]]*=/ {
|
||||||
print "title = \"" new_title "\""
|
print "title = \"" new_title "\""
|
||||||
|
|||||||
32
kewt.sh
32
kewt.sh
@@ -320,10 +320,40 @@ if [ "$watch_mode" = "true" ]; then
|
|||||||
[ -z "$changed" ] && [ -f "$src/site.conf" ] && [ "$src/site.conf" -nt "$KEWT_TMPDIR/watch_mark" ] && changed="$src/site.conf"
|
[ -z "$changed" ] && [ -f "$src/site.conf" ] && [ "$src/site.conf" -nt "$KEWT_TMPDIR/watch_mark" ] && changed="$src/site.conf"
|
||||||
[ -z "$changed" ] && [ -f "$template" ] && [ "$template" -nt "$KEWT_TMPDIR/watch_mark" ] && changed="$template"
|
[ -z "$changed" ] && [ -f "$template" ] && [ "$template" -nt "$KEWT_TMPDIR/watch_mark" ] && changed="$template"
|
||||||
[ -z "$changed" ] && [ -d "$script_dir/styles" ] && changed="$(find "$script_dir/styles" -type f -newer "$KEWT_TMPDIR/watch_mark" 2>/dev/null | head -n 1)"
|
[ -z "$changed" ] && [ -d "$script_dir/styles" ] && changed="$(find "$script_dir/styles" -type f -newer "$KEWT_TMPDIR/watch_mark" 2>/dev/null | head -n 1)"
|
||||||
|
|
||||||
if [ -n "$changed" ]; then
|
if [ -n "$changed" ]; then
|
||||||
echo ""
|
echo ""
|
||||||
echo "Change detected, rebuilding..."
|
echo "Change detected, rebuilding..."
|
||||||
|
if [ "$clean_mode" = "true" ]; then
|
||||||
|
find "$out" -mindepth 1 -delete 2>/dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
|
load_config "./site.conf"
|
||||||
|
load_config "$src/site.conf"
|
||||||
|
|
||||||
|
asset_version=""
|
||||||
|
if [ "$versioning" = "true" ]; then
|
||||||
|
asset_version="?v=$(date +%s)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
template="$src/template.html"
|
||||||
|
[ -f "$template" ] || template="./template.html"
|
||||||
|
if [ ! -f "$template" ]; then
|
||||||
|
template="$KEWT_TMPDIR/default_template.html"
|
||||||
|
printf '%s\n' "$DEFAULT_TMPL" > "$template"
|
||||||
|
fi
|
||||||
|
|
||||||
|
nav=$(generate_nav "$src")
|
||||||
|
extra_links=$(nav_links_html)
|
||||||
|
if [ -n "$extra_links" ]; then
|
||||||
|
nav="$nav
|
||||||
|
$extra_links"
|
||||||
|
fi
|
||||||
|
if [ -n "$nav_extra" ]; then
|
||||||
|
nav="$nav
|
||||||
|
$nav_extra"
|
||||||
|
fi
|
||||||
|
|
||||||
build_site
|
build_site
|
||||||
touch "$KEWT_TMPDIR/watch_mark"
|
touch "$KEWT_TMPDIR/watch_mark"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ needs_rebuild() {
|
|||||||
[ -f "$src/site.conf" ] && [ "$src/site.conf" -nt "$out_file" ] && return 0
|
[ -f "$src/site.conf" ] && [ "$src/site.conf" -nt "$out_file" ] && return 0
|
||||||
[ -f "$template" ] && [ "$template" -nt "$out_file" ] && return 0
|
[ -f "$template" ] && [ "$template" -nt "$out_file" ] && return 0
|
||||||
[ -f "$script_dir/styles/$style.css" ] && [ "$script_dir/styles/$style.css" -nt "$out_file" ] && return 0
|
[ -f "$script_dir/styles/$style.css" ] && [ "$script_dir/styles/$style.css" -nt "$out_file" ] && return 0
|
||||||
|
[ -f "$script_dir/styles/$style.root.css" ] && [ "$script_dir/styles/$style.root.css" -nt "$out_file" ] && return 0
|
||||||
|
[ -f "$src/styles.root.css" ] && [ "$src/styles.root.css" -nt "$out_file" ] && return 0
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -59,11 +61,11 @@ eval "find \"$src\" \( $IGNORE_ARGS \) -prune -o -type d -print" | sort | while
|
|||||||
content_out_file="$out_dir/content.html"
|
content_out_file="$out_dir/content.html"
|
||||||
content_rel_url="/$rel_dir/content.html"
|
content_rel_url="/$rel_dir/content.html"
|
||||||
[ "$rel_dir" = "." ] && content_rel_url="/content.html"
|
[ "$rel_dir" = "." ] && content_rel_url="/content.html"
|
||||||
|
|
||||||
is_cw_content_page="true"
|
is_cw_content_page="true"
|
||||||
render_markdown "$md_file" "$is_home" "$target_url" > "$content_out_file"
|
render_markdown "$md_file" "$is_home" "$target_url" > "$content_out_file"
|
||||||
is_cw_content_page="false"
|
is_cw_content_page="false"
|
||||||
|
|
||||||
generate_content_warning_page "$fm_title" "$fm_content_warning" "$content_rel_url" "$target_url" "$out_dir/index.html" "false"
|
generate_content_warning_page "$fm_title" "$fm_content_warning" "$content_rel_url" "$target_url" "$out_dir/index.html" "false"
|
||||||
else
|
else
|
||||||
render_markdown "$md_file" "$is_home" "$target_url" > "$out_dir/index.html"
|
render_markdown "$md_file" "$is_home" "$target_url" > "$out_dir/index.html"
|
||||||
@@ -97,7 +99,7 @@ eval "find \"$src\" \( $IGNORE_ARGS \) -prune -o -type d -print" | sort | while
|
|||||||
find "$dir" ! -name "$(basename "$dir")" -prune ! -name ".*" -print | while read -r entry; do
|
find "$dir" ! -name "$(basename "$dir")" -prune ! -name ".*" -print | while read -r entry; do
|
||||||
name="${entry##*/}"
|
name="${entry##*/}"
|
||||||
case "$name" in
|
case "$name" in
|
||||||
template.html|site.conf|style.css|index.md) continue ;;
|
template.html|site.conf|style.css|styles.root.css|index.md) continue ;;
|
||||||
esac
|
esac
|
||||||
if [ -d "$entry" ]; then
|
if [ -d "$entry" ]; then
|
||||||
echo "${name}|- [${name}/](${name}/index.html)" >> "$temp_entries"
|
echo "${name}|- [${name}/](${name}/index.html)" >> "$temp_entries"
|
||||||
@@ -178,7 +180,7 @@ eval "find \"$src\" \( $IGNORE_ARGS \) -prune -o -type d -print" | sort | while
|
|||||||
echo "${name}|- [$name]($name)|$name|$name" >> "$temp_entries"
|
echo "${name}|- [$name]($name)|$name|$name" >> "$temp_entries"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ "$is_posts_dir" = "true" ]; then
|
if [ "$is_posts_dir" = "true" ]; then
|
||||||
LC_ALL=C sort $sort_args "$temp_entries" > "$KEWT_TMPDIR/sorted_entries_$$.txt"
|
LC_ALL=C sort $sort_args "$temp_entries" > "$KEWT_TMPDIR/sorted_entries_$$.txt"
|
||||||
cut -d'|' -f2 "$KEWT_TMPDIR/sorted_entries_$$.txt" >> "$temp_list"
|
cut -d'|' -f2 "$KEWT_TMPDIR/sorted_entries_$$.txt" >> "$temp_list"
|
||||||
@@ -210,7 +212,7 @@ eval "find \"$src\" \( $IGNORE_ARGS \) -prune -o -type d -print" | sort | while
|
|||||||
LC_ALL=C sort $sort_args "$temp_entries" | cut -d'|' -f2 >> "$temp_list"
|
LC_ALL=C sort $sort_args "$temp_entries" | cut -d'|' -f2 >> "$temp_list"
|
||||||
fi
|
fi
|
||||||
rm -f "$temp_entries"
|
rm -f "$temp_entries"
|
||||||
|
|
||||||
is_home="false"; [ "$dir" = "$src" ] && is_home="true"
|
is_home="false"; [ "$dir" = "$src" ] && is_home="true"
|
||||||
target_url="/$rel_dir/index.html"
|
target_url="/$rel_dir/index.html"
|
||||||
[ "$rel_dir" = "." ] && target_url="/index.html"
|
[ "$rel_dir" = "." ] && target_url="/index.html"
|
||||||
@@ -312,16 +314,16 @@ eval "find \"$src\" \( $IGNORE_ARGS \) -prune -o -type d -print" | sort | while
|
|||||||
else
|
else
|
||||||
fm_content_warning=""
|
fm_content_warning=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$fm_content_warning" ]; then
|
if [ -n "$fm_content_warning" ]; then
|
||||||
content_out_file="$out_dir/content.html"
|
content_out_file="$out_dir/content.html"
|
||||||
content_rel_url="/$rel_dir/content.html"
|
content_rel_url="/$rel_dir/content.html"
|
||||||
[ "$rel_dir" = "." ] && content_rel_url="/content.html"
|
[ "$rel_dir" = "." ] && content_rel_url="/content.html"
|
||||||
|
|
||||||
is_cw_content_page="true"
|
is_cw_content_page="true"
|
||||||
render_markdown "$temp_index" "$is_home" "$target_url" > "$content_out_file"
|
render_markdown "$temp_index" "$is_home" "$target_url" > "$content_out_file"
|
||||||
is_cw_content_page="false"
|
is_cw_content_page="false"
|
||||||
|
|
||||||
generate_content_warning_page "$fm_title" "$fm_content_warning" "$content_rel_url" "$target_url" "$out_dir/index.html" "false"
|
generate_content_warning_page "$fm_title" "$fm_content_warning" "$content_rel_url" "$target_url" "$out_dir/index.html" "false"
|
||||||
else
|
else
|
||||||
render_markdown "$temp_index" "$is_home" "$target_url" > "$out_dir/index.html"
|
render_markdown "$temp_index" "$is_home" "$target_url" > "$out_dir/index.html"
|
||||||
@@ -332,8 +334,23 @@ eval "find \"$src\" \( $IGNORE_ARGS \) -prune -o -type d -print" | sort | while
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ -f "$script_dir/styles/$style.css" ] && needs_rebuild "$script_dir/styles/$style.css" "$out/styles.css"; then
|
if [ ! -f "$src/styles.css" ] && [ ! -f "$src/style.css" ]; then
|
||||||
copy_style_with_resolved_vars "$script_dir/styles/$style.css" "$out/styles.css"
|
if [ -f "$src/styles.root.css" ]; then
|
||||||
|
_base_css="$script_dir/styles/$style.css"
|
||||||
|
[ ! -f "$_base_css" ] && _base_css="$script_dir/styles/kewt.css"
|
||||||
|
if [ ! -f "$out/styles.css" ] || [ "$src/styles.root.css" -nt "$out/styles.css" ] || [ "$_base_css" -nt "$out/styles.css" ]; then
|
||||||
|
merge_root_style "$src/styles.root.css" "$_base_css" "$out/styles.css"
|
||||||
|
fi
|
||||||
|
elif [ -f "$script_dir/styles/$style.css" ]; then
|
||||||
|
if needs_rebuild "$script_dir/styles/$style.css" "$out/styles.css"; then
|
||||||
|
copy_style_with_resolved_vars "$script_dir/styles/$style.css" "$out/styles.css"
|
||||||
|
fi
|
||||||
|
elif [ -f "$script_dir/styles/$style.root.css" ]; then
|
||||||
|
_base_css="$script_dir/styles/kewt.css"
|
||||||
|
if [ ! -f "$out/styles.css" ] || [ "$script_dir/styles/$style.root.css" -nt "$out/styles.css" ] || [ "$_base_css" -nt "$out/styles.css" ]; then
|
||||||
|
merge_root_style "$script_dir/styles/$style.root.css" "$_base_css" "$out/styles.css"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
eval "find \"$src\" \( $IGNORE_ARGS \) -prune -o -type f -print" | sort | while IFS= read -r file; do
|
eval "find \"$src\" \( $IGNORE_ARGS \) -prune -o -type f -print" | sort | while IFS= read -r file; do
|
||||||
@@ -343,7 +360,7 @@ eval "find \"$src\" \( $IGNORE_ARGS \) -prune -o -type f -print" | sort | while
|
|||||||
out_dir="$out/$dir_rel"
|
out_dir="$out/$dir_rel"
|
||||||
|
|
||||||
case "${file##*/}" in
|
case "${file##*/}" in
|
||||||
template.html|site.conf|style.css|styles.css) continue ;;
|
template.html|site.conf|style.css|styles.css|styles.root.css) continue ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
if [ "${file##*/}" = "index.md" ] && grep -q '^[[:space:]]*{{LIST}}[[:space:]]*$' "$file" 2>/dev/null; then
|
if [ "${file##*/}" = "index.md" ] && grep -q '^[[:space:]]*{{LIST}}[[:space:]]*$' "$file" 2>/dev/null; then
|
||||||
@@ -378,11 +395,11 @@ eval "find \"$src\" \( $IGNORE_ARGS \) -prune -o -type f -print" | sort | while
|
|||||||
content_out_file="$out/${rel_path%.md}-content.html"
|
content_out_file="$out/${rel_path%.md}-content.html"
|
||||||
content_rel_url="/${rel_path%.md}-content.html"
|
content_rel_url="/${rel_path%.md}-content.html"
|
||||||
orig_rel_url="/${rel_path%.md}.html"
|
orig_rel_url="/${rel_path%.md}.html"
|
||||||
|
|
||||||
is_cw_content_page="true"
|
is_cw_content_page="true"
|
||||||
render_markdown "$file" "$is_home" "$orig_rel_url" > "$content_out_file"
|
render_markdown "$file" "$is_home" "$orig_rel_url" > "$content_out_file"
|
||||||
is_cw_content_page="false"
|
is_cw_content_page="false"
|
||||||
|
|
||||||
generate_content_warning_page "$fm_title" "$fm_content_warning" "$content_rel_url" "$orig_rel_url" "$out_file" "false"
|
generate_content_warning_page "$fm_title" "$fm_content_warning" "$content_rel_url" "$orig_rel_url" "$out_file" "false"
|
||||||
else
|
else
|
||||||
render_markdown "$file" "$is_home" > "$out_file"
|
render_markdown "$file" "$is_home" > "$out_file"
|
||||||
@@ -589,7 +606,7 @@ if [ "$generate_search" = "true" ] || [ "$generate_tags" = "true" ]; then
|
|||||||
|
|
||||||
parse_frontmatter "$md_file"
|
parse_frontmatter "$md_file"
|
||||||
[ "$fm_draft" = "true" ] && continue
|
[ "$fm_draft" = "true" ] && continue
|
||||||
|
|
||||||
md_heading="$fm_title"
|
md_heading="$fm_title"
|
||||||
if [ -z "$md_heading" ]; then
|
if [ -z "$md_heading" ]; then
|
||||||
md_heading=$(grep -m 1 '^# ' "$md_file" | sed 's/^# *//; s/ *$//')
|
md_heading=$(grep -m 1 '^# ' "$md_file" | sed 's/^# *//; s/ *$//')
|
||||||
@@ -605,7 +622,7 @@ if [ "$generate_search" = "true" ] || [ "$generate_tags" = "true" ]; then
|
|||||||
md_heading="$title - Page"
|
md_heading="$title - Page"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$generate_search" = "true" ]; then
|
if [ "$generate_search" = "true" ]; then
|
||||||
if [ -z "$fm_content_warning" ] || [ "$include_cw_pages_in_search" = "true" ]; then
|
if [ -z "$fm_content_warning" ] || [ "$include_cw_pages_in_search" = "true" ]; then
|
||||||
md_content=$(awk '{
|
md_content=$(awk '{
|
||||||
@@ -674,30 +691,30 @@ if [ "$generate_search" = "true" ] || [ "$generate_tags" = "true" ]; then
|
|||||||
if [ "$generate_tags" = "true" ]; then
|
if [ "$generate_tags" = "true" ]; then
|
||||||
tags_out_dir="$out/$tags_dir"
|
tags_out_dir="$out/$tags_dir"
|
||||||
mkdir -p "$tags_out_dir"
|
mkdir -p "$tags_out_dir"
|
||||||
|
|
||||||
tags_index_md="$KEWT_TMPDIR/tags_index_$$.md"
|
tags_index_md="$KEWT_TMPDIR/tags_index_$$.md"
|
||||||
echo "# Tags" > "$tags_index_md"
|
echo "# Tags" > "$tags_index_md"
|
||||||
echo "" >> "$tags_index_md"
|
echo "" >> "$tags_index_md"
|
||||||
|
|
||||||
cut -d'|' -f1 "$temp_tags" | sort -u | while IFS= read -r tag; do
|
cut -d'|' -f1 "$temp_tags" | sort -u | while IFS= read -r tag; do
|
||||||
tag_slug=$(echo "$tag" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g')
|
tag_slug=$(echo "$tag" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g')
|
||||||
|
|
||||||
echo "- [$tag](/$(echo $tags_dir | sed 's|^\/||; s|\/$||')/$tag_slug.html)" >> "$tags_index_md"
|
echo "- [$tag](/$(echo $tags_dir | sed 's|^\/||; s|\/$||')/$tag_slug.html)" >> "$tags_index_md"
|
||||||
|
|
||||||
tag_page_md="$KEWT_TMPDIR/tag_page_$$.md"
|
tag_page_md="$KEWT_TMPDIR/tag_page_$$.md"
|
||||||
echo "# Tag: $tag" > "$tag_page_md"
|
echo "# Tag: $tag" > "$tag_page_md"
|
||||||
echo "" >> "$tag_page_md"
|
echo "" >> "$tag_page_md"
|
||||||
echo "Posts tagged with **$tag**:" >> "$tag_page_md"
|
echo "Posts tagged with **$tag**:" >> "$tag_page_md"
|
||||||
echo "" >> "$tag_page_md"
|
echo "" >> "$tag_page_md"
|
||||||
|
|
||||||
grep "^${tag}|" "$temp_tags" | while IFS='|' read -r _t t_url t_title; do
|
grep "^${tag}|" "$temp_tags" | while IFS='|' read -r _t t_url t_title; do
|
||||||
echo "- [$t_title]($t_url)" >> "$tag_page_md"
|
echo "- [$t_title]($t_url)" >> "$tag_page_md"
|
||||||
done
|
done
|
||||||
|
|
||||||
render_markdown "$tag_page_md" "false" "/$tags_dir/$tag_slug.html" > "$tags_out_dir/$tag_slug.html"
|
render_markdown "$tag_page_md" "false" "/$tags_dir/$tag_slug.html" > "$tags_out_dir/$tag_slug.html"
|
||||||
rm -f "$tag_page_md"
|
rm -f "$tag_page_md"
|
||||||
done
|
done
|
||||||
|
|
||||||
render_markdown "$tags_index_md" "false" "/$tags_dir/index.html" > "$tags_out_dir/index.html"
|
render_markdown "$tags_index_md" "false" "/$tags_dir/index.html" > "$tags_out_dir/index.html"
|
||||||
rm -f "$tags_index_md"
|
rm -f "$tags_index_md"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -109,6 +109,27 @@ copy_style_with_resolved_vars() {
|
|||||||
out_style="$2"
|
out_style="$2"
|
||||||
awk -f "$awk_dir/replace_variables.awk" "$src_style" > "$out_style"
|
awk -f "$awk_dir/replace_variables.awk" "$src_style" > "$out_style"
|
||||||
}
|
}
|
||||||
|
merge_root_style() {
|
||||||
|
root_file="$1"
|
||||||
|
base_css="$2"
|
||||||
|
out_file="$3"
|
||||||
|
{
|
||||||
|
cat "$root_file"
|
||||||
|
awk '
|
||||||
|
BEGIN { in_root = 0; brace_depth = 0 }
|
||||||
|
/^:root[[:space:]]*\{/ { in_root = 1; brace_depth = 1; next }
|
||||||
|
in_root {
|
||||||
|
for (i = 1; i <= length($0); i++) {
|
||||||
|
c = substr($0, i, 1)
|
||||||
|
if (c == "{") brace_depth++
|
||||||
|
if (c == "}") { brace_depth--; if (brace_depth == 0) { in_root = 0; next } }
|
||||||
|
}
|
||||||
|
next
|
||||||
|
}
|
||||||
|
{ print }
|
||||||
|
' "$base_css"
|
||||||
|
} | awk -f "$awk_dir/replace_variables.awk" > "$out_file"
|
||||||
|
}
|
||||||
render_markdown() {
|
render_markdown() {
|
||||||
file="$1"
|
file="$1"
|
||||||
is_home="$2"
|
is_home="$2"
|
||||||
@@ -130,12 +151,12 @@ render_markdown() {
|
|||||||
temp_post_with_backlink="$KEWT_TMPDIR/post_with_backlink_$$.md"
|
temp_post_with_backlink="$KEWT_TMPDIR/post_with_backlink_$$.md"
|
||||||
printf "[< Back](index.html)\n\n" > "$temp_post_with_backlink"
|
printf "[< Back](index.html)\n\n" > "$temp_post_with_backlink"
|
||||||
awk -f "$awk_dir/frontmatter.awk" "$file" >> "$temp_post_with_backlink"
|
awk -f "$awk_dir/frontmatter.awk" "$file" >> "$temp_post_with_backlink"
|
||||||
|
|
||||||
post_md_name="$(basename "$current_url" .html).md"
|
post_md_name="$(basename "$current_url" .html).md"
|
||||||
prevnext_file="$KEWT_TMPDIR/prevnext/$post_md_name"
|
prevnext_file="$KEWT_TMPDIR/prevnext/$post_md_name"
|
||||||
if [ -f "$prevnext_file" ]; then
|
if [ -f "$prevnext_file" ]; then
|
||||||
IFS='|' read -r prev_str next_str < "$prevnext_file"
|
IFS='|' read -r prev_str next_str < "$prevnext_file"
|
||||||
|
|
||||||
printf "\n\n---\n<div class=\"post-nav\">\n" >> "$temp_post_with_backlink"
|
printf "\n\n---\n<div class=\"post-nav\">\n" >> "$temp_post_with_backlink"
|
||||||
if [ -n "$prev_str" ]; then
|
if [ -n "$prev_str" ]; then
|
||||||
printf "<span class=\"prev-post\">%s</span>\n" "$prev_str" >> "$temp_post_with_backlink"
|
printf "<span class=\"prev-post\">%s</span>\n" "$prev_str" >> "$temp_post_with_backlink"
|
||||||
@@ -241,7 +262,7 @@ render_markdown() {
|
|||||||
else
|
else
|
||||||
head_extra="$head_extra_og"
|
head_extra="$head_extra_og"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$is_cw_content_page" = "true" ] && [ "$cw_hide_url" = "true" ]; then
|
if [ "$is_cw_content_page" = "true" ] && [ "$cw_hide_url" = "true" ]; then
|
||||||
head_extra="$head_extra
|
head_extra="$head_extra
|
||||||
<script>window.history.replaceState(null, '', '$current_url');</script>"
|
<script>window.history.replaceState(null, '', '$current_url');</script>"
|
||||||
@@ -269,11 +290,11 @@ generate_content_warning_page() {
|
|||||||
_target_url="$4"
|
_target_url="$4"
|
||||||
_out_file="$5"
|
_out_file="$5"
|
||||||
_is_home="$6"
|
_is_home="$6"
|
||||||
|
|
||||||
_temp_cw="$KEWT_TMPDIR/cw_$$.md"
|
_temp_cw="$KEWT_TMPDIR/cw_$$.md"
|
||||||
_cw_text="${_fm_content_warning}"
|
_cw_text="${_fm_content_warning}"
|
||||||
[ "$_cw_text" = "true" ] && _cw_text="This content may be sensitive."
|
[ "$_cw_text" = "true" ] && _cw_text="This content may be sensitive."
|
||||||
|
|
||||||
cat <<EOF > "$_temp_cw"
|
cat <<EOF > "$_temp_cw"
|
||||||
---
|
---
|
||||||
title = "$_fm_title"
|
title = "$_fm_title"
|
||||||
|
|||||||
@@ -1,44 +1,54 @@
|
|||||||
document.addEventListener('DOMContentLoaded', function() {
|
document.addEventListener("DOMContentLoaded", function () {
|
||||||
var params = new URLSearchParams(window.location.search);
|
var params = new URLSearchParams(window.location.search);
|
||||||
var query = params.get('q');
|
var query = params.get("q");
|
||||||
var box = document.getElementById('search-box');
|
var box = document.getElementById("search-box");
|
||||||
var resultsContainer = document.getElementById('search-results-list');
|
var resultsContainer = document.getElementById("search-results-list");
|
||||||
|
|
||||||
if (box && query) box.value = query;
|
if (box && query) box.value = query;
|
||||||
|
|
||||||
if (!query) {
|
if (!query) {
|
||||||
resultsContainer.innerHTML = '<p>Enter a search term above.</p>';
|
resultsContainer.innerHTML = "<p>Enter a search term above.</p>";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
fetch('/search.json')
|
fetch("/search.json")
|
||||||
.then(function(response) { return response.json(); })
|
.then(function (response) {
|
||||||
.then(function(data) {
|
return response.json();
|
||||||
|
})
|
||||||
|
.then(function (data) {
|
||||||
var q = query.toLowerCase();
|
var q = query.toLowerCase();
|
||||||
var results = data.filter(function(item) {
|
var results = data.filter(function (item) {
|
||||||
return item.title.toLowerCase().indexOf(q) !== -1 ||
|
return (
|
||||||
item.content.toLowerCase().indexOf(q) !== -1;
|
item.title.toLowerCase().indexOf(q) !== -1 ||
|
||||||
|
item.content.toLowerCase().indexOf(q) !== -1
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
var esc = query.replace(/</g, '<').replace(/>/g, '>');
|
var esc = query.replace(/</g, "<").replace(/>/g, ">");
|
||||||
|
|
||||||
if (results.length === 0) {
|
if (results.length === 0) {
|
||||||
resultsContainer.innerHTML = '<p>No results found for "<strong>' + esc + '</strong>".</p>';
|
resultsContainer.innerHTML =
|
||||||
|
'<p>No results found for "<strong>' + esc + '</strong>".</p>';
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var html = '<p>Found ' + results.length + ' result(s) for "<strong>' + esc + '</strong>":</p>';
|
var html =
|
||||||
results.forEach(function(result) {
|
"<p>Found " +
|
||||||
|
results.length +
|
||||||
|
' result(s) for "<strong>' +
|
||||||
|
esc +
|
||||||
|
'</strong>":</p>';
|
||||||
|
results.forEach(function (result) {
|
||||||
var snippet = result.content.substring(0, 200);
|
var snippet = result.content.substring(0, 200);
|
||||||
if (result.content.length > 200) snippet += '...';
|
if (result.content.length > 200) snippet += "...";
|
||||||
html += '<div class="search-result">';
|
html += '<div class="search-result">';
|
||||||
html += '<a href="' + result.url + '">' + result.title + '</a>';
|
html += '<a href="' + result.url + '">' + result.title + "</a>";
|
||||||
if (snippet) html += '<p>' + snippet + '</p>';
|
if (snippet) html += "<p>" + snippet + "</p>";
|
||||||
html += '</div>';
|
html += "</div>";
|
||||||
});
|
});
|
||||||
resultsContainer.innerHTML = html;
|
resultsContainer.innerHTML = html;
|
||||||
})
|
})
|
||||||
.catch(function() {
|
.catch(function () {
|
||||||
resultsContainer.innerHTML = '<p>Error loading search index.</p>';
|
resultsContainer.innerHTML = "<p>Error loading search index.</p>";
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -3,5 +3,7 @@
|
|||||||
"description": "A minimalist static site generator inspired by werc",
|
"description": "A minimalist static site generator inspired by werc",
|
||||||
"global": "true",
|
"global": "true",
|
||||||
"install": "make install",
|
"install": "make install",
|
||||||
"scripts": ["kewt"]
|
"scripts": [
|
||||||
|
"kewt"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,4 +2,4 @@
|
|||||||
|
|
||||||
This is a custom index for a directory
|
This is a custom index for a directory
|
||||||
|
|
||||||
{{LIST}}
|
{{LIST}}
|
||||||
|
|||||||
@@ -29,4 +29,4 @@ kewt --serve
|
|||||||
```
|
```
|
||||||
Builds the site and starts a local HTTP server. Use `--watch` with `--serve` to rebuild automatically on file changes.
|
Builds the site and starts a local HTTP server. Use `--watch` with `--serve` to rebuild automatically on file changes.
|
||||||
|
|
||||||
## That's it, if you want to do anything more, look at [the documentation](/docs)
|
## That's it, if you want to do anything more, look at [the documentation](/docs)
|
||||||
|
|||||||
@@ -41,4 +41,4 @@ It's meant to be a static site generator, like _[kew](https://github.com/uint23/
|
|||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
## [Quickstart guide](/docs/quickstart.html)
|
## [Quickstart guide](/docs/quickstart.html)
|
||||||
|
|||||||
@@ -27,4 +27,4 @@ generate_tags = false
|
|||||||
generate_search = true
|
generate_search = true
|
||||||
search_in_footer = true
|
search_in_footer = true
|
||||||
search_in_header = true
|
search_in_header = true
|
||||||
include_cw_pages_in_search = false
|
include_cw_pages_in_search = false
|
||||||
|
|||||||
26
styles/kewt-light.root.css
Normal file
26
styles/kewt-light.root.css
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
:root {
|
||||||
|
--bg: #f5f0ff;
|
||||||
|
--bg-deep: #e8dffa;
|
||||||
|
--fg: #2d1b4e;
|
||||||
|
--fg-muted: #7a6898;
|
||||||
|
--fg-link: #7b3fba;
|
||||||
|
--fg-heading: #3d2466;
|
||||||
|
--code-bg: #e8dffa;
|
||||||
|
--code-border: #d0c0e8;
|
||||||
|
--code-fg: #2d1b4e;
|
||||||
|
--code-sel: #b8860b;
|
||||||
|
--code-prop: #6f42c1;
|
||||||
|
--code-val: #0366d6;
|
||||||
|
--code-var: #22863a;
|
||||||
|
--code-com: #7a6898;
|
||||||
|
--adm-note-bg: #e0e0f8;
|
||||||
|
--adm-note-border: #5b6fc4;
|
||||||
|
--adm-tip-bg: #ddf0dd;
|
||||||
|
--adm-tip-border: #46a758;
|
||||||
|
--adm-important-bg: #eeddf5;
|
||||||
|
--adm-important-border: #8b5fc7;
|
||||||
|
--adm-warning-bg: #f5f0dd;
|
||||||
|
--adm-warning-border: #b8860b;
|
||||||
|
--adm-caution-bg: #f5dddd;
|
||||||
|
--adm-caution-border: #c44569;
|
||||||
|
}
|
||||||
26
styles/mono-light.root.css
Normal file
26
styles/mono-light.root.css
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
:root {
|
||||||
|
--bg: #f5f5f5;
|
||||||
|
--bg-deep: #e8e8e8;
|
||||||
|
--fg: #1a1a1a;
|
||||||
|
--fg-muted: #808080;
|
||||||
|
--fg-link: #333333;
|
||||||
|
--fg-heading: #000000;
|
||||||
|
--code-bg: #e8e8e8;
|
||||||
|
--code-border: #c0c0c0;
|
||||||
|
--code-fg: #1a1a1a;
|
||||||
|
--code-sel: #555555;
|
||||||
|
--code-prop: #333333;
|
||||||
|
--code-val: #666666;
|
||||||
|
--code-var: #444444;
|
||||||
|
--code-com: #999999;
|
||||||
|
--adm-note-bg: #e0e0ee;
|
||||||
|
--adm-note-border: #8888aa;
|
||||||
|
--adm-tip-bg: #e0eee0;
|
||||||
|
--adm-tip-border: #88aa88;
|
||||||
|
--adm-important-bg: #eee0ee;
|
||||||
|
--adm-important-border: #aa88aa;
|
||||||
|
--adm-warning-bg: #eeeed0;
|
||||||
|
--adm-warning-border: #aaaa78;
|
||||||
|
--adm-caution-bg: #eee0e0;
|
||||||
|
--adm-caution-border: #aa8888;
|
||||||
|
}
|
||||||
26
styles/mono.root.css
Normal file
26
styles/mono.root.css
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
:root {
|
||||||
|
--bg: #1a1a1a;
|
||||||
|
--bg-deep: #111111;
|
||||||
|
--fg: #d4d4d4;
|
||||||
|
--fg-muted: #808080;
|
||||||
|
--fg-link: #e0e0e0;
|
||||||
|
--fg-heading: #ffffff;
|
||||||
|
--code-bg: #0d0d0d;
|
||||||
|
--code-border: #404040;
|
||||||
|
--code-fg: #d4d4d4;
|
||||||
|
--code-sel: #b8b8b8;
|
||||||
|
--code-prop: #e0e0e0;
|
||||||
|
--code-val: #a0a0a0;
|
||||||
|
--code-var: #c8c8c8;
|
||||||
|
--code-com: #585858;
|
||||||
|
--adm-note-bg: #1a1a2e;
|
||||||
|
--adm-note-border: #5a5a8a;
|
||||||
|
--adm-tip-bg: #1a2e1a;
|
||||||
|
--adm-tip-border: #5a8a5a;
|
||||||
|
--adm-important-bg: #2e1a2e;
|
||||||
|
--adm-important-border: #8a5a8a;
|
||||||
|
--adm-warning-bg: #2e2e1a;
|
||||||
|
--adm-warning-border: #8a8a5a;
|
||||||
|
--adm-caution-bg: #2e1a1a;
|
||||||
|
--adm-caution-border: #8a5a5a;
|
||||||
|
}
|
||||||
26
styles/nord-light.root.css
Normal file
26
styles/nord-light.root.css
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
:root {
|
||||||
|
--bg: #eceff4;
|
||||||
|
--bg-deep: #d8dee9;
|
||||||
|
--fg: #2e3440;
|
||||||
|
--fg-muted: #4c566a;
|
||||||
|
--fg-link: #5e81ac;
|
||||||
|
--fg-heading: #3b4252;
|
||||||
|
--code-bg: #d8dee9;
|
||||||
|
--code-border: #c5cdd9;
|
||||||
|
--code-fg: #2e3440;
|
||||||
|
--code-sel: #d08770;
|
||||||
|
--code-prop: #5e81ac;
|
||||||
|
--code-val: #8fbcbb;
|
||||||
|
--code-var: #a3be8c;
|
||||||
|
--code-com: #4c566a;
|
||||||
|
--adm-note-bg: #d8dee9;
|
||||||
|
--adm-note-border: #5e81ac;
|
||||||
|
--adm-tip-bg: #e0ebd8;
|
||||||
|
--adm-tip-border: #a3be8c;
|
||||||
|
--adm-important-bg: #e5dbe8;
|
||||||
|
--adm-important-border: #b48ead;
|
||||||
|
--adm-warning-bg: #ede5d6;
|
||||||
|
--adm-warning-border: #ebcb8b;
|
||||||
|
--adm-caution-bg: #eddcdc;
|
||||||
|
--adm-caution-border: #bf616a;
|
||||||
|
}
|
||||||
26
styles/nord.root.css
Normal file
26
styles/nord.root.css
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
:root {
|
||||||
|
--bg: #2e3440;
|
||||||
|
--bg-deep: #242933;
|
||||||
|
--fg: #d8dee9;
|
||||||
|
--fg-muted: #a5b0c1;
|
||||||
|
--fg-link: #88c0d0;
|
||||||
|
--fg-heading: #eceff4;
|
||||||
|
--code-bg: #3b4252;
|
||||||
|
--code-border: #4c566a;
|
||||||
|
--code-fg: #d8dee9;
|
||||||
|
--code-sel: #ebcb8b;
|
||||||
|
--code-prop: #8fbcbb;
|
||||||
|
--code-val: #81a1c1;
|
||||||
|
--code-var: #a3be8c;
|
||||||
|
--code-com: #616e88;
|
||||||
|
--adm-note-bg: #3b4252;
|
||||||
|
--adm-note-border: #88c0d0;
|
||||||
|
--adm-tip-bg: #3b4340;
|
||||||
|
--adm-tip-border: #a3be8c;
|
||||||
|
--adm-important-bg: #3b4044;
|
||||||
|
--adm-important-border: #b48ead;
|
||||||
|
--adm-warning-bg: #3b4038;
|
||||||
|
--adm-warning-border: #ebcb8b;
|
||||||
|
--adm-caution-bg: #3b3840;
|
||||||
|
--adm-caution-border: #bf616a;
|
||||||
|
}
|
||||||
26
styles/onedark.root.css
Normal file
26
styles/onedark.root.css
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
:root {
|
||||||
|
--bg: #282c34;
|
||||||
|
--bg-deep: #21252b;
|
||||||
|
--fg: #abb2bf;
|
||||||
|
--fg-muted: #636d83;
|
||||||
|
--fg-link: #61afef;
|
||||||
|
--fg-heading: #c8ccd4;
|
||||||
|
--code-bg: #21252b;
|
||||||
|
--code-border: #3e4451;
|
||||||
|
--code-fg: #abb2bf;
|
||||||
|
--code-sel: #e5c07b;
|
||||||
|
--code-prop: #e06c75;
|
||||||
|
--code-val: #56b6c2;
|
||||||
|
--code-var: #98c379;
|
||||||
|
--code-com: #5c6370;
|
||||||
|
--adm-note-bg: #2c313c;
|
||||||
|
--adm-note-border: #61afef;
|
||||||
|
--adm-tip-bg: #2c3a30;
|
||||||
|
--adm-tip-border: #98c379;
|
||||||
|
--adm-important-bg: #33303c;
|
||||||
|
--adm-important-border: #c678dd;
|
||||||
|
--adm-warning-bg: #3a352c;
|
||||||
|
--adm-warning-border: #e5c07b;
|
||||||
|
--adm-caution-bg: #3a2c2e;
|
||||||
|
--adm-caution-border: #e06c75;
|
||||||
|
}
|
||||||
26
styles/onelight.root.css
Normal file
26
styles/onelight.root.css
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
:root {
|
||||||
|
--bg: #fafafa;
|
||||||
|
--bg-deep: #eaeaeb;
|
||||||
|
--fg: #383a42;
|
||||||
|
--fg-muted: #a0a1a7;
|
||||||
|
--fg-link: #4078f2;
|
||||||
|
--fg-heading: #383a42;
|
||||||
|
--code-bg: #eaeaeb;
|
||||||
|
--code-border: #d4d4d5;
|
||||||
|
--code-fg: #383a42;
|
||||||
|
--code-sel: #986801;
|
||||||
|
--code-prop: #e45649;
|
||||||
|
--code-val: #0184bc;
|
||||||
|
--code-var: #50a14f;
|
||||||
|
--code-com: #a0a1a7;
|
||||||
|
--adm-note-bg: #e8eefa;
|
||||||
|
--adm-note-border: #4078f2;
|
||||||
|
--adm-tip-bg: #e8f5e8;
|
||||||
|
--adm-tip-border: #50a14f;
|
||||||
|
--adm-important-bg: #f2e8f5;
|
||||||
|
--adm-important-border: #a626a4;
|
||||||
|
--adm-warning-bg: #f5f0e0;
|
||||||
|
--adm-warning-border: #986801;
|
||||||
|
--adm-caution-bg: #fae8e8;
|
||||||
|
--adm-caution-border: #e45649;
|
||||||
|
}
|
||||||
26
styles/rosepine-light.root.css
Normal file
26
styles/rosepine-light.root.css
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
:root {
|
||||||
|
--bg: #faf4ed;
|
||||||
|
--bg-deep: #f2e9e1;
|
||||||
|
--fg: #575279;
|
||||||
|
--fg-muted: #9893a5;
|
||||||
|
--fg-link: #907aa9;
|
||||||
|
--fg-heading: #286983;
|
||||||
|
--code-bg: #f2e9e1;
|
||||||
|
--code-border: #dfdad9;
|
||||||
|
--code-fg: #575279;
|
||||||
|
--code-sel: #ea9d34;
|
||||||
|
--code-prop: #b4637a;
|
||||||
|
--code-val: #56949f;
|
||||||
|
--code-var: #286983;
|
||||||
|
--code-com: #9893a5;
|
||||||
|
--adm-note-bg: #f0e8f5;
|
||||||
|
--adm-note-border: #907aa9;
|
||||||
|
--adm-tip-bg: #e8f0ee;
|
||||||
|
--adm-tip-border: #56949f;
|
||||||
|
--adm-important-bg: #f0e8f0;
|
||||||
|
--adm-important-border: #907aa9;
|
||||||
|
--adm-warning-bg: #f5f0e0;
|
||||||
|
--adm-warning-border: #ea9d34;
|
||||||
|
--adm-caution-bg: #f5e5e8;
|
||||||
|
--adm-caution-border: #b4637a;
|
||||||
|
}
|
||||||
26
styles/rosepine.root.css
Normal file
26
styles/rosepine.root.css
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
:root {
|
||||||
|
--bg: #191724;
|
||||||
|
--bg-deep: #13111e;
|
||||||
|
--fg: #e0def4;
|
||||||
|
--fg-muted: #908caa;
|
||||||
|
--fg-link: #c4a7e7;
|
||||||
|
--fg-heading: #ebbcba;
|
||||||
|
--code-bg: #1f1d2e;
|
||||||
|
--code-border: #26233a;
|
||||||
|
--code-fg: #e0def4;
|
||||||
|
--code-sel: #f6c177;
|
||||||
|
--code-prop: #eb6f92;
|
||||||
|
--code-val: #9ccfd8;
|
||||||
|
--code-var: #31748f;
|
||||||
|
--code-com: #6e6a86;
|
||||||
|
--adm-note-bg: #1f1d2e;
|
||||||
|
--adm-note-border: #c4a7e7;
|
||||||
|
--adm-tip-bg: #1a2332;
|
||||||
|
--adm-tip-border: #9ccfd8;
|
||||||
|
--adm-important-bg: #2a1f2e;
|
||||||
|
--adm-important-border: #c4a7e7;
|
||||||
|
--adm-warning-bg: #2a251f;
|
||||||
|
--adm-warning-border: #f6c177;
|
||||||
|
--adm-caution-bg: #2a1f22;
|
||||||
|
--adm-caution-border: #eb6f92;
|
||||||
|
}
|
||||||
26
styles/solarized-dark.root.css
Normal file
26
styles/solarized-dark.root.css
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
:root {
|
||||||
|
--bg: #002b36;
|
||||||
|
--bg-deep: #001e26;
|
||||||
|
--fg: #839496;
|
||||||
|
--fg-muted: #586e75;
|
||||||
|
--fg-link: #268bd2;
|
||||||
|
--fg-heading: #93a1a1;
|
||||||
|
--code-bg: #073642;
|
||||||
|
--code-border: #094959;
|
||||||
|
--code-fg: #839496;
|
||||||
|
--code-sel: #d33682;
|
||||||
|
--code-prop: #268bd2;
|
||||||
|
--code-val: #2aa198;
|
||||||
|
--code-var: #859900;
|
||||||
|
--code-com: #586e75;
|
||||||
|
--adm-note-bg: #073642;
|
||||||
|
--adm-note-border: #268bd2;
|
||||||
|
--adm-tip-bg: #07382e;
|
||||||
|
--adm-tip-border: #2aa198;
|
||||||
|
--adm-important-bg: #2a0736;
|
||||||
|
--adm-important-border: #d33682;
|
||||||
|
--adm-warning-bg: #363007;
|
||||||
|
--adm-warning-border: #b58900;
|
||||||
|
--adm-caution-bg: #360a07;
|
||||||
|
--adm-caution-border: #cb4b16;
|
||||||
|
}
|
||||||
26
styles/solarized.root.css
Normal file
26
styles/solarized.root.css
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
:root {
|
||||||
|
--bg: #fdf6e3;
|
||||||
|
--bg-deep: #eee8d5;
|
||||||
|
--fg: #657b83;
|
||||||
|
--fg-muted: #93a1a1;
|
||||||
|
--fg-link: #268bd2;
|
||||||
|
--fg-heading: #586e75;
|
||||||
|
--code-bg: #eee8d5;
|
||||||
|
--code-border: #d3cbb7;
|
||||||
|
--code-fg: #657b83;
|
||||||
|
--code-sel: #d33682;
|
||||||
|
--code-prop: #268bd2;
|
||||||
|
--code-val: #2aa198;
|
||||||
|
--code-var: #859900;
|
||||||
|
--code-com: #93a1a1;
|
||||||
|
--adm-note-bg: #eee8d5;
|
||||||
|
--adm-note-border: #268bd2;
|
||||||
|
--adm-tip-bg: #e8f5e0;
|
||||||
|
--adm-tip-border: #859900;
|
||||||
|
--adm-important-bg: #f0e8f5;
|
||||||
|
--adm-important-border: #6c71c4;
|
||||||
|
--adm-warning-bg: #fdf0e3;
|
||||||
|
--adm-warning-border: #b58900;
|
||||||
|
--adm-caution-bg: #fde8e8;
|
||||||
|
--adm-caution-border: #dc322f;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user