diff --git a/.direnv/bin/nix-direnv-reload b/.direnv/bin/nix-direnv-reload new file mode 100755 index 0000000..0c212a9 --- /dev/null +++ b/.direnv/bin/nix-direnv-reload @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +set -e +if [[ ! -d "/home/user/dev/adityakumar.xyz" ]]; then + echo "Cannot find source directory; Did you move it?" + echo "(Looking for "/home/user/dev/adityakumar.xyz")" + echo 'Cannot force reload with this script - use "direnv reload" manually and then try again' + exit 1 +fi + +# rebuild the cache forcefully +_nix_direnv_force_reload=1 direnv exec "/home/user/dev/adityakumar.xyz" true + +# Update the mtime for .envrc. +# This will cause direnv to reload again - but without re-building. +touch "/home/user/dev/adityakumar.xyz/.envrc" + +# Also update the timestamp of whatever profile_rc we have. +# This makes sure that we know we are up to date. +touch -r "/home/user/dev/adityakumar.xyz/.envrc" "/home/user/dev/adityakumar.xyz/.direnv"/*.rc diff --git a/.direnv/flake-inputs/vhq11h949l5zycaw07acphv53ifq4p2c-source b/.direnv/flake-inputs/vhq11h949l5zycaw07acphv53ifq4p2c-source new file mode 120000 index 0000000..11be9a8 --- /dev/null +++ b/.direnv/flake-inputs/vhq11h949l5zycaw07acphv53ifq4p2c-source @@ -0,0 +1 @@ +/nix/store/vhq11h949l5zycaw07acphv53ifq4p2c-source \ No newline at end of file diff --git a/.direnv/flake-inputs/y3mjdzrg0dxmgjsiwrd66n6lb55fglsb-source b/.direnv/flake-inputs/y3mjdzrg0dxmgjsiwrd66n6lb55fglsb-source new file mode 120000 index 0000000..2519953 --- /dev/null +++ b/.direnv/flake-inputs/y3mjdzrg0dxmgjsiwrd66n6lb55fglsb-source @@ -0,0 +1 @@ +/nix/store/y3mjdzrg0dxmgjsiwrd66n6lb55fglsb-source \ No newline at end of file diff --git a/.direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa b/.direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa new file mode 120000 index 0000000..fbb8fe3 --- /dev/null +++ b/.direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa @@ -0,0 +1 @@ +/nix/store/d5qmminadqhcs1825y0ik5vyr154ygvk-adityakumar.xyz-env \ No newline at end of file diff --git a/.direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa.rc b/.direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa.rc new file mode 100644 index 0000000..ece4c2d --- /dev/null +++ b/.direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa.rc @@ -0,0 +1,1838 @@ +unset shellHook +PATH=${PATH:-} +nix_saved_PATH="$PATH" +XDG_DATA_DIRS=${XDG_DATA_DIRS:-} +nix_saved_XDG_DATA_DIRS="$XDG_DATA_DIRS" +AR='ar' +export AR +AS='as' +export AS +BASH='/nix/store/rhvbjmcfnkg8i2dxpzr114cp1ws7f667-bash-5.2-p15/bin/bash' +CC='gcc' +export CC +CONFIG_SHELL='/nix/store/rhvbjmcfnkg8i2dxpzr114cp1ws7f667-bash-5.2-p15/bin/bash' +export CONFIG_SHELL +CXX='g++' +export CXX +HOSTTYPE='x86_64' +HOST_PATH='/nix/store/c9q4vx2q0l21bqch0sx2dsdyylpqwxki-hugo-0.111.3/bin:/nix/store/jzhlbzh5w9zibvilrh6pv9lf2d1iz55m-rsync-3.2.7/bin:/nix/store/hdwy8j1jvj2d68p449vvpf5j4mrgzldi-nodejs-18.16.0/bin:/nix/store/ahkfdxq8mcpsb5kvdvgqr1wv8zjngbh4-coreutils-9.1/bin:/nix/store/4qrbfa42xyicny7vlgbbqxz07kcsjbx2-findutils-4.9.0/bin:/nix/store/6bcqajyagcc4s3azx0zqnb3rqxd7gdnv-diffutils-3.9/bin:/nix/store/gy82r5cf12hgkmhzifsyx3fp6cnf6j2l-gnused-4.9/bin:/nix/store/zrls4w5lxynqakh1jlrp03kg4bxzp9yi-gnugrep-3.7/bin:/nix/store/s3yl3l8na93v53k2cfsyz0jrb50bnk8n-gawk-5.2.1/bin:/nix/store/czy796d2241296bdy45w87cmaiig50zr-gnutar-1.34/bin:/nix/store/hdbb5ayyrz1b5hicbsb4am8vin0xxxg6-gzip-1.12/bin:/nix/store/hd573q7097cxj5q29pnc3z0rvakz7ga3-bzip2-1.0.8-bin/bin:/nix/store/nnis9ph3wj866bbs0lalbf22i5bq8yry-gnumake-4.4.1/bin:/nix/store/rhvbjmcfnkg8i2dxpzr114cp1ws7f667-bash-5.2-p15/bin:/nix/store/x4ckkjsxfl4ihl82v0bzsyxs4ay2d5b5-patch-2.7.6/bin:/nix/store/8xjzmhw6hgqmynb5f1v7aw2lvafij405-xz-5.4.3-bin/bin:/nix/store/lcjsmsxqwd4vkq2wj5mmbyjzny3i6k49-file-5.44/bin' +export HOST_PATH +IFS=' +' +IN_NIX_SHELL='impure' +export IN_NIX_SHELL +LD='ld' +export LD +LINENO='76' +MACHTYPE='x86_64-pc-linux-gnu' +NIX_BINTOOLS='/nix/store/rbwalnmk5a6nj9mbldxzmj11gvacbrsi-binutils-wrapper-2.40' +export NIX_BINTOOLS +NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu='1' +export NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu +NIX_BUILD_CORES='4' +export NIX_BUILD_CORES +NIX_CC='/nix/store/7wkshj58fcsl1f3zyi67qsxgl1p8nki1-gcc-wrapper-12.2.0' +export NIX_CC +NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu='1' +export NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu +NIX_CFLAGS_COMPILE=' -frandom-seed=d5qmminadq -isystem /nix/store/hdwy8j1jvj2d68p449vvpf5j4mrgzldi-nodejs-18.16.0/include -isystem /nix/store/hdwy8j1jvj2d68p449vvpf5j4mrgzldi-nodejs-18.16.0/include' +export NIX_CFLAGS_COMPILE +NIX_ENFORCE_NO_NATIVE='1' +export NIX_ENFORCE_NO_NATIVE +NIX_HARDENING_ENABLE='fortify stackprotector pic strictoverflow format relro bindnow' +export NIX_HARDENING_ENABLE +NIX_LDFLAGS='-rpath /home/user/dev/adityakumar.xyz/outputs/out/lib64 -rpath /home/user/dev/adityakumar.xyz/outputs/out/lib ' +export NIX_LDFLAGS +NIX_LIB64_IN_SELF_RPATH='1' +NIX_NO_SELF_RPATH='1' +NIX_STORE='/nix/store' +export NIX_STORE +NM='nm' +export NM +NODE_PATH='/nix/store/hdwy8j1jvj2d68p449vvpf5j4mrgzldi-nodejs-18.16.0/lib/node_modules' +export NODE_PATH +OBJCOPY='objcopy' +export OBJCOPY +OBJDUMP='objdump' +export OBJDUMP +OLDPWD='' +export OLDPWD +OPTERR='1' +OSTYPE='linux-gnu' +PATH='/nix/store/ywwjpdyhar4f3vcqf4qk77vrbr3vj5wl-patchelf-0.15.0/bin:/nix/store/7wkshj58fcsl1f3zyi67qsxgl1p8nki1-gcc-wrapper-12.2.0/bin:/nix/store/dcd1zhv56rk0d2z7akzfjgzr076c4jl9-gcc-12.2.0/bin:/nix/store/lyvhsvwp2pzy74fkcn7qbs5vcgy5d7vl-glibc-2.37-8-bin/bin:/nix/store/ahkfdxq8mcpsb5kvdvgqr1wv8zjngbh4-coreutils-9.1/bin:/nix/store/rbwalnmk5a6nj9mbldxzmj11gvacbrsi-binutils-wrapper-2.40/bin:/nix/store/22p5nv7fbxhm06mfkwwnibv1nsz06x4b-binutils-2.40/bin:/nix/store/c9q4vx2q0l21bqch0sx2dsdyylpqwxki-hugo-0.111.3/bin:/nix/store/jzhlbzh5w9zibvilrh6pv9lf2d1iz55m-rsync-3.2.7/bin:/nix/store/hdwy8j1jvj2d68p449vvpf5j4mrgzldi-nodejs-18.16.0/bin:/nix/store/ahkfdxq8mcpsb5kvdvgqr1wv8zjngbh4-coreutils-9.1/bin:/nix/store/4qrbfa42xyicny7vlgbbqxz07kcsjbx2-findutils-4.9.0/bin:/nix/store/6bcqajyagcc4s3azx0zqnb3rqxd7gdnv-diffutils-3.9/bin:/nix/store/gy82r5cf12hgkmhzifsyx3fp6cnf6j2l-gnused-4.9/bin:/nix/store/zrls4w5lxynqakh1jlrp03kg4bxzp9yi-gnugrep-3.7/bin:/nix/store/s3yl3l8na93v53k2cfsyz0jrb50bnk8n-gawk-5.2.1/bin:/nix/store/czy796d2241296bdy45w87cmaiig50zr-gnutar-1.34/bin:/nix/store/hdbb5ayyrz1b5hicbsb4am8vin0xxxg6-gzip-1.12/bin:/nix/store/hd573q7097cxj5q29pnc3z0rvakz7ga3-bzip2-1.0.8-bin/bin:/nix/store/nnis9ph3wj866bbs0lalbf22i5bq8yry-gnumake-4.4.1/bin:/nix/store/rhvbjmcfnkg8i2dxpzr114cp1ws7f667-bash-5.2-p15/bin:/nix/store/x4ckkjsxfl4ihl82v0bzsyxs4ay2d5b5-patch-2.7.6/bin:/nix/store/8xjzmhw6hgqmynb5f1v7aw2lvafij405-xz-5.4.3-bin/bin:/nix/store/lcjsmsxqwd4vkq2wj5mmbyjzny3i6k49-file-5.44/bin' +export PATH +PS4='+ ' +RANLIB='ranlib' +export RANLIB +READELF='readelf' +export READELF +SIZE='size' +export SIZE +SOURCE_DATE_EPOCH='315532800' +export SOURCE_DATE_EPOCH +STRINGS='strings' +export STRINGS +STRIP='strip' +export STRIP +XDG_DATA_DIRS='/nix/store/ywwjpdyhar4f3vcqf4qk77vrbr3vj5wl-patchelf-0.15.0/share' +export XDG_DATA_DIRS +__structuredAttrs='' +export __structuredAttrs +buildInputs='/nix/store/c9q4vx2q0l21bqch0sx2dsdyylpqwxki-hugo-0.111.3 /nix/store/jzhlbzh5w9zibvilrh6pv9lf2d1iz55m-rsync-3.2.7 /nix/store/hdwy8j1jvj2d68p449vvpf5j4mrgzldi-nodejs-18.16.0' +export buildInputs +buildPhase='hugo server' +export buildPhase +builder='/nix/store/rhvbjmcfnkg8i2dxpzr114cp1ws7f667-bash-5.2-p15/bin/bash' +export builder +cmakeFlags='' +export cmakeFlags +configureFlags='' +export configureFlags +defaultBuildInputs='' +defaultNativeBuildInputs='/nix/store/ywwjpdyhar4f3vcqf4qk77vrbr3vj5wl-patchelf-0.15.0 /nix/store/h9lc1dpi14z7is86ffhl3ld569138595-audit-tmpdir.sh /nix/store/m54bmrhj6fqz8nds5zcj97w9s9bckc9v-compress-man-pages.sh /nix/store/wgrbkkaldkrlrni33ccvm3b6vbxzb656-make-symlinks-relative.sh /nix/store/5yzw0vhkyszf2d179m0qfkgxmp5wjjx4-move-docs.sh /nix/store/fyaryjvghbkpfnsyw97hb3lyb37s1pd6-move-lib64.sh /nix/store/kd4xwxjpjxi71jkm6ka0np72if9rm3y0-move-sbin.sh /nix/store/pag6l61paj1dc9sv15l7bm5c17xn5kyk-move-systemd-user-units.sh /nix/store/bxsly8a56yb8kyrq03s82a3vyc8fqrb3-multiple-outputs.sh /nix/store/nf1lkdrhapsx5lr6diyxyjr7pb7r20gr-patch-shebangs.sh /nix/store/cickvswrvann041nqxb0rxilc46svw1n-prune-libtool-files.sh /nix/store/xyff06pkhki3qy1ls77w10s0v79c9il0-reproducible-builds.sh /nix/store/ngg1cv31c8c7bcm2n8ww4g06nq7s4zhm-set-source-date-epoch-to-latest.sh /nix/store/a9ndjg0b1ivi0av9m93vfkrndp7fqbw1-strip.sh /nix/store/7wkshj58fcsl1f3zyi67qsxgl1p8nki1-gcc-wrapper-12.2.0' +depsBuildBuild='' +export depsBuildBuild +depsBuildBuildPropagated='' +export depsBuildBuildPropagated +depsBuildTarget='' +export depsBuildTarget +depsBuildTargetPropagated='' +export depsBuildTargetPropagated +depsHostHost='' +export depsHostHost +depsHostHostPropagated='' +export depsHostHostPropagated +depsTargetTarget='' +export depsTargetTarget +depsTargetTargetPropagated='' +export depsTargetTargetPropagated +doCheck='' +export doCheck +doInstallCheck='' +export doInstallCheck +dontAddDisableDepTrack='1' +export dontAddDisableDepTrack +declare -a envBuildBuildHooks=() +declare -a envBuildHostHooks=() +declare -a envBuildTargetHooks=() +declare -a envHostHostHooks=('ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' 'addNodePath' ) +declare -a envHostTargetHooks=('ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' 'addNodePath' ) +declare -a envTargetTargetHooks=() +declare -a fixupOutputHooks=('if [ -z "${dontPatchELF-}" ]; then patchELF "$prefix"; fi' 'if [[ -z "${noAuditTmpdir-}" && -e "$prefix" ]]; then auditTmpdir "$prefix"; fi' 'if [ -z "${dontGzipMan-}" ]; then compressManPages "$prefix"; fi' '_moveLib64' '_moveSbin' '_moveSystemdUserUnits' 'patchShebangsAuto' '_pruneLibtoolFiles' '_doStrip' ) +guess='4' +initialPath='/nix/store/ahkfdxq8mcpsb5kvdvgqr1wv8zjngbh4-coreutils-9.1 /nix/store/4qrbfa42xyicny7vlgbbqxz07kcsjbx2-findutils-4.9.0 /nix/store/6bcqajyagcc4s3azx0zqnb3rqxd7gdnv-diffutils-3.9 /nix/store/gy82r5cf12hgkmhzifsyx3fp6cnf6j2l-gnused-4.9 /nix/store/zrls4w5lxynqakh1jlrp03kg4bxzp9yi-gnugrep-3.7 /nix/store/s3yl3l8na93v53k2cfsyz0jrb50bnk8n-gawk-5.2.1 /nix/store/czy796d2241296bdy45w87cmaiig50zr-gnutar-1.34 /nix/store/hdbb5ayyrz1b5hicbsb4am8vin0xxxg6-gzip-1.12 /nix/store/hd573q7097cxj5q29pnc3z0rvakz7ga3-bzip2-1.0.8-bin /nix/store/nnis9ph3wj866bbs0lalbf22i5bq8yry-gnumake-4.4.1 /nix/store/rhvbjmcfnkg8i2dxpzr114cp1ws7f667-bash-5.2-p15 /nix/store/x4ckkjsxfl4ihl82v0bzsyxs4ay2d5b5-patch-2.7.6 /nix/store/8xjzmhw6hgqmynb5f1v7aw2lvafij405-xz-5.4.3-bin /nix/store/lcjsmsxqwd4vkq2wj5mmbyjzny3i6k49-file-5.44' +installPhase='./deploy.sh' +export installPhase +mesonFlags='' +export mesonFlags +name='adityakumar.xyz-env' +export name +nativeBuildInputs='' +export nativeBuildInputs +out='/home/user/dev/adityakumar.xyz/outputs/out' +export out +outputBin='out' +outputDev='out' +outputDevdoc='REMOVE' +outputDevman='out' +outputDoc='out' +outputInclude='out' +outputInfo='out' +outputLib='out' +outputMan='out' +outputs='out' +export outputs +patches='' +export patches +pkg='/nix/store/7wkshj58fcsl1f3zyi67qsxgl1p8nki1-gcc-wrapper-12.2.0' +declare -a pkgsBuildBuild=() +declare -a pkgsBuildHost=('/nix/store/ywwjpdyhar4f3vcqf4qk77vrbr3vj5wl-patchelf-0.15.0' '/nix/store/h9lc1dpi14z7is86ffhl3ld569138595-audit-tmpdir.sh' '/nix/store/m54bmrhj6fqz8nds5zcj97w9s9bckc9v-compress-man-pages.sh' '/nix/store/wgrbkkaldkrlrni33ccvm3b6vbxzb656-make-symlinks-relative.sh' '/nix/store/5yzw0vhkyszf2d179m0qfkgxmp5wjjx4-move-docs.sh' '/nix/store/fyaryjvghbkpfnsyw97hb3lyb37s1pd6-move-lib64.sh' '/nix/store/kd4xwxjpjxi71jkm6ka0np72if9rm3y0-move-sbin.sh' '/nix/store/pag6l61paj1dc9sv15l7bm5c17xn5kyk-move-systemd-user-units.sh' '/nix/store/bxsly8a56yb8kyrq03s82a3vyc8fqrb3-multiple-outputs.sh' '/nix/store/nf1lkdrhapsx5lr6diyxyjr7pb7r20gr-patch-shebangs.sh' '/nix/store/cickvswrvann041nqxb0rxilc46svw1n-prune-libtool-files.sh' '/nix/store/xyff06pkhki3qy1ls77w10s0v79c9il0-reproducible-builds.sh' '/nix/store/ngg1cv31c8c7bcm2n8ww4g06nq7s4zhm-set-source-date-epoch-to-latest.sh' '/nix/store/a9ndjg0b1ivi0av9m93vfkrndp7fqbw1-strip.sh' '/nix/store/7wkshj58fcsl1f3zyi67qsxgl1p8nki1-gcc-wrapper-12.2.0' '/nix/store/rbwalnmk5a6nj9mbldxzmj11gvacbrsi-binutils-wrapper-2.40' ) +declare -a pkgsBuildTarget=() +declare -a pkgsHostHost=() +declare -a pkgsHostTarget=('/nix/store/c9q4vx2q0l21bqch0sx2dsdyylpqwxki-hugo-0.111.3' '/nix/store/jzhlbzh5w9zibvilrh6pv9lf2d1iz55m-rsync-3.2.7' '/nix/store/hdwy8j1jvj2d68p449vvpf5j4mrgzldi-nodejs-18.16.0' ) +declare -a pkgsTargetTarget=() +declare -a postFixupHooks=('_makeSymlinksRelativeInAllOutputs' '_multioutPropagateDev' ) +declare -a postUnpackHooks=('_updateSourceDateEpochFromSourceRoot' ) +declare -a preConfigureHooks=('_multioutConfig' ) +declare -a preFixupHooks=('_moveToShare' '_multioutDocs' '_multioutDevs' ) +prefix='/home/user/dev/adityakumar.xyz/outputs/out' +declare -a propagatedBuildDepFiles=('propagated-build-build-deps' 'propagated-native-build-inputs' 'propagated-build-target-deps' ) +propagatedBuildInputs='' +export propagatedBuildInputs +declare -a propagatedHostDepFiles=('propagated-host-host-deps' 'propagated-build-inputs' ) +propagatedNativeBuildInputs='' +export propagatedNativeBuildInputs +declare -a propagatedTargetDepFiles=('propagated-target-target-deps' ) +shell='/nix/store/rhvbjmcfnkg8i2dxpzr114cp1ws7f667-bash-5.2-p15/bin/bash' +export shell +src='/nix/store/y3mjdzrg0dxmgjsiwrd66n6lb55fglsb-source' +export src +stdenv='/nix/store/37p8gq9zijbw6pj3lpi1ckqiv18j2g62-stdenv-linux' +export stdenv +strictDeps='' +export strictDeps +system='x86_64-linux' +export system +declare -a unpackCmdHooks=('_defaultUnpack' ) +_accumFlagsArray () +{ + + local name; + if [ -n "$__structuredAttrs" ]; then + for name in "$@"; + do + local -n nameref="$name"; + flagsArray+=(${nameref+"${nameref[@]}"}); + done; + else + for name in "$@"; + do + local -n nameref="$name"; + case "$name" in + *Array) + flagsArray+=(${nameref+"${nameref[@]}"}) + ;; + *) + flagsArray+=(${nameref-}) + ;; + esac; + done; + fi +} +_activatePkgs () +{ + + local hostOffset targetOffset; + local pkg; + for hostOffset in "${allPlatOffsets[@]}"; + do + local pkgsVar="${pkgAccumVarVars[hostOffset + 1]}"; + for targetOffset in "${allPlatOffsets[@]}"; + do + (( hostOffset <= targetOffset )) || continue; + local pkgsRef="${pkgsVar}[$targetOffset - $hostOffset]"; + local pkgsSlice="${!pkgsRef}[@]"; + for pkg in ${!pkgsSlice+"${!pkgsSlice}"}; + do + activatePackage "$pkg" "$hostOffset" "$targetOffset"; + done; + done; + done +} +_addRpathPrefix () +{ + + if [ "${NIX_NO_SELF_RPATH:-0}" != 1 ]; then + export NIX_LDFLAGS="-rpath $1/lib ${NIX_LDFLAGS-}"; + if [ -n "${NIX_LIB64_IN_SELF_RPATH:-}" ]; then + export NIX_LDFLAGS="-rpath $1/lib64 ${NIX_LDFLAGS-}"; + fi; + if [ -n "${NIX_LIB32_IN_SELF_RPATH:-}" ]; then + export NIX_LDFLAGS="-rpath $1/lib32 ${NIX_LDFLAGS-}"; + fi; + fi +} +_addToEnv () +{ + + local depHostOffset depTargetOffset; + local pkg; + for depHostOffset in "${allPlatOffsets[@]}"; + do + local hookVar="${pkgHookVarVars[depHostOffset + 1]}"; + local pkgsVar="${pkgAccumVarVars[depHostOffset + 1]}"; + for depTargetOffset in "${allPlatOffsets[@]}"; + do + (( depHostOffset <= depTargetOffset )) || continue; + local hookRef="${hookVar}[$depTargetOffset - $depHostOffset]"; + if [[ -z "${strictDeps-}" ]]; then + local visitedPkgs=""; + for pkg in "${pkgsBuildBuild[@]}" "${pkgsBuildHost[@]}" "${pkgsBuildTarget[@]}" "${pkgsHostHost[@]}" "${pkgsHostTarget[@]}" "${pkgsTargetTarget[@]}"; + do + if [[ "$visitedPkgs" = *"$pkg"* ]]; then + continue; + fi; + runHook "${!hookRef}" "$pkg"; + visitedPkgs+=" $pkg"; + done; + else + local pkgsRef="${pkgsVar}[$depTargetOffset - $depHostOffset]"; + local pkgsSlice="${!pkgsRef}[@]"; + for pkg in ${!pkgsSlice+"${!pkgsSlice}"}; + do + runHook "${!hookRef}" "$pkg"; + done; + fi; + done; + done +} +_allFlags () +{ + + export system pname name version; + for varName in $(awk 'BEGIN { for (v in ENVIRON) if (v ~ /^[a-z][a-zA-Z0-9_]*$/) print v }'); + do + if (( "${NIX_DEBUG:-0}" >= 1 )); then + printf "@%s@ -> %q\n" "${varName}" "${!varName}"; + fi; + args+=("--subst-var" "$varName"); + done +} +_assignFirst () +{ + + local varName="$1"; + local _var; + local REMOVE=REMOVE; + shift; + for _var in "$@"; + do + if [ -n "${!_var-}" ]; then + eval "${varName}"="${_var}"; + return; + fi; + done; + echo; + echo "error: _assignFirst: could not find a non-empty variable whose name to assign to ${varName}."; + echo " The following variables were all unset or empty:"; + echo " $*"; + if [ -z "${out:-}" ]; then + echo ' If you do not want an "out" output in your derivation, make sure to define'; + echo ' the other specific required outputs. This can be achieved by picking one'; + echo " of the above as an output."; + echo ' You do not have to remove "out" if you want to have a different default'; + echo ' output, because the first output is taken as a default.'; + echo; + fi; + return 1 +} +_callImplicitHook () +{ + + local def="$1"; + local hookName="$2"; + if declare -F "$hookName" > /dev/null; then + "$hookName"; + else + if type -p "$hookName" > /dev/null; then + source "$hookName"; + else + if [ -n "${!hookName:-}" ]; then + eval "${!hookName}"; + else + return "$def"; + fi; + fi; + fi +} +_defaultUnpack () +{ + + local fn="$1"; + local destination; + if [ -d "$fn" ]; then + destination="$(stripHash "$fn")"; + if [ -e "$destination" ]; then + echo "Cannot copy $fn to $destination: destination already exists!"; + echo "Did you specify two \"srcs\" with the same \"name\"?"; + return 1; + fi; + cp -pr --reflink=auto -- "$fn" "$destination"; + else + case "$fn" in + *.tar.xz | *.tar.lzma | *.txz) + xz -d < "$fn" | tar xf - --warning=no-timestamp + ;; + *.tar | *.tar.* | *.tgz | *.tbz2 | *.tbz) + tar xf "$fn" --warning=no-timestamp + ;; + *) + return 1 + ;; + esac; + fi +} +_doStrip () +{ + + local -ra flags=(dontStripHost dontStripTarget); + local -ra debugDirs=(stripDebugList stripDebugListTarget); + local -ra allDirs=(stripAllList stripAllListTarget); + local -ra stripCmds=(STRIP STRIP_FOR_TARGET); + local -ra ranlibCmds=(RANLIB RANLIB_FOR_TARGET); + stripDebugList=${stripDebugList[*]:-lib lib32 lib64 libexec bin sbin}; + stripDebugListTarget=${stripDebugListTarget[*]:-}; + stripAllList=${stripAllList[*]:-}; + stripAllListTarget=${stripAllListTarget[*]:-}; + local i; + for i in ${!stripCmds[@]}; + do + local -n flag="${flags[$i]}"; + local -n debugDirList="${debugDirs[$i]}"; + local -n allDirList="${allDirs[$i]}"; + local -n stripCmd="${stripCmds[$i]}"; + local -n ranlibCmd="${ranlibCmds[$i]}"; + if [[ -n "${dontStrip-}" || -n "${flag-}" ]] || ! type -f "${stripCmd-}" 2> /dev/null 1>&2; then + continue; + fi; + stripDirs "$stripCmd" "$ranlibCmd" "$debugDirList" "${stripDebugFlags[*]:--S -p}"; + stripDirs "$stripCmd" "$ranlibCmd" "$allDirList" "${stripAllFlags[*]:--s -p}"; + done +} +_eval () +{ + + if declare -F "$1" > /dev/null 2>&1; then + "$@"; + else + eval "$1"; + fi +} +_makeSymlinksRelative () +{ + + local symlinkTarget; + if [ "${dontRewriteSymlinks-}" ] || [ ! -e "$prefix" ]; then + return; + fi; + while IFS= read -r -d '' f; do + symlinkTarget=$(readlink "$f"); + if [[ "$symlinkTarget"/ != "$prefix"/* ]]; then + continue; + fi; + if [ ! -e "$symlinkTarget" ]; then + echo "the symlink $f is broken, it points to $symlinkTarget (which is missing)"; + fi; + echo "rewriting symlink $f to be relative to $prefix"; + ln -snrf "$symlinkTarget" "$f"; + done < <(find $prefix -type l -print0) +} +_makeSymlinksRelativeInAllOutputs () +{ + + local output; + for output in $(getAllOutputNames); + do + prefix="${!output}" _makeSymlinksRelative; + done +} +_moveLib64 () +{ + + if [ "${dontMoveLib64-}" = 1 ]; then + return; + fi; + if [ ! -e "$prefix/lib64" -o -L "$prefix/lib64" ]; then + return; + fi; + echo "moving $prefix/lib64/* to $prefix/lib"; + mkdir -p $prefix/lib; + shopt -s dotglob; + for i in $prefix/lib64/*; + do + mv --no-clobber "$i" $prefix/lib; + done; + shopt -u dotglob; + rmdir $prefix/lib64; + ln -s lib $prefix/lib64 +} +_moveSbin () +{ + + if [ "${dontMoveSbin-}" = 1 ]; then + return; + fi; + if [ ! -e "$prefix/sbin" -o -L "$prefix/sbin" ]; then + return; + fi; + echo "moving $prefix/sbin/* to $prefix/bin"; + mkdir -p $prefix/bin; + shopt -s dotglob; + for i in $prefix/sbin/*; + do + mv "$i" $prefix/bin; + done; + shopt -u dotglob; + rmdir $prefix/sbin; + ln -s bin $prefix/sbin +} +_moveSystemdUserUnits () +{ + + if [ "${dontMoveSystemdUserUnits:-0}" = 1 ]; then + return; + fi; + if [ ! -e "${prefix:?}/lib/systemd/user" ]; then + return; + fi; + local source="$prefix/lib/systemd/user"; + local target="$prefix/share/systemd/user"; + echo "moving $source/* to $target"; + mkdir -p "$target"; + ( shopt -s dotglob; + for i in "$source"/*; + do + mv "$i" "$target"; + done ); + rmdir "$source"; + ln -s "$target" "$source" +} +_moveToShare () +{ + + if [ -n "$__structuredAttrs" ]; then + if [ -z "${forceShare-}" ]; then + forceShare=(man doc info); + fi; + else + forceShare=(${forceShare:-man doc info}); + fi; + if [[ -z "$out" ]]; then + return; + fi; + for d in "${forceShare[@]}"; + do + if [ -d "$out/$d" ]; then + if [ -d "$out/share/$d" ]; then + echo "both $d/ and share/$d/ exist!"; + else + echo "moving $out/$d to $out/share/$d"; + mkdir -p $out/share; + mv $out/$d $out/share/; + fi; + fi; + done +} +_multioutConfig () +{ + + if [ "$(getAllOutputNames)" = "out" ] || [ -z "${setOutputFlags-1}" ]; then + return; + fi; + if [ -z "$shareDocName" ]; then + local confScript="$configureScript"; + if [ -z "$confScript" ] && [ -x ./configure ]; then + confScript=./configure; + fi; + if [ -f "$confScript" ]; then + local shareDocName="$(sed -n "s/^PACKAGE_TARNAME='\(.*\)'$/\1/p" < "$confScript")"; + fi; + if [ -z "$shareDocName" ] || echo "$shareDocName" | grep -q '[^a-zA-Z0-9_-]'; then + shareDocName="$(echo "$name" | sed 's/-[^a-zA-Z].*//')"; + fi; + fi; + prependToVar configureFlags --bindir="${!outputBin}"/bin --sbindir="${!outputBin}"/sbin --includedir="${!outputInclude}"/include --oldincludedir="${!outputInclude}"/include --mandir="${!outputMan}"/share/man --infodir="${!outputInfo}"/share/info --docdir="${!outputDoc}"/share/doc/"${shareDocName}" --libdir="${!outputLib}"/lib --libexecdir="${!outputLib}"/libexec --localedir="${!outputLib}"/share/locale; + prependToVar installFlags pkgconfigdir="${!outputDev}"/lib/pkgconfig m4datadir="${!outputDev}"/share/aclocal aclocaldir="${!outputDev}"/share/aclocal +} +_multioutDevs () +{ + + if [ "$(getAllOutputNames)" = "out" ] || [ -z "${moveToDev-1}" ]; then + return; + fi; + moveToOutput include "${!outputInclude}"; + moveToOutput lib/pkgconfig "${!outputDev}"; + moveToOutput share/pkgconfig "${!outputDev}"; + moveToOutput lib/cmake "${!outputDev}"; + moveToOutput share/aclocal "${!outputDev}"; + for f in "${!outputDev}"/{lib,share}/pkgconfig/*.pc; + do + echo "Patching '$f' includedir to output ${!outputInclude}"; + sed -i "/^includedir=/s,=\${prefix},=${!outputInclude}," "$f"; + done +} +_multioutDocs () +{ + + local REMOVE=REMOVE; + moveToOutput share/info "${!outputInfo}"; + moveToOutput share/doc "${!outputDoc}"; + moveToOutput share/gtk-doc "${!outputDevdoc}"; + moveToOutput share/devhelp/books "${!outputDevdoc}"; + moveToOutput share/man "${!outputMan}"; + moveToOutput share/man/man3 "${!outputDevman}" +} +_multioutPropagateDev () +{ + + if [ "$(getAllOutputNames)" = "out" ]; then + return; + fi; + local outputFirst; + for outputFirst in $(getAllOutputNames); + do + break; + done; + local propagaterOutput="$outputDev"; + if [ -z "$propagaterOutput" ]; then + propagaterOutput="$outputFirst"; + fi; + if [ -z "${propagatedBuildOutputs+1}" ]; then + local po_dirty="$outputBin $outputInclude $outputLib"; + set +o pipefail; + propagatedBuildOutputs=`echo "$po_dirty" | tr -s ' ' '\n' | grep -v -F "$propagaterOutput" | sort -u | tr '\n' ' ' `; + set -o pipefail; + fi; + if [ -z "$propagatedBuildOutputs" ]; then + return; + fi; + mkdir -p "${!propagaterOutput}"/nix-support; + for output in $propagatedBuildOutputs; + do + echo -n " ${!output}" >> "${!propagaterOutput}"/nix-support/propagated-build-inputs; + done +} +_overrideFirst () +{ + + if [ -z "${!1-}" ]; then + _assignFirst "$@"; + fi +} +_pruneLibtoolFiles () +{ + + if [ "${dontPruneLibtoolFiles-}" ] || [ ! -e "$prefix" ]; then + return; + fi; + find "$prefix" -type f -name '*.la' -exec grep -q '^# Generated by .*libtool' {} \; -exec grep -q "^old_library=''" {} \; -exec sed -i {} -e "/^dependency_libs='[^']/ c dependency_libs='' #pruned" \; +} +_updateSourceDateEpochFromSourceRoot () +{ + + if [ -n "$sourceRoot" ]; then + updateSourceDateEpoch "$sourceRoot"; + fi +} +activatePackage () +{ + + local pkg="$1"; + local -r hostOffset="$2"; + local -r targetOffset="$3"; + (( hostOffset <= targetOffset )) || exit 1; + if [ -f "$pkg" ]; then + source "$pkg"; + fi; + if [[ -z "${strictDeps-}" || "$hostOffset" -le -1 ]]; then + addToSearchPath _PATH "$pkg/bin"; + fi; + if (( hostOffset <= -1 )); then + addToSearchPath _XDG_DATA_DIRS "$pkg/share"; + fi; + if [[ "$hostOffset" -eq 0 && -d "$pkg/bin" ]]; then + addToSearchPath _HOST_PATH "$pkg/bin"; + fi; + if [[ -f "$pkg/nix-support/setup-hook" ]]; then + source "$pkg/nix-support/setup-hook"; + fi +} +addEnvHooks () +{ + + local depHostOffset="$1"; + shift; + local pkgHookVarsSlice="${pkgHookVarVars[$depHostOffset + 1]}[@]"; + local pkgHookVar; + for pkgHookVar in "${!pkgHookVarsSlice}"; + do + eval "${pkgHookVar}s"'+=("$@")'; + done +} +addNodePath () +{ + + addToSearchPath NODE_PATH "$1/lib/node_modules" +} +addToSearchPath () +{ + + addToSearchPathWithCustomDelimiter ":" "$@" +} +addToSearchPathWithCustomDelimiter () +{ + + local delimiter="$1"; + local varName="$2"; + local dir="$3"; + if [[ -d "$dir" && "${!varName:+${delimiter}${!varName}${delimiter}}" != *"${delimiter}${dir}${delimiter}"* ]]; then + export "${varName}=${!varName:+${!varName}${delimiter}}${dir}"; + fi +} +appendToVar () +{ + + local -n nameref="$1"; + local useArray type; + if [ -n "$__structuredAttrs" ]; then + useArray=true; + else + useArray=false; + fi; + if declare -p "$1" 2> /dev/null | grep -q '^'; then + type="$(declare -p "$1")"; + if [[ "$type" =~ "declare -A" ]]; then + echo "appendToVar(): ERROR: trying to use appendToVar on an associative array, use variable+=([\"X\"]=\"Y\") instead." 1>&2; + return 1; + else + if [[ "$type" =~ "declare -a" ]]; then + useArray=true; + else + useArray=false; + fi; + fi; + fi; + shift; + if $useArray; then + nameref=(${nameref+"${nameref[@]}"} "$@"); + else + nameref="${nameref-} $*"; + fi +} +auditTmpdir () +{ + + local dir="$1"; + [ -e "$dir" ] || return 0; + echo "checking for references to $TMPDIR/ in $dir..."; + local i; + find "$dir" -type f -print0 | while IFS= read -r -d '' i; do + if [[ "$i" =~ .build-id ]]; then + continue; + fi; + if isELF "$i"; then + if { + printf :; + patchelf --print-rpath "$i" + } | grep -q -F ":$TMPDIR/"; then + echo "RPATH of binary $i contains a forbidden reference to $TMPDIR/"; + exit 1; + fi; + fi; + if isScript "$i"; then + if [ -e "$(dirname "$i")/.$(basename "$i")-wrapped" ]; then + if grep -q -F "$TMPDIR/" "$i"; then + echo "wrapper script $i contains a forbidden reference to $TMPDIR/"; + exit 1; + fi; + fi; + fi; + done +} +bintoolsWrapper_addLDVars () +{ + + local role_post; + getHostRoleEnvHook; + if [[ -d "$1/lib64" && ! -L "$1/lib64" ]]; then + export NIX_LDFLAGS${role_post}+=" -L$1/lib64"; + fi; + if [[ -d "$1/lib" ]]; then + local -a glob=($1/lib/lib*); + if [ "${#glob[*]}" -gt 0 ]; then + export NIX_LDFLAGS${role_post}+=" -L$1/lib"; + fi; + fi +} +buildPhase () +{ + + runHook preBuild; + if [[ -z "${makeFlags-}" && -z "${makefile:-}" && ! ( -e Makefile || -e makefile || -e GNUmakefile ) ]]; then + echo "no Makefile or custom buildPhase, doing nothing"; + else + foundMakefile=1; + local flagsArray=(${enableParallelBuilding:+-j${NIX_BUILD_CORES}} SHELL=$SHELL); + _accumFlagsArray makeFlags makeFlagsArray buildFlags buildFlagsArray; + echoCmd 'build flags' "${flagsArray[@]}"; + make ${makefile:+-f $makefile} "${flagsArray[@]}"; + unset flagsArray; + fi; + runHook postBuild +} +ccWrapper_addCVars () +{ + + local role_post; + getHostRoleEnvHook; + if [ -d "$1/include" ]; then + export NIX_CFLAGS_COMPILE${role_post}+=" -isystem $1/include"; + fi; + if [ -d "$1/Library/Frameworks" ]; then + export NIX_CFLAGS_COMPILE${role_post}+=" -iframework $1/Library/Frameworks"; + fi +} +checkPhase () +{ + + runHook preCheck; + if [[ -z "${foundMakefile:-}" ]]; then + echo "no Makefile or custom checkPhase, doing nothing"; + runHook postCheck; + return; + fi; + if [[ -z "${checkTarget:-}" ]]; then + if make -n ${makefile:+-f $makefile} check > /dev/null 2>&1; then + checkTarget=check; + else + if make -n ${makefile:+-f $makefile} test > /dev/null 2>&1; then + checkTarget=test; + fi; + fi; + fi; + if [[ -z "${checkTarget:-}" ]]; then + echo "no check/test target in ${makefile:-Makefile}, doing nothing"; + else + local flagsArray=(${enableParallelChecking:+-j${NIX_BUILD_CORES}} SHELL=$SHELL); + _accumFlagsArray makeFlags makeFlagsArray; + if [ -n "$__structuredAttrs" ]; then + flagsArray+=("${checkFlags[@]:-VERBOSE=y}"); + else + flagsArray+=(${checkFlags:-VERBOSE=y}); + fi; + _accumFlagsArray checkFlagsArray; + flagsArray+=(${checkTarget}); + echoCmd 'check flags' "${flagsArray[@]}"; + make ${makefile:+-f $makefile} "${flagsArray[@]}"; + unset flagsArray; + fi; + runHook postCheck +} +compressManPages () +{ + + local dir="$1"; + if [ -L "$dir"/share ] || [ -L "$dir"/share/man ] || [ ! -d "$dir/share/man" ]; then + return; + fi; + echo "gzipping man pages under $dir/share/man/"; + find "$dir"/share/man/ -type f -a '!' -regex '.*\.\(bz2\|gz\|xz\)$' -print0 | while IFS= read -r -d '' f; do + if gzip -c -n "$f" > "$f".gz; then + rm "$f"; + else + rm "$f".gz; + fi; + done; + find "$dir"/share/man/ -type l -a '!' -regex '.*\.\(bz2\|gz\|xz\)$' -print0 | sort -z | while IFS= read -r -d '' f; do + local target; + target="$(readlink -f "$f")"; + if [ -f "$target".gz ]; then + ln -sf "$target".gz "$f".gz && rm "$f"; + fi; + done +} +configurePhase () +{ + + runHook preConfigure; + : "${configureScript=}"; + if [[ -z "$configureScript" && -x ./configure ]]; then + configureScript=./configure; + fi; + if [ -z "${dontFixLibtool:-}" ]; then + export lt_cv_deplibs_check_method="${lt_cv_deplibs_check_method-pass_all}"; + local i; + find . -iname "ltmain.sh" -print0 | while IFS='' read -r -d '' i; do + echo "fixing libtool script $i"; + fixLibtool "$i"; + done; + CONFIGURE_MTIME_REFERENCE=$(mktemp configure.mtime.reference.XXXXXX); + find . -executable -type f -name configure -exec grep -l 'GNU Libtool is free software; you can redistribute it and/or modify' {} \; -exec touch -r {} "$CONFIGURE_MTIME_REFERENCE" \; -exec sed -i s_/usr/bin/file_file_g {} \; -exec touch -r "$CONFIGURE_MTIME_REFERENCE" {} \;; + rm -f "$CONFIGURE_MTIME_REFERENCE"; + fi; + if [[ -z "${dontAddPrefix:-}" && -n "$prefix" ]]; then + prependToVar configureFlags "${prefixKey:---prefix=}$prefix"; + fi; + if [[ -f "$configureScript" ]]; then + if [ -z "${dontAddDisableDepTrack:-}" ]; then + if grep -q dependency-tracking "$configureScript"; then + prependToVar configureFlags --disable-dependency-tracking; + fi; + fi; + if [ -z "${dontDisableStatic:-}" ]; then + if grep -q enable-static "$configureScript"; then + prependToVar configureFlags --disable-static; + fi; + fi; + fi; + if [ -n "$configureScript" ]; then + local -a flagsArray; + _accumFlagsArray configureFlags configureFlagsArray; + echoCmd 'configure flags' "${flagsArray[@]}"; + $configureScript "${flagsArray[@]}"; + unset flagsArray; + else + echo "no configure script, doing nothing"; + fi; + runHook postConfigure +} +consumeEntire () +{ + + if IFS='' read -r -d '' "$1"; then + echo "consumeEntire(): ERROR: Input null bytes, won't process" 1>&2; + return 1; + fi +} +distPhase () +{ + + runHook preDist; + local flagsArray=(); + _accumFlagsArray distFlags distFlagsArray; + flagsArray+=(${distTarget:-dist}); + echo 'dist flags: %q' "${flagsArray[@]}"; + make ${makefile:+-f $makefile} "${flagsArray[@]}"; + if [ "${dontCopyDist:-0}" != 1 ]; then + mkdir -p "$out/tarballs"; + cp -pvd ${tarballs[*]:-*.tar.gz} "$out/tarballs"; + fi; + runHook postDist +} +dumpVars () +{ + + if [ "${noDumpEnvVars:-0}" != 1 ]; then + export 2> /dev/null >| "$NIX_BUILD_TOP/env-vars" || true; + fi +} +echoCmd () +{ + + printf "%s:" "$1"; + shift; + printf ' %q' "$@"; + echo +} +exitHandler () +{ + + exitCode="$?"; + set +e; + if [ -n "${showBuildStats:-}" ]; then + read -r -d '' -a buildTimes < <(times); + echo "build times:"; + echo "user time for the shell ${buildTimes[0]}"; + echo "system time for the shell ${buildTimes[1]}"; + echo "user time for all child processes ${buildTimes[2]}"; + echo "system time for all child processes ${buildTimes[3]}"; + fi; + if (( "$exitCode" != 0 )); then + runHook failureHook; + if [ -n "${succeedOnFailure:-}" ]; then + echo "build failed with exit code $exitCode (ignored)"; + mkdir -p "$out/nix-support"; + printf "%s" "$exitCode" > "$out/nix-support/failed"; + exit 0; + fi; + else + runHook exitHook; + fi; + return "$exitCode" +} +findInputs () +{ + + local -r pkg="$1"; + local -r hostOffset="$2"; + local -r targetOffset="$3"; + (( hostOffset <= targetOffset )) || exit 1; + local varVar="${pkgAccumVarVars[hostOffset + 1]}"; + local varRef="$varVar[$((targetOffset - hostOffset))]"; + local var="${!varRef}"; + unset -v varVar varRef; + local varSlice="$var[*]"; + case "${!varSlice-}" in + *" $pkg "*) + return 0 + ;; + esac; + unset -v varSlice; + eval "$var"'+=("$pkg")'; + if ! [ -e "$pkg" ]; then + echo "build input $pkg does not exist" 1>&2; + exit 1; + fi; + function mapOffset () + { + local -r inputOffset="$1"; + local -n outputOffset="$2"; + if (( inputOffset <= 0 )); then + outputOffset=$((inputOffset + hostOffset)); + else + outputOffset=$((inputOffset - 1 + targetOffset)); + fi + }; + local relHostOffset; + for relHostOffset in "${allPlatOffsets[@]}"; + do + local files="${propagatedDepFilesVars[relHostOffset + 1]}"; + local hostOffsetNext; + mapOffset "$relHostOffset" hostOffsetNext; + (( -1 <= hostOffsetNext && hostOffsetNext <= 1 )) || continue; + local relTargetOffset; + for relTargetOffset in "${allPlatOffsets[@]}"; + do + (( "$relHostOffset" <= "$relTargetOffset" )) || continue; + local fileRef="${files}[$relTargetOffset - $relHostOffset]"; + local file="${!fileRef}"; + unset -v fileRef; + local targetOffsetNext; + mapOffset "$relTargetOffset" targetOffsetNext; + (( -1 <= hostOffsetNext && hostOffsetNext <= 1 )) || continue; + [[ -f "$pkg/nix-support/$file" ]] || continue; + local pkgNext; + read -r -d '' pkgNext < "$pkg/nix-support/$file" || true; + for pkgNext in $pkgNext; + do + findInputs "$pkgNext" "$hostOffsetNext" "$targetOffsetNext"; + done; + done; + done +} +fixLibtool () +{ + + local search_path; + for flag in $NIX_LDFLAGS; + do + case $flag in + -L*) + search_path+=" ${flag#-L}" + ;; + esac; + done; + sed -i "$1" -e "s^eval \(sys_lib_search_path=\).*^\1'$search_path'^" -e 's^eval sys_lib_.+search_path=.*^^' +} +fixupPhase () +{ + + local output; + for output in $(getAllOutputNames); + do + if [ -e "${!output}" ]; then + chmod -R u+w "${!output}"; + fi; + done; + runHook preFixup; + local output; + for output in $(getAllOutputNames); + do + prefix="${!output}" runHook fixupOutput; + done; + recordPropagatedDependencies; + if [ -n "${setupHook:-}" ]; then + mkdir -p "${!outputDev}/nix-support"; + substituteAll "$setupHook" "${!outputDev}/nix-support/setup-hook"; + fi; + if [ -n "${setupHooks:-}" ]; then + mkdir -p "${!outputDev}/nix-support"; + local hook; + for hook in ${setupHooks[@]}; + do + local content; + consumeEntire content < "$hook"; + substituteAllStream content "file '$hook'" >> "${!outputDev}/nix-support/setup-hook"; + unset -v content; + done; + unset -v hook; + fi; + if [ -n "${propagatedUserEnvPkgs:-}" ]; then + mkdir -p "${!outputBin}/nix-support"; + printWords $propagatedUserEnvPkgs > "${!outputBin}/nix-support/propagated-user-env-packages"; + fi; + runHook postFixup +} +genericBuild () +{ + + export GZIP_NO_TIMESTAMPS=1; + if [ -f "${buildCommandPath:-}" ]; then + source "$buildCommandPath"; + return; + fi; + if [ -n "${buildCommand:-}" ]; then + eval "$buildCommand"; + return; + fi; + if [ -z "${phases[*]:-}" ]; then + phases="${prePhases[*]:-} unpackPhase patchPhase ${preConfigurePhases[*]:-} configurePhase ${preBuildPhases[*]:-} buildPhase checkPhase ${preInstallPhases[*]:-} installPhase ${preFixupPhases[*]:-} fixupPhase installCheckPhase ${preDistPhases[*]:-} distPhase ${postPhases[*]:-}"; + fi; + for curPhase in ${phases[*]}; + do + if [[ "$curPhase" = unpackPhase && -n "${dontUnpack:-}" ]]; then + continue; + fi; + if [[ "$curPhase" = patchPhase && -n "${dontPatch:-}" ]]; then + continue; + fi; + if [[ "$curPhase" = configurePhase && -n "${dontConfigure:-}" ]]; then + continue; + fi; + if [[ "$curPhase" = buildPhase && -n "${dontBuild:-}" ]]; then + continue; + fi; + if [[ "$curPhase" = checkPhase && -z "${doCheck:-}" ]]; then + continue; + fi; + if [[ "$curPhase" = installPhase && -n "${dontInstall:-}" ]]; then + continue; + fi; + if [[ "$curPhase" = fixupPhase && -n "${dontFixup:-}" ]]; then + continue; + fi; + if [[ "$curPhase" = installCheckPhase && -z "${doInstallCheck:-}" ]]; then + continue; + fi; + if [[ "$curPhase" = distPhase && -z "${doDist:-}" ]]; then + continue; + fi; + if [[ -n $NIX_LOG_FD ]]; then + echo "@nix { \"action\": \"setPhase\", \"phase\": \"$curPhase\" }" >&"$NIX_LOG_FD"; + fi; + showPhaseHeader "$curPhase"; + dumpVars; + local startTime=$(date +"%s"); + eval "${!curPhase:-$curPhase}"; + local endTime=$(date +"%s"); + showPhaseFooter "$curPhase" "$startTime" "$endTime"; + if [ "$curPhase" = unpackPhase ]; then + [ -z "${sourceRoot}" ] || chmod +x "${sourceRoot}"; + cd "${sourceRoot:-.}"; + fi; + done +} +getAllOutputNames () +{ + + if [ -n "$__structuredAttrs" ]; then + echo "${!outputs[*]}"; + else + echo "$outputs"; + fi +} +getHostRole () +{ + + getRole "$hostOffset" +} +getHostRoleEnvHook () +{ + + getRole "$depHostOffset" +} +getRole () +{ + + case $1 in + -1) + role_post='_FOR_BUILD' + ;; + 0) + role_post='' + ;; + 1) + role_post='_FOR_TARGET' + ;; + *) + echo "binutils-wrapper-2.40: used as improper sort of dependency" 1>&2; + return 1 + ;; + esac +} +getTargetRole () +{ + + getRole "$targetOffset" +} +getTargetRoleEnvHook () +{ + + getRole "$depTargetOffset" +} +getTargetRoleWrapper () +{ + + case $targetOffset in + -1) + export NIX_BINTOOLS_WRAPPER_TARGET_BUILD_x86_64_unknown_linux_gnu=1 + ;; + 0) + export NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu=1 + ;; + 1) + export NIX_BINTOOLS_WRAPPER_TARGET_TARGET_x86_64_unknown_linux_gnu=1 + ;; + *) + echo "binutils-wrapper-2.40: used as improper sort of dependency" 1>&2; + return 1 + ;; + esac +} +installCheckPhase () +{ + + runHook preInstallCheck; + if [[ -z "${foundMakefile:-}" ]]; then + echo "no Makefile or custom installCheckPhase, doing nothing"; + else + if [[ -z "${installCheckTarget:-}" ]] && ! make -n ${makefile:+-f $makefile} "${installCheckTarget:-installcheck}" > /dev/null 2>&1; then + echo "no installcheck target in ${makefile:-Makefile}, doing nothing"; + else + local flagsArray=(${enableParallelChecking:+-j${NIX_BUILD_CORES}} SHELL=$SHELL); + _accumFlagsArray makeFlags makeFlagsArray installCheckFlags installCheckFlagsArray; + flagsArray+=(${installCheckTarget:-installcheck}); + echoCmd 'installcheck flags' "${flagsArray[@]}"; + make ${makefile:+-f $makefile} "${flagsArray[@]}"; + unset flagsArray; + fi; + fi; + runHook postInstallCheck +} +installPhase () +{ + + runHook preInstall; + if [[ -z "${makeFlags-}" && -z "${makefile:-}" && ! ( -e Makefile || -e makefile || -e GNUmakefile ) ]]; then + echo "no Makefile or custom installPhase, doing nothing"; + runHook postInstall; + return; + else + foundMakefile=1; + fi; + if [ -n "$prefix" ]; then + mkdir -p "$prefix"; + fi; + local flagsArray=(${enableParallelInstalling:+-j${NIX_BUILD_CORES}} SHELL=$SHELL); + _accumFlagsArray makeFlags makeFlagsArray installFlags installFlagsArray; + if [ -n "$__structuredAttrs" ]; then + flagsArray+=("${installTargets[@]:-install}"); + else + flagsArray+=(${installTargets:-install}); + fi; + echoCmd 'install flags' "${flagsArray[@]}"; + make ${makefile:+-f $makefile} "${flagsArray[@]}"; + unset flagsArray; + runHook postInstall +} +isELF () +{ + + local fn="$1"; + local fd; + local magic; + exec {fd}< "$fn"; + read -r -n 4 -u "$fd" magic; + exec {fd}>&-; + if [ "$magic" = 'ELF' ]; then + return 0; + else + return 1; + fi +} +isMachO () +{ + + local fn="$1"; + local fd; + local magic; + exec {fd}< "$fn"; + read -r -n 4 -u "$fd" magic; + exec {fd}>&-; + if [[ "$magic" = $(echo -ne "\xfe\xed\xfa\xcf") || "$magic" = $(echo -ne "\xcf\xfa\xed\xfe") ]]; then + return 0; + else + if [[ "$magic" = $(echo -ne "\xfe\xed\xfa\xce") || "$magic" = $(echo -ne "\xce\xfa\xed\xfe") ]]; then + return 0; + else + if [[ "$magic" = $(echo -ne "\xca\xfe\xba\xbe") || "$magic" = $(echo -ne "\xbe\xba\xfe\xca") ]]; then + return 0; + else + return 1; + fi; + fi; + fi +} +isScript () +{ + + local fn="$1"; + local fd; + local magic; + exec {fd}< "$fn"; + read -r -n 2 -u "$fd" magic; + exec {fd}>&-; + if [[ "$magic" =~ \#! ]]; then + return 0; + else + return 1; + fi +} +mapOffset () +{ + + local -r inputOffset="$1"; + local -n outputOffset="$2"; + if (( inputOffset <= 0 )); then + outputOffset=$((inputOffset + hostOffset)); + else + outputOffset=$((inputOffset - 1 + targetOffset)); + fi +} +moveToOutput () +{ + + local patt="$1"; + local dstOut="$2"; + local output; + for output in $(getAllOutputNames); + do + if [ "${!output}" = "$dstOut" ]; then + continue; + fi; + local srcPath; + for srcPath in "${!output}"/$patt; + do + if [ ! -e "$srcPath" ] && [ ! -L "$srcPath" ]; then + continue; + fi; + if [ "$dstOut" = REMOVE ]; then + echo "Removing $srcPath"; + rm -r "$srcPath"; + else + local dstPath="$dstOut${srcPath#${!output}}"; + echo "Moving $srcPath to $dstPath"; + if [ -d "$dstPath" ] && [ -d "$srcPath" ]; then + rmdir "$srcPath" --ignore-fail-on-non-empty; + if [ -d "$srcPath" ]; then + mv -t "$dstPath" "$srcPath"/*; + rmdir "$srcPath"; + fi; + else + mkdir -p "$(readlink -m "$dstPath/..")"; + mv "$srcPath" "$dstPath"; + fi; + fi; + local srcParent="$(readlink -m "$srcPath/..")"; + if [ -n "$(find "$srcParent" -maxdepth 0 -type d -empty 2> /dev/null)" ]; then + echo "Removing empty $srcParent/ and (possibly) its parents"; + rmdir -p --ignore-fail-on-non-empty "$srcParent" 2> /dev/null || true; + fi; + done; + done +} +patchELF () +{ + + local dir="$1"; + [ -e "$dir" ] || return 0; + echo "shrinking RPATHs of ELF executables and libraries in $dir"; + local i; + while IFS= read -r -d '' i; do + if [[ "$i" =~ .build-id ]]; then + continue; + fi; + if ! isELF "$i"; then + continue; + fi; + echo "shrinking $i"; + patchelf --shrink-rpath "$i" || true; + done < <(find "$dir" -type f -print0) +} +patchPhase () +{ + + runHook prePatch; + local -a patchesArray; + if [ -n "$__structuredAttrs" ]; then + patchesArray=(${patches:+"${patches[@]}"}); + else + patchesArray=(${patches:-}); + fi; + for i in "${patchesArray[@]}"; + do + echo "applying patch $i"; + local uncompress=cat; + case "$i" in + *.gz) + uncompress="gzip -d" + ;; + *.bz2) + uncompress="bzip2 -d" + ;; + *.xz) + uncompress="xz -d" + ;; + *.lzma) + uncompress="lzma -d" + ;; + esac; + local -a flagsArray; + if [ -n "$__structuredAttrs" ]; then + flagsArray=("${patchFlags[@]:--p1}"); + else + flagsArray=(${patchFlags:--p1}); + fi; + $uncompress < "$i" 2>&1 | patch "${flagsArray[@]}"; + done; + runHook postPatch +} +patchShebangs () +{ + + local pathName; + if [[ "$1" == "--host" ]]; then + pathName=HOST_PATH; + shift; + else + if [[ "$1" == "--build" ]]; then + pathName=PATH; + shift; + fi; + fi; + echo "patching script interpreter paths in $@"; + local f; + local oldPath; + local newPath; + local arg0; + local args; + local oldInterpreterLine; + local newInterpreterLine; + if [[ $# -eq 0 ]]; then + echo "No arguments supplied to patchShebangs" 1>&2; + return 0; + fi; + local f; + while IFS= read -r -d '' f; do + isScript "$f" || continue; + read -r oldInterpreterLine < "$f"; + read -r oldPath arg0 args <<< "${oldInterpreterLine:2}"; + if [[ -z "$pathName" ]]; then + if [[ -n $strictDeps && $f == "$NIX_STORE"* ]]; then + pathName=HOST_PATH; + else + pathName=PATH; + fi; + fi; + if [[ "$oldPath" == *"/bin/env" ]]; then + if [[ $arg0 == "-S" ]]; then + arg0=${args%% *}; + args=${args#* }; + newPath="$(PATH="${!pathName}" command -v "env" || true)"; + args="-S $(PATH="${!pathName}" command -v "$arg0" || true) $args"; + else + if [[ $arg0 == "-"* || $arg0 == *"="* ]]; then + echo "$f: unsupported interpreter directive \"$oldInterpreterLine\" (set dontPatchShebangs=1 and handle shebang patching yourself)" 1>&2; + exit 1; + else + newPath="$(PATH="${!pathName}" command -v "$arg0" || true)"; + fi; + fi; + else + if [[ -z $oldPath ]]; then + oldPath="/bin/sh"; + fi; + newPath="$(PATH="${!pathName}" command -v "$(basename "$oldPath")" || true)"; + args="$arg0 $args"; + fi; + newInterpreterLine="$newPath $args"; + newInterpreterLine=${newInterpreterLine%${newInterpreterLine##*[![:space:]]}}; + if [[ -n "$oldPath" && "${oldPath:0:${#NIX_STORE}}" != "$NIX_STORE" ]]; then + if [[ -n "$newPath" && "$newPath" != "$oldPath" ]]; then + echo "$f: interpreter directive changed from \"$oldInterpreterLine\" to \"$newInterpreterLine\""; + escapedInterpreterLine=${newInterpreterLine//\\/\\\\}; + timestamp=$(stat --printf "%y" "$f"); + sed -i -e "1 s|.*|#\!$escapedInterpreterLine|" "$f"; + touch --date "$timestamp" "$f"; + fi; + fi; + done < <(find "$@" -type f -perm -0100 -print0) +} +patchShebangsAuto () +{ + + if [[ -z "${dontPatchShebangs-}" && -e "$prefix" ]]; then + if [[ "$output" != out && "$output" = "$outputDev" ]]; then + patchShebangs --build "$prefix"; + else + patchShebangs --host "$prefix"; + fi; + fi +} +prependToVar () +{ + + local -n nameref="$1"; + local useArray type; + if [ -n "$__structuredAttrs" ]; then + useArray=true; + else + useArray=false; + fi; + if declare -p "$1" 2> /dev/null | grep -q '^'; then + type="$(declare -p "$1")"; + if [[ "$type" =~ "declare -A" ]]; then + echo "prependToVar(): ERROR: trying to use prependToVar on an associative array." 1>&2; + return 1; + else + if [[ "$type" =~ "declare -a" ]]; then + useArray=true; + else + useArray=false; + fi; + fi; + fi; + shift; + if $useArray; then + nameref=("$@" ${nameref+"${nameref[@]}"}); + else + nameref="$* ${nameref-}"; + fi +} +printLines () +{ + + (( "$#" > 0 )) || return 0; + printf '%s\n' "$@" +} +printWords () +{ + + (( "$#" > 0 )) || return 0; + printf '%s ' "$@" +} +recordPropagatedDependencies () +{ + + declare -ra flatVars=(depsBuildBuildPropagated propagatedNativeBuildInputs depsBuildTargetPropagated depsHostHostPropagated propagatedBuildInputs depsTargetTargetPropagated); + declare -ra flatFiles=("${propagatedBuildDepFiles[@]}" "${propagatedHostDepFiles[@]}" "${propagatedTargetDepFiles[@]}"); + local propagatedInputsIndex; + for propagatedInputsIndex in "${!flatVars[@]}"; + do + local propagatedInputsSlice="${flatVars[$propagatedInputsIndex]}[@]"; + local propagatedInputsFile="${flatFiles[$propagatedInputsIndex]}"; + [[ -n "${!propagatedInputsSlice}" ]] || continue; + mkdir -p "${!outputDev}/nix-support"; + printWords ${!propagatedInputsSlice} > "${!outputDev}/nix-support/$propagatedInputsFile"; + done +} +runHook () +{ + + local hookName="$1"; + shift; + local hooksSlice="${hookName%Hook}Hooks[@]"; + local hook; + for hook in "_callImplicitHook 0 $hookName" ${!hooksSlice+"${!hooksSlice}"}; + do + _eval "$hook" "$@"; + done; + return 0 +} +runOneHook () +{ + + local hookName="$1"; + shift; + local hooksSlice="${hookName%Hook}Hooks[@]"; + local hook ret=1; + for hook in "_callImplicitHook 1 $hookName" ${!hooksSlice+"${!hooksSlice}"}; + do + if _eval "$hook" "$@"; then + ret=0; + break; + fi; + done; + return "$ret" +} +showPhaseFooter () +{ + + local phase="$1"; + local startTime="$2"; + local endTime="$3"; + local delta=$(( endTime - startTime )); + (( delta < 30 )) && return; + local H=$((delta/3600)); + local M=$((delta%3600/60)); + local S=$((delta%60)); + echo -n "$phase completed in "; + (( H > 0 )) && echo -n "$H hours "; + (( M > 0 )) && echo -n "$M minutes "; + echo "$S seconds" +} +showPhaseHeader () +{ + + local phase="$1"; + case "$phase" in + unpackPhase) + echo "unpacking sources" + ;; + patchPhase) + echo "patching sources" + ;; + configurePhase) + echo "configuring" + ;; + buildPhase) + echo "building" + ;; + checkPhase) + echo "running tests" + ;; + installPhase) + echo "installing" + ;; + fixupPhase) + echo "post-installation fixup" + ;; + installCheckPhase) + echo "running install tests" + ;; + *) + echo "$phase" + ;; + esac +} +stripDirs () +{ + + local cmd="$1"; + local ranlibCmd="$2"; + local paths="$3"; + local stripFlags="$4"; + local pathsNew=; + local p; + for p in ${paths}; + do + if [ -e "$prefix/$p" ]; then + pathsNew="${pathsNew} $prefix/$p"; + fi; + done; + paths=${pathsNew}; + if [ -n "${paths}" ]; then + echo "stripping (with command $cmd and flags $stripFlags) in $paths"; + find $paths -type f -a '!' -wholename "$prefix/lib/debug/*" -exec $cmd $stripFlags '{}' \; 2> /dev/null; + find $paths -name '*.a' -type f -exec $ranlibCmd '{}' \; 2> /dev/null; + fi +} +stripHash () +{ + + local strippedName casematchOpt=0; + strippedName="$(basename -- "$1")"; + shopt -q nocasematch && casematchOpt=1; + shopt -u nocasematch; + if [[ "$strippedName" =~ ^[a-z0-9]{32}- ]]; then + echo "${strippedName:33}"; + else + echo "$strippedName"; + fi; + if (( casematchOpt )); then + shopt -s nocasematch; + fi +} +substitute () +{ + + local input="$1"; + local output="$2"; + shift 2; + if [ ! -f "$input" ]; then + echo "substitute(): ERROR: file '$input' does not exist" 1>&2; + return 1; + fi; + local content; + consumeEntire content < "$input"; + if [ -e "$output" ]; then + chmod +w "$output"; + fi; + substituteStream content "file '$input'" "$@" > "$output" +} +substituteAll () +{ + + local input="$1"; + local output="$2"; + local -a args=(); + _allFlags; + substitute "$input" "$output" "${args[@]}" +} +substituteAllInPlace () +{ + + local fileName="$1"; + shift; + substituteAll "$fileName" "$fileName" "$@" +} +substituteAllStream () +{ + + local -a args=(); + _allFlags; + substituteStream "$1" "$2" "${args[@]}" +} +substituteInPlace () +{ + + local -a fileNames=(); + for arg in "$@"; + do + if [[ "$arg" = "--"* ]]; then + break; + fi; + fileNames+=("$arg"); + shift; + done; + for file in "${fileNames[@]}"; + do + substitute "$file" "$file" "$@"; + done +} +substituteStream () +{ + + local var=$1; + local description=$2; + shift 2; + while (( "$#" )); do + case "$1" in + --replace) + pattern="$2"; + replacement="$3"; + shift 3; + local savedvar; + savedvar="${!var}"; + eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}'; + if [ "$pattern" != "$replacement" ]; then + if [ "${!var}" == "$savedvar" ]; then + echo "substituteStream(): WARNING: pattern '$pattern' doesn't match anything in $description" 1>&2; + fi; + fi + ;; + --subst-var) + local varName="$2"; + shift 2; + if ! [[ "$varName" =~ ^[a-zA-Z_][a-zA-Z0-9_]*$ ]]; then + echo "substituteStream(): ERROR: substitution variables must be valid Bash names, \"$varName\" isn't." 1>&2; + return 1; + fi; + if [ -z ${!varName+x} ]; then + echo "substituteStream(): ERROR: variable \$$varName is unset" 1>&2; + return 1; + fi; + pattern="@$varName@"; + replacement="${!varName}"; + eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}' + ;; + --subst-var-by) + pattern="@$2@"; + replacement="$3"; + eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}'; + shift 3 + ;; + *) + echo "substituteStream(): ERROR: Invalid command line argument: $1" 1>&2; + return 1 + ;; + esac; + done; + printf "%s" "${!var}" +} +unpackFile () +{ + + curSrc="$1"; + echo "unpacking source archive $curSrc"; + if ! runOneHook unpackCmd "$curSrc"; then + echo "do not know how to unpack source archive $curSrc"; + exit 1; + fi +} +unpackPhase () +{ + + runHook preUnpack; + if [ -z "${srcs:-}" ]; then + if [ -z "${src:-}" ]; then + echo 'variable $src or $srcs should point to the source'; + exit 1; + fi; + srcs="$src"; + fi; + local -a srcsArray; + if [ -n "$__structuredAttrs" ]; then + srcsArray=("${srcs[@]}"); + else + srcsArray=($srcs); + fi; + local dirsBefore=""; + for i in *; + do + if [ -d "$i" ]; then + dirsBefore="$dirsBefore $i "; + fi; + done; + for i in "${srcsArray[@]}"; + do + unpackFile "$i"; + done; + : "${sourceRoot=}"; + if [ -n "${setSourceRoot:-}" ]; then + runOneHook setSourceRoot; + else + if [ -z "$sourceRoot" ]; then + for i in *; + do + if [ -d "$i" ]; then + case $dirsBefore in + *\ $i\ *) + + ;; + *) + if [ -n "$sourceRoot" ]; then + echo "unpacker produced multiple directories"; + exit 1; + fi; + sourceRoot="$i" + ;; + esac; + fi; + done; + fi; + fi; + if [ -z "$sourceRoot" ]; then + echo "unpacker appears to have produced no directories"; + exit 1; + fi; + echo "source root is $sourceRoot"; + if [ "${dontMakeSourcesWritable:-0}" != 1 ]; then + chmod -R u+w -- "$sourceRoot"; + fi; + runHook postUnpack +} +updateSourceDateEpoch () +{ + + local path="$1"; + local -a res=($(find "$path" -type f -not -newer "$NIX_BUILD_TOP/.." -printf '%T@ %p\0' | sort -n --zero-terminated | tail -n1 --zero-terminated | head -c -1)); + local time="${res[0]//\.[0-9]*/}"; + local newestFile="${res[1]}"; + if [ "${time:-0}" -gt "$SOURCE_DATE_EPOCH" ]; then + echo "setting SOURCE_DATE_EPOCH to timestamp $time of file $newestFile"; + export SOURCE_DATE_EPOCH="$time"; + local now="$(date +%s)"; + if [ "$time" -gt $((now - 60)) ]; then + echo "warning: file $newestFile may be generated; SOURCE_DATE_EPOCH may be non-deterministic"; + fi; + fi +} +PATH="$PATH${nix_saved_PATH:+:$nix_saved_PATH}" +XDG_DATA_DIRS="$XDG_DATA_DIRS${nix_saved_XDG_DATA_DIRS:+:$nix_saved_XDG_DATA_DIRS}" +export NIX_BUILD_TOP="$(mktemp -d -t nix-shell.XXXXXX)" +export TMP="$NIX_BUILD_TOP" +export TMPDIR="$NIX_BUILD_TOP" +export TEMP="$NIX_BUILD_TOP" +export TEMPDIR="$NIX_BUILD_TOP" +eval "$shellHook" diff --git a/archetypes/default.md b/archetypes/default.md deleted file mode 100644 index 17a3207..0000000 --- a/archetypes/default.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: "{{ replace .TranslationBaseName "-" " " | title }}" -date: {{ .Date }} -draft: true ---- diff --git a/archetypes/home.md b/archetypes/home.md deleted file mode 100644 index 1ed012a..0000000 --- a/archetypes/home.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: "{{ replace .TranslationBaseName "-" " " | title }}" -draft: true -weight: 0 ---- diff --git a/archetypes/projects.md b/archetypes/projects.md deleted file mode 100644 index 4523f83..0000000 --- a/archetypes/projects.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: "{{ replace .TranslationBaseName "-" " " | title }}" # Title of your project -date: {{ .Date }} -weight: 0 # Order in which to show this project on the home page -external_link: "" # Optional external link instead of modal -resources: - - src: plant.jpg - params: - weight: -100 # Optional weighting for a specific image in this project folder -draft: true ---- diff --git a/assets/.gitattributes b/assets/.gitattributes deleted file mode 100644 index cea6c74..0000000 --- a/assets/.gitattributes +++ /dev/null @@ -1,2 +0,0 @@ -vendor/** linguist-generated=true -vendor/** -diff -merge diff --git a/assets/js/index.js b/assets/js/index.js deleted file mode 100644 index 292f4f8..0000000 --- a/assets/js/index.js +++ /dev/null @@ -1,35 +0,0 @@ -// Nav burger animation -document.addEventListener('DOMContentLoaded', function () { - // Get all "navbar-burger" elements - var $navbarBurgers = Array.prototype.slice.call(document.querySelectorAll('.navbar-burger'), 0) - // Check if there are any navbar burgers - if ($navbarBurgers.length > 0) { - // Add a click event on each of them - $navbarBurgers.forEach(function ($el) { - $el.addEventListener('click', function () { - // Get the target from the "data-target" attribute - var target = $el.dataset.target - var $target = document.getElementById(target) - // Toggle the class on both the "navbar-burger" and the "navbar-menu" - $el.classList.toggle('is-active') - $target.classList.toggle('is-active') - }) - }) - } -}) - -// Modal closer -$('.card').click(function () { - $($(this).attr('data-target')).addClass('is-active') - $('html').addClass('modal-open') -}) -$('.modal-close').click(function () { - $($(this).attr('data-target')).removeClass('is-active') - $('html').removeClass('modal-open') -}) -$(document).keypress(function (e) { - if (e.which === 0) { - $('.modal.is-active').removeClass('is-active') - $('html').removeClass('modal-open') - } -}) \ No newline at end of file diff --git a/assets/js/initOwlCarousel.js b/assets/js/initOwlCarousel.js deleted file mode 100644 index fad5b64..0000000 --- a/assets/js/initOwlCarousel.js +++ /dev/null @@ -1,9 +0,0 @@ -$(document).ready(function(){ - $(".owl-carousel").owlCarousel({ - loop: true, - nav: true, - margin: 10, - items: 1, - autoHeight: true - }); -}); diff --git a/assets/sass/_academicons-import.sass b/assets/sass/_academicons-import.sass deleted file mode 100644 index 44349a4..0000000 --- a/assets/sass/_academicons-import.sass +++ /dev/null @@ -1,2 +0,0 @@ -@import "../vendor/academicons-free/scss/academicons.scss" -@import "../vendor/academicons-free/scss/academicons.min.scss" \ No newline at end of file diff --git a/assets/sass/_base-variables.sass b/assets/sass/_base-variables.sass deleted file mode 100644 index 49c7b0d..0000000 --- a/assets/sass/_base-variables.sass +++ /dev/null @@ -1,7 +0,0 @@ -$family-sans-serif: Nunito Sans, sans-serif -$family-monospace: monospace -$code: $primary -$title-weight: 300 -$navbar-background-color: $background -$navbar-item-hover-background-color: $background -$navbar-item-hover-color: $secondary diff --git a/assets/sass/_base.sass b/assets/sass/_base.sass deleted file mode 100644 index 721b7c1..0000000 --- a/assets/sass/_base.sass +++ /dev/null @@ -1,309 +0,0 @@ -html, body - background-color: $background - -html - scroll-behavior: smooth - -html.modal-open - overflow: hidden - -@keyframes fadeIn - from - opacity: 0 - to - opacity: 1 - -.fade-in - opacity: 0 - animation: fadeIn ease-in 1 - animation-fill-mode: forwards - animation-duration: 1s - &.one - animation-delay: 0.7s - &.two - animation-delay: 1.4s - &.three - animation-delay: 1.8s - -a - color: $primary - &:hover - color: $link-hover - font-style: none - &:active - color: $primary - -h1, h2, .title, .subtitle - color: $h-color - -p - color: $body-color - -.title - font-weight: $title-weight - -ul - padding: 0 - -img - border-radius: 5px - border: 1px solid $secondary - box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.4) - -hr - background-color: $secondary - height: 1px - -details - padding: .5em .5em 0 - -summary - margin: -.5em -.5em 0 - padding: .5em - cursor: pointer - -details[open] - padding: .5em - -details[open] summary - margin-bottom: .5em - -.container - max-width: 1000px - -.noborder - border-radius: 0px - border: none - box-shadow: none - -.hidden - display: none - -.img-responsive - border-radius: 5px - box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.4) - -.avatar - border: none - @include mobile - max-width: 50% - -.thumbnail - border: none - -.card-thumbnail - width: 100% - height: 100% - object-fit: cover - -.bold-title - font-size: 6rem - line-height: 1.2 - margin-bottom: 0.25em - @include mobile - font-size: 3rem - text-align: center - -.top-pad - padding-top: 1rem - -.bottom-pad - padding-bottom: 1rem - -.strong-post-title - font-weight: $weight-bold - -.post-item - display: block - list-style: none - list-style-position: outside - margin-left: 0 - -.post-data, .blog-share, .footer-text - font-size: 1rem - line-height: 2rem - color: $body-color - -.social-icons - padding: 0 10px - a - margin: 0 5px - -.icon - height: 2rem - width: 2rem - margin: 0 10px - -.fab - font-size: 1.3rem - -.blog-share - .icon - height: 1rem - width: 1rem - vertical-align: baseline - margin: 0 5px - -.navbar - background-color: $navbar-background-color - -.navbar-burger - margin-right: auto - color: $primary - -.navbar-burger:hover - background-color: $navbar-background-color - -.navbar-item - text-transform: uppercase - font-size: 0.875rem - color: $body-color - &:hover, &:active - background-color: $navbar-background-color !important - -.owl-nav - height: 50px - -.owl-next, .owl-prev - height: 30px - span - font-size: 3rem - line-height: 30px - -.footer-text - font-size: 0.8em - a - color: $body-color - .fab - font-size: 0.8em - vertical-align: baseline - -.tags-list - width: 70% - margin: 0 auto - text-align: center - font-size: 1.5rem - @include mobile - width: 100% - -.tag-cloud - font-size: 1.5rem - margin-right: 1.5rem - @include mobile - font-size: 1.5rem - margin-right: 1rem - -.card - background-color: transparent - box-shadow: none - -.card-content - font-size: 1.5rem - -.has-content-centered - justify-content: center - -.markdown - color: $body-color !important - p - margin: 1em 0 - h1 - font-size: $size-1 - @include mobile - font-size: $size-2 - h2 - font-size: $size-2 - line-height: 1em - margin-top: 1em - margin-bottom: 0.5em - @include mobile - font-size: $size-3 - h3 - font-size: $size-3 - @include mobile - font-size: $size-4 - h4 - font-size: $size-4 - @include mobile - font-size: $size-5 - h5 - font-size: $size-5 - h6 - font-size: $size-6 - a - &:hover - color: $secondary - ul - margin-bottom: 1.25rem - list-style: disc - ul ul - margin-left: 0.5em - margin-bottom: 0 - li - margin-left: 1em - list-style-position: outside - padding-left: 0.25em - ol - margin-bottom: 1.25rem - ol ol - margin-left: 0.5em - list-style-type: lower-alpha - margin-bottom: 0 - ol ol ol - list-style-type: lower-roman - em - font-style: italic - strong - font-weight: 700 - hr - position: relative - margin: 1.75rem 0 - border: 0 - border-top: 1px solid $secondary - abbr - font-size: 0.8rem - font-weight: bold - color: #666666 - text-transform: uppercase - abbr[title] - cursor: help - border-bottom: 1px dotted #808080 - blockquote - padding: .5rem 1rem - margin: .8rem 0 - color: #7a7a7a - border-left: .25rem solid #e5e5e5 - blockquote p:last-child - margin-bottom: 0 - table - margin: 2em 0 2em 0 - width: 100% - border: 1px solid #e5e5e5 - border-collapse: collapse - td, th - padding: .25rem .5rem - border: 1px solid #e5e5e5 - text-align: center - background-color: #f7f7f7 - tbody tr:nth-child(odd) td, - tbody tr:nth-child(odd) th - background-color: darken(#f7f7f7, 10%) - tbody tr:nth-child(even) td, - tbody tr:nth-child(even) th - background-color: #f7f7f7 - code, pre - border-radius: 3px - p>code, p>a>code - background-color: rgba($secondary, 0.3) !important - img - display: block - margin: 2rem auto - max-width: 100% - figure > img - margin: auto - figcaption - margin: 0.5rem auto - max-width: 500px - text-align: center - figcaption > h4 - font-size: 0.8rem diff --git a/assets/sass/_bulma-import.sass b/assets/sass/_bulma-import.sass deleted file mode 100644 index 28a0573..0000000 --- a/assets/sass/_bulma-import.sass +++ /dev/null @@ -1,14 +0,0 @@ -@import "../vendor/bulma/sass/utilities/initial-variables" -@import "../vendor/bulma/sass/utilities/functions" -@import "../vendor/bulma/sass/utilities/derived-variables" -@import "../vendor/bulma/sass/utilities/mixins" -@import "../vendor/bulma/sass/base/_all" -@import "../vendor/bulma/sass/helpers/_all" -@import "../vendor/bulma/sass/elements/container" -@import "../vendor/bulma/sass/elements/image" -@import "../vendor/bulma/sass/elements/title" -@import "../vendor/bulma/sass/components/card" -@import "../vendor/bulma/sass/components/modal" -@import "../vendor/bulma/sass/components/navbar" -@import "../vendor/bulma/sass/grid/columns" -@import "../vendor/bulma/sass/layout/_all" diff --git a/assets/sass/_dark-style.sass b/assets/sass/_dark-style.sass deleted file mode 100644 index 7de9475..0000000 --- a/assets/sass/_dark-style.sass +++ /dev/null @@ -1,15 +0,0 @@ -.modal-card-title - color: $primary - -.modal-card-body - background-color: $background - -.markdown - strong - color: $body-color - -.modal-background - background-color: rgba(0,0,0,0.8) - -.modal-close - background-color: $primary diff --git a/assets/sass/_dark-variables.sass b/assets/sass/_dark-variables.sass deleted file mode 100644 index 9cd57f0..0000000 --- a/assets/sass/_dark-variables.sass +++ /dev/null @@ -1,8 +0,0 @@ -$body-color: #ffffff -$background: #222222 -$primary: #00b8d4 -$secondary: #efefef -$h-color: $secondary -$navbar-item-color: $body-color -$code-background: #222222 -$link-hover: $secondary diff --git a/assets/sass/_fontawesome-import.sass b/assets/sass/_fontawesome-import.sass deleted file mode 100644 index 4f599c3..0000000 --- a/assets/sass/_fontawesome-import.sass +++ /dev/null @@ -1,3 +0,0 @@ -@import "../vendor/fontawesome-free/scss/fontawesome.scss" -@import "../vendor/fontawesome-free/scss/brands.scss" -@import "../vendor/fontawesome-free/scss/solid.scss" diff --git a/assets/sass/_fonts.sass b/assets/sass/_fonts.sass deleted file mode 100644 index df75f92..0000000 --- a/assets/sass/_fonts.sass +++ /dev/null @@ -1,25 +0,0 @@ -$nunito-font-path: "../fonts/NunitoSans/NunitoSans-Regular.ttf" - -/* vietnamese */ -@font-face - font-family: "Nunito Sans" - font-style: normal - font-weight: normal - src: local("Nunito Sans Regular"), local("NunitoSans-Regular"), url(#{$nunito-font-path}) format("woff2") - unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB - -/* latin-ext */ -@font-face - font-family: "Nunito Sans" - font-style: normal - font-weight: normal - src: local("Nunito Sans Regular"), local("NunitoSans-Regular"), url(#{$nunito-font-path}) format("woff2") - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF - -/* latin */ -@font-face - font-family: "Nunito Sans" - font-style: normal - font-weight: normal - src: local("Nunito Sans Regular"), local("NunitoSans-Regular"), url(#{$nunito-font-path}) format("woff2") - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD diff --git a/assets/sass/_light-style.sass b/assets/sass/_light-style.sass deleted file mode 100644 index 57c2897..0000000 --- a/assets/sass/_light-style.sass +++ /dev/null @@ -1,5 +0,0 @@ -.modal-background - background-color: rgba(256, 256, 256, 0.90) - -.modal-close - background-color: #000000 diff --git a/assets/sass/_light-variables.sass b/assets/sass/_light-variables.sass deleted file mode 100644 index df07beb..0000000 --- a/assets/sass/_light-variables.sass +++ /dev/null @@ -1,7 +0,0 @@ -$body-color: #4a4a4a -$background: #ffffff -$primary: #00b8d4 -$secondary: #dbdbdb -$h-color: #222222 -$link-hover: #000000 -$code-background: transparent \ No newline at end of file diff --git a/assets/sass/style.sass b/assets/sass/style.sass deleted file mode 100644 index 77327bd..0000000 --- a/assets/sass/style.sass +++ /dev/null @@ -1,32 +0,0 @@ -{{ $themeStyle := .Site.Params.themeStyle | default "light" }} - -{{ if eq $themeStyle "auto" }} -@import "fonts" -@import "light-variables" -@import "base-variables" -@import "bulma-import" -@import "fontawesome-import" -@import "academicons-import" -@import "base" -@import "light-style" - -@media (prefers-color-scheme: dark) - @import "fonts" - @import "dark-variables" - @import "base-variables" - @import "bulma-import" - @import "fontawesome-import" - @import "academicons-import" - @import "base" - @import "dark-style" - -{{ else }} -@import "fonts" -@import "{{ $themeStyle }}-variables" -@import "base-variables" -@import "bulma-import" -@import "fontawesome-import" -@import "academicons-import" -@import "base" -@import "{{ $themeStyle }}-style" -{{ end }} diff --git a/assets/vendor/academicons-free/License.txt b/assets/vendor/academicons-free/License.txt deleted file mode 100644 index 5f0f56e..0000000 --- a/assets/vendor/academicons-free/License.txt +++ /dev/null @@ -1,27 +0,0 @@ -# What is Academicons? - -Academicons is a specialist icon font for academics. It contains icons for websites and organisations related to academia that are often missing from mainstream font packages. It can be used by itself, but its primary purpose is to be used as a supplementary package alongside a larger icon set. Go [here](http://jpswalsh.github.io/academicons) to view the full icon set along with instructions for their use. - -# Requesting new icons - -New icons can be requested by creating an issue [here](https://github.com/jpswalsh/academicons/issues). Before submitting a request, please check that the following conditions are satisfied: - - * The organisation in question is already using a logo/icon of appropriate dimensions (roughly square). If that doesn't exist, then there's really not much that can be done, and the request will have to be ignored until such time that a logo/icon can be provided. - - * An icon of appropriate resolution can be provided or linked to. Ideally, the provided file will be a vector file (*e.g.* SVG, EPS, AI) or a PDF with the vector file embedded. These files are all very easy to work with, and result in the most faithful reproductions of the icon. Altenatively, high resolution raster images (*e.g.* JPEG, PNG, GIF) can work, but only if the resolution is high enough that the underlying shapes can be reproduced. Icons made from raster images take much longer to prepare, and require hand drawing each component and figuring out the exact typeface used for any letters. This process can be rather tedious, and I will only do this if there is significant demand for the icon. Favicon files can be useful in conjunction with larger logos that have non-ideal aspect ratios—where they can indicate which part of the logo to strip down to—but they are pretty much useless by themselves. The only time I have made an icon from a favicon was for arXiv, and that was only because: (i) It was heavily requested, and (ii) I was able to get feedback on the new icon from Paul Ginsparg, who made the original icon. You can still submit the request, but it will likely be ignored until someone else comes along and provides the file we need. - - * The icon can be reduced to monochrome. This is one of the basic requirements of a versatile icon, but it is often overlooked when icons are made by people who are not professional designers. Academia is full of unprofessional designers, and it is sometimes the case that a logo relies entirely on the use of different colours. In certain cases we can be creative (see the dblp logo), but more often than not it will be impossible to create a monochrome version of the icon. Again, feel free to make the request, but it will probably be ignored if an alternate logo cannot be found. - -# License - -- The Academicons font is licensed under the SIL OFL 1.1: - - [http://scripts.sil.org/OFL](http://scripts.sil.org/OFL) -- Academicons CSS, LESS, and SASS files are licensed under the MIT License: - - [http://opensource.org/licenses/mit-license.html](http://opensource.org/licenses/mit-license.html) -- The Academicons documentation is licensed under the CC BY 3.0 License: - - [http://creativecommons.org/licenses/by/3.0/](http://creativecommons.org/licenses/by/3.0/) - -# Author - -- GitHub: [https://github.com/jpswalsh](https://github.com/jpswalsh) -- Web: [http://jpswalsh.com](http://jpswalsh.com) diff --git a/assets/vendor/academicons-free/fonts/academicons.eot b/assets/vendor/academicons-free/fonts/academicons.eot deleted file mode 100644 index ab3e66f..0000000 Binary files a/assets/vendor/academicons-free/fonts/academicons.eot and /dev/null differ diff --git a/assets/vendor/academicons-free/fonts/academicons.svg b/assets/vendor/academicons-free/fonts/academicons.svg deleted file mode 100644 index 4bb01a4..0000000 --- a/assets/vendor/academicons-free/fonts/academicons.svg +++ /dev/null @@ -1,1703 +0,0 @@ - - - - - -Created by FontForge 20190801 at Sun Mar 13 15:44:27 2022 - By Nicolas - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/assets/vendor/academicons-free/fonts/academicons.ttf b/assets/vendor/academicons-free/fonts/academicons.ttf deleted file mode 100644 index 8bcaf63..0000000 Binary files a/assets/vendor/academicons-free/fonts/academicons.ttf and /dev/null differ diff --git a/assets/vendor/academicons-free/fonts/academicons.woff b/assets/vendor/academicons-free/fonts/academicons.woff deleted file mode 100644 index 3d08c23..0000000 Binary files a/assets/vendor/academicons-free/fonts/academicons.woff and /dev/null differ diff --git a/assets/vendor/academicons-free/scss/academicons.min.scss b/assets/vendor/academicons-free/scss/academicons.min.scss deleted file mode 100644 index ac1fc13..0000000 --- a/assets/vendor/academicons-free/scss/academicons.min.scss +++ /dev/null @@ -1,693 +0,0 @@ -@font-face { - font-family: 'Academicons'; - font-style: normal; - font-weight: 400; - font-display: block; - src: url('../fonts/academicons.eot'); - src: url('../fonts/academicons.eot') format("embedded-opentype"), url('../fonts/academicons.ttf') format("truetype"), url('../fonts/academicons.woff') format("woff"), url('../fonts/academicons.svg') format("svg"); -} - -.ai { - font-family: 'Academicons'; - font-weight: 400; - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - line-height: 1; -} - -.ai-academia:before { - content: "\e9af"; -} - -.ai-academia-square:before { - content: "\e93d"; -} - -.ai-acclaim:before { - content: "\e92e"; -} - -.ai-acclaim-square:before { - content: "\e93a"; -} - -.ai-acm:before { - content: "\e93c"; -} - -.ai-acm-square:before { - content: "\e95d"; -} - -.ai-acmdl:before { - content: "\e96a"; -} - -.ai-acmdl-square:before { - content: "\e9d3"; -} - -.ai-ads:before { - content: "\e9cb"; -} - -.ai-ads-square:before { - content: "\e94a"; -} - -.ai-africarxiv:before { - content: "\e91b"; -} - -.ai-africarxiv-square:before { - content: "\e90b"; -} - -.ai-archive:before { - content: "\e955"; -} - -.ai-archive-square:before { - content: "\e956"; -} - -.ai-arxiv:before { - content: "\e974"; -} - -.ai-arxiv-square:before { - content: "\e9a6"; -} - -.ai-biorxiv:before { - content: "\e9a2"; -} - -.ai-biorxiv-square:before { - content: "\e98b"; -} - -.ai-ceur:before { - content: "\e96d"; -} - -.ai-ceur-square:before { - content: "\e92f"; -} - -.ai-ciencia-vitae:before { - content: "\e912"; -} - -.ai-ciencia-vitae-square:before { - content: "\e913"; -} - -.ai-closed-access:before { - content: "\e942"; -} - -.ai-closed-access-square:before { - content: "\e943"; -} - -.ai-conversation:before { - content: "\e94c"; -} - -.ai-conversation-square:before { - content: "\e915"; -} - -.ai-coursera:before { - content: "\e95f"; -} - -.ai-coursera-square:before { - content: "\e97f"; -} - -.ai-crossref:before { - content: "\e918"; -} - -.ai-crossref-square:before { - content: "\e919"; -} - -.ai-cv:before { - content: "\e9a5"; -} - -.ai-cv-square:before { - content: "\e90a"; -} - -.ai-datacite:before { - content: "\e91c"; -} - -.ai-datacite-square:before { - content: "\e91d"; -} - -.ai-dataverse:before { - content: "\e9f7"; -} - -.ai-dataverse-square:before { - content: "\e9e4"; -} - -.ai-dblp:before { - content: "\e94f"; -} - -.ai-dblp-square:before { - content: "\e93f"; -} - -.ai-depsy:before { - content: "\e97a"; -} - -.ai-depsy-square:before { - content: "\e94b"; -} - -.ai-doi:before { - content: "\e97e"; -} - -.ai-doi-square:before { - content: "\e98f"; -} - -.ai-dryad:before { - content: "\e97c"; -} - -.ai-dryad-square:before { - content: "\e98c"; -} - -.ai-elsevier:before { - content: "\e961"; -} - -.ai-elsevier-square:before { - content: "\e910"; -} - -.ai-figshare:before { - content: "\e981"; -} - -.ai-figshare-square:before { - content: "\e9e7"; -} - -.ai-google-scholar:before { - content: "\e9d4"; -} - -.ai-google-scholar-square:before { - content: "\e9f9"; -} - -.ai-hal:before { - content: "\e92c"; -} - -.ai-hal-square:before { - content: "\e92d"; -} - -.ai-hypothesis:before { - content: "\e95a"; -} - -.ai-hypothesis-square:before { - content: "\e95b"; -} - -.ai-ideas-repec:before { - content: "\e9ed"; -} - -.ai-ideas-repec-square:before { - content: "\e9f8"; -} - -.ai-ieee:before { - content: "\e929"; -} - -.ai-ieee-square:before { - content: "\e9b9"; -} - -.ai-impactstory:before { - content: "\e9cf"; -} - -.ai-impactstory-square:before { - content: "\e9aa"; -} - -.ai-inaturalist:before { - content: "\e900"; -} - -.ai-inaturalist-square:before { - content: "\e901"; -} - -.ai-inpn:before { - content: "\e902"; -} - -.ai-inpn-square:before { - content: "\e903"; -} - -.ai-inspire:before { - content: "\e9e9"; -} - -.ai-inspire-square:before { - content: "\e9fe"; -} - -.ai-isidore:before { - content: "\e936"; -} - -.ai-isidore-square:before { - content: "\e954"; -} - -.ai-jstor:before { - content: "\e938"; -} - -.ai-jstor-square:before { - content: "\e944"; -} - -.ai-lattes:before { - content: "\e9b3"; -} - -.ai-lattes-square:before { - content: "\e99c"; -} - -.ai-mathoverflow:before { - content: "\e9f6"; -} - -.ai-mathoverflow-square:before { - content: "\e97b"; -} - -.ai-mendeley:before { - content: "\e9f0"; -} - -.ai-mendeley-square:before { - content: "\e9f3"; -} - -.ai-moodle:before { - content: "\e907"; -} - -.ai-moodle-square:before { - content: "\e908"; -} - -.ai-mtmt:before { - content: "\e950"; -} - -.ai-mtmt-square:before { - content: "\e951"; -} - -.ai-nakala:before { - content: "\e940"; -} - -.ai-nakala-square:before { - content: "\e941"; -} - -.ai-obp:before { - content: "\e92a"; -} - -.ai-obp-square:before { - content: "\e92b"; -} - -.ai-open-access:before { - content: "\e939"; -} - -.ai-open-access-square:before { - content: "\e9f4"; -} - -.ai-open-data:before { - content: "\e966"; -} - -.ai-open-data-square:before { - content: "\e967"; -} - -.ai-open-materials:before { - content: "\e968"; -} - -.ai-open-materials-square:before { - content: "\e969"; -} - -.ai-openedition:before { - content: "\e946"; -} - -.ai-openedition-square:before { - content: "\e947"; -} - -.ai-orcid:before { - content: "\e9d9"; -} - -.ai-orcid-square:before { - content: "\e9c3"; -} - -.ai-osf:before { - content: "\e9ef"; -} - -.ai-osf-square:before { - content: "\e931"; -} - -.ai-overleaf:before { - content: "\e914"; -} - -.ai-overleaf-square:before { - content: "\e98d"; -} - -.ai-philpapers:before { - content: "\e98a"; -} - -.ai-philpapers-square:before { - content: "\e96f"; -} - -.ai-piazza:before { - content: "\e99a"; -} - -.ai-piazza-square:before { - content: "\e90c"; -} - -.ai-preregistered:before { - content: "\e906"; -} - -.ai-preregistered-square:before { - content: "\e96b"; -} - -.ai-protocols:before { - content: "\e952"; -} - -.ai-protocols-square:before { - content: "\e953"; -} - -.ai-psyarxiv:before { - content: "\e90e"; -} - -.ai-psyarxiv-square:before { - content: "\e90f"; -} - -.ai-publons:before { - content: "\e937"; -} - -.ai-publons-square:before { - content: "\e94e"; -} - -.ai-pubmed:before { - content: "\e99f"; -} - -.ai-pubmed-square:before { - content: "\e97d"; -} - -.ai-pubpeer:before { - content: "\e922"; -} - -.ai-pubpeer-square:before { - content: "\e923"; -} - -.ai-researcherid:before { - content: "\e91a"; -} - -.ai-researcherid-square:before { - content: "\e95c"; -} - -.ai-researchgate:before { - content: "\e95e"; -} - -.ai-researchgate-square:before { - content: "\e99e"; -} - -.ai-ror:before { - content: "\e948"; -} - -.ai-ror-square:before { - content: "\e949"; -} - -.ai-sci-hub:before { - content: "\e959"; -} - -.ai-sci-hub-square:before { - content: "\e905"; -} - -.ai-scirate:before { - content: "\e98e"; -} - -.ai-scirate-square:before { - content: "\e99d"; -} - -.ai-scopus:before { - content: "\e91e"; -} - -.ai-scopus-square:before { - content: "\e91f"; -} - -.ai-semantic-scholar:before { - content: "\e96e"; -} - -.ai-semantic-scholar-square:before { - content: "\e96c"; -} - -.ai-springer:before { - content: "\e928"; -} - -.ai-springer-square:before { - content: "\e99b"; -} - -.ai-ssrn:before { - content: "\e916"; -} - -.ai-ssrn-square:before { - content: "\e917"; -} - -.ai-stackoverflow:before { - content: "\e920"; -} - -.ai-stackoverflow-square:before { - content: "\e921"; -} - -.ai-zenodo:before { - content: "\e911"; -} - -.ai-zotero:before { - content: "\e962"; -} - -.ai-zotero-square:before { - content: "\e932"; -} - -.ai-lg { - font-size: 1.33333em; - line-height: 0.75em; - vertical-align: -.0667em; -} - -.ai-xs { - font-size: .75em; -} - -.ai-sm { - font-size: .875em; -} - -.ai-1x { - font-size: 1em; -} - -.ai-2x { - font-size: 2em; -} - -.ai-3x { - font-size: 3em; -} - -.ai-4x { - font-size: 4em; -} - -.ai-5x { - font-size: 5em; -} - -.ai-6x { - font-size: 6em; -} - -.ai-7x { - font-size: 7em; -} - -.ai-8x { - font-size: 8em; -} - -.ai-9x { - font-size: 9em; -} - -.ai-10x { - font-size: 10em; -} - -.ai-fw { - text-align: center; - width: 1.25em; -} - -.ai-ul { - list-style-type: none; - margin-left: 2.5em; - padding-left: 0; - - > li { - position: relative; - } -} - -.ai-li { - left: -2em; - position: absolute; - text-align: center; - width: 2em; - line-height: inherit; -} - -.ai-border { - border: solid 0.08em #eee; - border-radius: .1em; - padding: .2em .25em .15em; -} - -.ai-pull-left { - float: left; -} - -.ai-pull-right { - float: right; -} - -.ai { - &.ai-pull-left, &.ai-pull-right { - margin-right: .3em; - } -} - -.ai-stack { - display: inline-block; - height: 2em; - line-height: 2em; - position: relative; - vertical-align: middle; - width: 2.5em; -} - -.ai-stack-1x, .ai-stack-2x { - left: 0; - position: absolute; - text-align: center; - width: 100%; -} - -.ai-stack-1x { - line-height: inherit; -} - -.ai-stack-2x { - font-size: 2em; -} - -.ai-inverse { - color: #fff; -} \ No newline at end of file diff --git a/assets/vendor/academicons-free/scss/academicons.scss b/assets/vendor/academicons-free/scss/academicons.scss deleted file mode 100644 index 0f7d7c4..0000000 --- a/assets/vendor/academicons-free/scss/academicons.scss +++ /dev/null @@ -1,703 +0,0 @@ -/* - * Academicons 1.9.2 by James Walsh (https://github.com/jpswalsh) and Katja Bercic (https://github.com/katjabercic) - * Fonts generated using FontForge - https://fontforge.org - * Square icons designed to be used alongside Font Awesome square icons - https://fortawesome.github.io/Font-Awesome/ - * Licenses - Font: SIL OFL 1.1, CSS: MIT License - */ -$ai-font-path: "../fonts/academicons-free/webfonts" !default; - -@font-face { - font-family: 'Academicons'; - font-style: normal; - font-weight: 400; - font-display: block; - src: url('#{$ai-font-path}/academicons.eot'); - src: url('#{$ai-font-path}/academicons.eot') format("embedded-opentype"), url('#{$ai-font-path}/academicons.ttf') format("truetype"), url('#{$ai-font-path}/academicons.woff') format("woff"), url('#{$ai-font-path}//academicons.svg') format("svg"); -} - -.ai { - font-family: 'Academicons'; - font-weight: 400; - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - line-height: 1; -} - -.ai-academia:before { - content: "\e9af"; -} - -.ai-academia-square:before { - content: "\e93d"; -} - -.ai-acclaim:before { - content: "\e92e"; -} - -.ai-acclaim-square:before { - content: "\e93a"; -} - -.ai-acm:before { - content: "\e93c"; -} - -.ai-acm-square:before { - content: "\e95d"; -} - -.ai-acmdl:before { - content: "\e96a"; -} - -.ai-acmdl-square:before { - content: "\e9d3"; -} - -.ai-ads:before { - content: "\e9cb"; -} - -.ai-ads-square:before { - content: "\e94a"; -} - -.ai-africarxiv:before { - content: "\e91b"; -} - -.ai-africarxiv-square:before { - content: "\e90b"; -} - -.ai-archive:before { - content: "\e955"; -} - -.ai-archive-square:before { - content: "\e956"; -} - -.ai-arxiv:before { - content: "\e974"; -} - -.ai-arxiv-square:before { - content: "\e9a6"; -} - -.ai-biorxiv:before { - content: "\e9a2"; -} - -.ai-biorxiv-square:before { - content: "\e98b"; -} - -.ai-ceur:before { - content: "\e96d"; -} - -.ai-ceur-square:before { - content: "\e92f"; -} - -.ai-ciencia-vitae:before { - content: "\e912"; -} - -.ai-ciencia-vitae-square:before { - content: "\e913"; -} - -.ai-closed-access:before { - content: "\e942"; -} - -.ai-closed-access-square:before { - content: "\e943"; -} - -.ai-conversation:before { - content: "\e94c"; -} - -.ai-conversation-square:before { - content: "\e915"; -} - -.ai-coursera:before { - content: "\e95f"; -} - -.ai-coursera-square:before { - content: "\e97f"; -} - -.ai-crossref:before { - content: "\e918"; -} - -.ai-crossref-square:before { - content: "\e919"; -} - -.ai-cv:before { - content: "\e9a5"; -} - -.ai-cv-square:before { - content: "\e90a"; -} - -.ai-datacite:before { - content: "\e91c"; -} - -.ai-datacite-square:before { - content: "\e91d"; -} - -.ai-dataverse:before { - content: "\e9f7"; -} - -.ai-dataverse-square:before { - content: "\e9e4"; -} - -.ai-dblp:before { - content: "\e94f"; -} - -.ai-dblp-square:before { - content: "\e93f"; -} - -.ai-depsy:before { - content: "\e97a"; -} - -.ai-depsy-square:before { - content: "\e94b"; -} - -.ai-doi:before { - content: "\e97e"; -} - -.ai-doi-square:before { - content: "\e98f"; -} - -.ai-dryad:before { - content: "\e97c"; -} - -.ai-dryad-square:before { - content: "\e98c"; -} - -.ai-elsevier:before { - content: "\e961"; -} - -.ai-elsevier-square:before { - content: "\e910"; -} - -.ai-figshare:before { - content: "\e981"; -} - -.ai-figshare-square:before { - content: "\e9e7"; -} - -.ai-google-scholar:before { - content: "\e9d4"; -} - -.ai-google-scholar-square:before { - content: "\e9f9"; -} - -.ai-hal:before { - content: "\e92c"; -} - -.ai-hal-square:before { - content: "\e92d"; -} - -.ai-hypothesis:before { - content: "\e95a"; -} - -.ai-hypothesis-square:before { - content: "\e95b"; -} - -.ai-ideas-repec:before { - content: "\e9ed"; -} - -.ai-ideas-repec-square:before { - content: "\e9f8"; -} - -.ai-ieee:before { - content: "\e929"; -} - -.ai-ieee-square:before { - content: "\e9b9"; -} - -.ai-impactstory:before { - content: "\e9cf"; -} - -.ai-impactstory-square:before { - content: "\e9aa"; -} - -.ai-inaturalist:before { - content: "\e900"; -} - -.ai-inaturalist-square:before { - content: "\e901"; -} - -.ai-inpn:before { - content: "\e902"; -} - -.ai-inpn-square:before { - content: "\e903"; -} - -.ai-inspire:before { - content: "\e9e9"; -} - -.ai-inspire-square:before { - content: "\e9fe"; -} - -.ai-isidore:before { - content: "\e936"; -} - -.ai-isidore-square:before { - content: "\e954"; -} - -.ai-jstor:before { - content: "\e938"; -} - -.ai-jstor-square:before { - content: "\e944"; -} - -.ai-lattes:before { - content: "\e9b3"; -} - -.ai-lattes-square:before { - content: "\e99c"; -} - -.ai-mathoverflow:before { - content: "\e9f6"; -} - -.ai-mathoverflow-square:before { - content: "\e97b"; -} - -.ai-mendeley:before { - content: "\e9f0"; -} - -.ai-mendeley-square:before { - content: "\e9f3"; -} - -.ai-moodle:before { - content: "\e907"; -} - -.ai-moodle-square:before { - content: "\e908"; -} - -.ai-mtmt:before { - content: "\e950"; -} - -.ai-mtmt-square:before { - content: "\e951"; -} - -.ai-nakala:before { - content: "\e940"; -} - -.ai-nakala-square:before { - content: "\e941"; -} - -.ai-obp:before { - content: "\e92a"; -} - -.ai-obp-square:before { - content: "\e92b"; -} - -.ai-open-access:before { - content: "\e939"; -} - -.ai-open-access-square:before { - content: "\e9f4"; -} - -.ai-open-data:before { - content: "\e966"; -} - -.ai-open-data-square:before { - content: "\e967"; -} - -.ai-open-materials:before { - content: "\e968"; -} - -.ai-open-materials-square:before { - content: "\e969"; -} - -.ai-openedition:before { - content: "\e946"; -} - -.ai-openedition-square:before { - content: "\e947"; -} - -.ai-orcid:before { - content: "\e9d9"; -} - -.ai-orcid-square:before { - content: "\e9c3"; -} - -.ai-osf:before { - content: "\e9ef"; -} - -.ai-osf-square:before { - content: "\e931"; -} - -.ai-overleaf:before { - content: "\e914"; -} - -.ai-overleaf-square:before { - content: "\e98d"; -} - -.ai-philpapers:before { - content: "\e98a"; -} - -.ai-philpapers-square:before { - content: "\e96f"; -} - -.ai-piazza:before { - content: "\e99a"; -} - -.ai-piazza-square:before { - content: "\e90c"; -} - -.ai-preregistered:before { - content: "\e906"; -} - -.ai-preregistered-square:before { - content: "\e96b"; -} - -.ai-protocols:before { - content: "\e952"; -} - -.ai-protocols-square:before { - content: "\e953"; -} - -.ai-psyarxiv:before { - content: "\e90e"; -} - -.ai-psyarxiv-square:before { - content: "\e90f"; -} - -.ai-publons:before { - content: "\e937"; -} - -.ai-publons-square:before { - content: "\e94e"; -} - -.ai-pubmed:before { - content: "\e99f"; -} - -.ai-pubmed-square:before { - content: "\e97d"; -} - -.ai-pubpeer:before { - content: "\e922"; -} - -.ai-pubpeer-square:before { - content: "\e923"; -} - -.ai-researcherid:before { - content: "\e91a"; -} - -.ai-researcherid-square:before { - content: "\e95c"; -} - -.ai-researchgate:before { - content: "\e95e"; -} - -.ai-researchgate-square:before { - content: "\e99e"; -} - -.ai-ror:before { - content: "\e948"; -} - -.ai-ror-square:before { - content: "\e949"; -} - -.ai-sci-hub:before { - content: "\e959"; -} - -.ai-sci-hub-square:before { - content: "\e905"; -} - -.ai-scirate:before { - content: "\e98e"; -} - -.ai-scirate-square:before { - content: "\e99d"; -} - -.ai-scopus:before { - content: "\e91e"; -} - -.ai-scopus-square:before { - content: "\e91f"; -} - -.ai-semantic-scholar:before { - content: "\e96e"; -} - -.ai-semantic-scholar-square:before { - content: "\e96c"; -} - -.ai-springer:before { - content: "\e928"; -} - -.ai-springer-square:before { - content: "\e99b"; -} - -.ai-ssrn:before { - content: "\e916"; -} - -.ai-ssrn-square:before { - content: "\e917"; -} - -.ai-stackoverflow:before { - content: "\e920"; -} - -.ai-stackoverflow-square:before { - content: "\e921"; -} - -.ai-zenodo:before { - content: "\e911"; -} - -.ai-zotero:before { - content: "\e962"; -} - -.ai-zotero-square:before { - content: "\e932"; -} - -/* Duplication of the FontAwesome style classes using 'ai' in place of 'fa'. */ - -.ai-lg { - font-size: 1.33333em; - line-height: 0.75em; - vertical-align: -.0667em; -} - -.ai-xs { - font-size: .75em; -} - -.ai-sm { - font-size: .875em; -} - -.ai-1x { - font-size: 1em; -} - -.ai-2x { - font-size: 2em; -} - -.ai-3x { - font-size: 3em; -} - -.ai-4x { - font-size: 4em; -} - -.ai-5x { - font-size: 5em; -} - -.ai-6x { - font-size: 6em; -} - -.ai-7x { - font-size: 7em; -} - -.ai-8x { - font-size: 8em; -} - -.ai-9x { - font-size: 9em; -} - -.ai-10x { - font-size: 10em; -} - -.ai-fw { - text-align: center; - width: 1.25em; -} - -.ai-ul { - list-style-type: none; - margin-left: 2.5em; - padding-left: 0; - - > li { - position: relative; - } -} - -.ai-li { - left: -2em; - position: absolute; - text-align: center; - width: 2em; - line-height: inherit; -} - -.ai-border { - border: solid 0.08em #eee; - border-radius: .1em; - padding: .2em .25em .15em; -} - -.ai-pull-left { - float: left; -} - -.ai-pull-right { - float: right; -} - -.ai { - &.ai-pull-left, &.ai-pull-right { - margin-right: .3em; - } -} - -.ai-stack { - display: inline-block; - height: 2em; - line-height: 2em; - position: relative; - vertical-align: middle; - width: 2.5em; -} - -.ai-stack-1x, .ai-stack-2x { - left: 0; - position: absolute; - text-align: center; - width: 100%; -} - -.ai-stack-1x { - line-height: inherit; -} - -.ai-stack-2x { - font-size: 2em; -} - -.ai-inverse { - color: #fff; -} \ No newline at end of file diff --git a/assets/vendor/bulma/CHANGELOG.md b/assets/vendor/bulma/CHANGELOG.md deleted file mode 100644 index 67da6a7..0000000 --- a/assets/vendor/bulma/CHANGELOG.md +++ /dev/null @@ -1,1459 +0,0 @@ -# Bulma Changelog - -## 0.9.0 - -### RTL support - -Bulma now has **RTL support**. - -By setting the Sass flag `$rtl` to `true`, you can create an RTL version of Bulma, thanks to 4 new Sass mixins: - -* `=ltr` -* `=rtl` -* `=ltr-property($property, $spacing, $right: true)` -* `=ltr-position($spacing, $right: true)` - -The Bulma package now also comes with a `bulma-rtl.css` and `bulma-rtl.min.css` file to be used straight away. - -### Spacing helpers - -Bulma now has **spacing helpers**: https://bulma.io/documentation/helpers/spacing-helpers/ - -

Bulma provides margin m* and padding p* helpers in all directions:

- - - -

- You need to combine a margin/padding prefix with a direciton suffix. For example: -

- - - -

- Each of these property-direction combinations needs to be appended with one of 6 value suffixes -

- -This release also includes the following helpers: - -* light and dark color helpers -* light and dark background color helpers - -### Improvements - -* #2925 Center table cell content vertically with `is-vcentered` - -### Bug fixes - -* #2955 Fix issue when there's only one `is-toggle` tag - -## 0.8.2 - -### Bug fixes - -* Fix #2885 -> Revert `$input-color: $text-strong` - -## 0.8.1 - -### Improvements - -* #2709 Add light colors to the `notification` element -* #2740 Fixes #2739 -> Add variables size for layout `hero` -* Fix #2741 -> Create `bulmaRgba()` function to support `inherit` value -* #2756 Add `$button-text-decoration` variable - -### Bug fixes - -* #2664 Fixes #2671 -> Add `$panel-colors` variable - -## 0.8.0 - -### Big update - -#### Larger form controls - -Controls and buttons are now `2.5em` high. You can revert this resizing by setting these previous values: - -```sass -$control-height: 2.25em -$control-padding-vertical: calc(0.375em - #{$control-border-width}) -$control-padding-horizontal: calc(0.625em - #{$control-border-width}) -$button-padding-vertical: calc(0.375em - #{$button-border-width}) -$button-padding-horizontal: 0.75em -``` - -#### Light and dark colors - -Each main color (`"primary"`, `"info"`, `"success"`, `"warning"`, `"danger"`) now has a `*-light` and `*-dark` version. They are calculated using 2 new color functions: - -* `findLightColor()` which finds the light version of a color -* `findDarkolor()` which finds the dark version of a color - -The light colors are used by the `button` element, while the light and dark colors are used by the `message` component. - -#### Panel colors - -The `panel` component is now available in all the different colors. - -#### 4-value color map - -The `$colors` Sass map now accepts, for each of its values, a map of up to **4** values. For example: the key `"info"` now has the `($info, $info-invert, $info-light, $info-dark)` map. - -If you provide a `$custom-colors` map, you can decide to provide a map of 1, 2, 3 or 4 values for each value. If fewer than 4 are provided, Bulma will calculate the remaining ones: - -```scss -$custom-colors: ( - "lime": (lime), - "tomato": (tomato, white), - "orange": ($orange, $orange-invert, $orange-light), - "lavender": ($lavender, $lavender-invert, $lavender-light, $lavender-dark) -); -``` - -This is processed by the updated `mergeColorMaps()` Sass function. - -#### Scheme variables - -There are 6 new `$scheme` derived variables: `$scheme-main` `$scheme-main-bis` `$scheme-main-ter` `$scheme-invert` `$scheme-invert-bis` `$scheme-invert-ter` -They replace the `$white` and `$black` occurences in the codebase. This makes it easy to create a "Dark mode" simply by swapping the values: - -```sass -$scheme-main: $black -$scheme-invert: $white -// etc. -``` - -That is also why most of the codebase now references **derived** variables (`$text`, `$background`, `$border` etc.) instead of **initial** ones (`$grey`, `$grey-lighter`, `$grey-darker` etc.): updating the derived variables will affect all elements and components directly. - -#### Initial variables - -* `$green: hsl(141, 53%, 53%)` -* `$cyan: hsl(204, 71%, 53%)` -* `$red: hsl(348, 86%, 61%)` - -#### Derived variables - -* `$primary-invert: findColorInvert($primary)` -* `$primary-light: findLightColor($primary)` -* `$primary-dark: findDarkColor($primary)` -* `$info-invert: findColorInvert($info)` -* `$info-light: findLightColor($info)` -* `$info-dark: findDarkColor($info)` -* `$success-invert: findColorInvert($success)` -* `$success-light: findLightColor($success)` -* `$success-dark: findDarkColor($success)` -* `$warning-invert: findColorInvert($warning)` -* `$warning-light: findLightColor($warning)` -* `$warning-dark: findDarkColor($warning)` -* `$danger-invert: findColorInvert($danger)` -* `$danger-light: findLightColor($danger)` -* `$danger-dark: findDarkColor($danger)` -* `$light-invert: findColorInvert($light)` -* `$dark-invert: findColorInvert($dark)` - -* `$scheme-main: $white` -* `$scheme-main-bis: $white-bis` -* `$scheme-main-ter: $white-ter` -* `$scheme-invert: $black` -* `$scheme-invert-bis: $black-bis` -* `$scheme-invert-ter: $black-ter` - -### Other variables - -* `$control-height: 2.5em` -* `$control-padding-vertical: calc(0.5em - #{$control-border-width})` -* `$control-padding-horizontal: calc(0.75em - #{$control-border-width})` -* `$media-border-color: rgba($border, 0.5)` -* `$notification-code-background-color: $scheme-main` -* `$panel-radius: $radius-large` -* `$panel-shadow: 0 0.5em 1em -0.125em rgba($scheme-invert, 0.1), 0 0px 0 1px rgba($scheme-invert, 0.02)` -* `$textarea-padding: $control-padding-horizontal` -* `$textarea-max-height: 40em` -* `$textarea-min-height: 8em` - -### Bug fixes - -* Fix #2647 -> Missing meta tags in snippet -* Fix #2031, Fix #2483 -> Invalid output when declaring a custom shade map -* Fix #2060 -> `height: auto` on HTML `audio` element breaks height of element -* Fix #706 -> Derive `-invert` variables using `findColorInvert()` -* #1608 Fix #1552 -> `.container.is-fluid` margins - -### New features - -* #2563 `.image` has a new `.is-fullwidth` modifier - -## 0.7.5 - -### Deprecation warning - -The `form.sass` file is **deprecated**. It has moved into its own `/form` folder. If you were importing `form.sass`, please import `sass/form/_all.sass` now. -If you were simply importing the whole of Bulma with `@import "~/bulma/bulma.sass"` or similar, you won't have to change anything, and everything will work as before. - -### New features - -#### Support for overriding the `font-family` - -You can now specify a different `font-family` for the `.title`, `.subtitle` and `.button` by using the variables `$title-family`, `$subtitle-family` and `$button-family` respectively. - -Simply set a value when importing Bulma: - -```scss -$title-family: "Georgia", serif; -``` - -* #2375 Add `.is-relative` helper -* #2321 Make `.navbar` focus behave like hover for the navigation -* #2290 Fix #1186 -> Reset the offset on columns -* #2231 Add `.has-text-weight-medium` helper -* #2224 Add customizable border radius to progress bar -* #2480 Add `$footer-color` variable - -### Improvements - -* #2396 Update docs with webpack 4 example -* #2381 Make centered buttons have equal margin -* Fix #2297 -> Remove `.container` fixed width values, use `flex-grow` -* #2478 Move form.sass into its own folder - -### Bug fixes - -* #2420 Fix #2414 -> Fix `align` attribute in `td/th` being ignored -* #2463 Remove duplicate `.has-addons` in `tag.sass` -* #2253 Fix `$gap` variable default value -* #2273 Fix #2258 -> Fix Indeterminate Progress Bar animation in Firefox -* #2175 Proper aligning for `.tabs` within `.content` -* #2476 Fix #2441 -> Correct active pagination link text colour on hero - -Fix #1979 -> Correct loading spinner color when a button is: - -* outlined and hovered/focused -* outlined, inverted and hovered/focused - -### New variables - -#### Initial variables - -* `$block-spacing` - -#### Base - -* `$body-font-size` -* `$small-font-size` -* `$pre-font-size` -* `$pre-padding` -* `$pre-code-font-size` - -#### Components - -* `$card-header-padding` -* `$card-content-padding` -* `$card-media-margin` -* `$dropdown-menu-min-width` -* `$dropdown-content-padding-bottom` -* `$dropdown-content-padding-top` -* `$level-item-spacing` -* `$menu-list-line-height` -* `$menu-list-link-padding` -* `$menu-nested-list-margin` -* `$menu-nested-list-padding-left` -* `$menu-label-font-size` -* `$menu-label-letter-spacing` -* `$menu-label-spacing` -* `$pagination-item-font-size` -* `$pagination-item-margin` -* `$pagination-item-padding-left` -* `$pagination-item-padding-right` -* `$panel-margin` -* `$panel-tabs-font-size` - -#### Elements - -* `$container-offset` - -#### Grid - -* `$tile-spacing` - -## 0.7.3 - -### New features - -* #2145 Fix #372 -> New indeterminate progress bars -* #2206 Fix #2046 -> New variables `$table-head-background-color`, `$table-body-background-color` and `$table-foot-background-color` for the `.table` element -* #592 -> Give arbitrary elements access to the image/ratio classes -* #1682 Fix #1681 -> Adds disabled styles for `
` -* #2201 Fix #1875 -> `.buttons` and `.tags` group sizing (`.are-small`, `.are-medium`, `.are-large`) - -### Improvements - -* #1978 Fix #1696 -> Force `box-sizing: border-box` on `details` element -* #2167 Fix #1878 -> New `$footer-padding` variable -* #2168 -> New `$input-placeholder-color` and `$input-disabled-placeholder-color` variables - -### Bug fixes - -* #2157 Fix #1656 -> Allow border radius if only one `.control` in `.field` -* #2091 Fix #2091 -> Remove CSS rule which causes `.tag.has-addons` to not work correctly -* #2186 Fix #1130 -> Prevent `.dropdown` links underlining in `.message` component -* Fix #2154 -> Move `.hero.is-fullheight-with-navbar` to `navbar.sass` file - -### Deprecation - -* `.control.has-icon` deprecated in favor of `.control.has-icons` - -## 0.7.2 - -### New features - -* #1884 New `$navbar-burger-color` variable -* #1679 Add breakpoint based column gaps -* #1905 Fix `modal` for IE11 #1902 -* #1919 New `is-arrowless` class for navbar items -* #1949 New `is-fullheight-with-navbar` class for heros -* #1764 New `.is-sr-only` helper -* #2109 Add and use `$navbar-breakpoint` variable -* New variables `$control-height`, `$control-line-height`, `$pagination-min-width`, `$input-height` -* #1720 Add list element feature -* #2123 Add `.content ol` types: `.is-lower-roman`, `.is-upper-roman`, `.is-lower-alpha`, `.is-upper-alpha`, and support for the `type=` HTML attribute - -### Improvements - -* #1964 Allow `.notification` to have a `.dropdown-item` -* #1999 Change `$border` to `$grey-lighter` in mixins -* #2085 `.media-content` will allow scrolling horizontally if the content is too wide -* #1744 Fix #1710 by using `$table-striped-row-even-hover-background-color` only for even rows -* #2074 Allow `