Compare commits

..

No commits in common. "master" and "v2.1.2" have entirely different histories.

7 changed files with 83 additions and 137 deletions

View File

@ -1,35 +1,3 @@
2.3:
* New: access 'url' entry in sqlite databases.
2.2.1:
* Fix: Missing quotes in filter interpreter.
2.2:
* New: Allow for the value of other entries to be in the 'sed' command of a
filter. (May break existing configurations in cases where sed command
uses a '%'.)
2.1.5:
* Fixed: Properly escape entries with a '%'
2.1.4:
* New: Allow for comma separated list of references in aux_cmd.
2.1.3:
* Fixed: entries that contain a '%' do not cause a failure.
* New: access 'bibtex' entry in sqlite databases
2.1.2: 2.1.2:
* Fixed: 'extra' entries would override database entries if they shared the * Fixed: 'extra' entries would override database entries if they shared the

View File

@ -1,4 +1,4 @@
## Copyright Ian Jauslin 2015-2023 ## Copyright Ian Jauslin 2015-2018
## ##
## Licensed under the Apache License, Version 2.0 (the "License"); ## Licensed under the Apache License, Version 2.0 (the "License");
## you may not use this file except in compliance with the License. ## you may not use this file except in compliance with the License.

2
NOTICE
View File

@ -1,2 +1,2 @@
BBlog BBlog
Copyright Ian Jauslin 2015-2023 Copyright Ian Jauslin 2015-2018

View File

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
## Copyright Ian Jauslin 2015-2023 ## Copyright Ian Jauslin 2015-2018
## ##
## Licensed under the Apache License, Version 2.0 (the "License"); ## Licensed under the Apache License, Version 2.0 (the "License");
## you may not use this file except in compliance with the License. ## you may not use this file except in compliance with the License.
@ -15,10 +15,10 @@
## limitations under the License. ## limitations under the License.
# directory containing the engine files # directory containing the engine files
enginedir=/usr/share/BBlog/engines enginedir=
# version # version
version=2.3 version=2.1.2
function print_config { function print_config {
echo "engine: $engine" echo "engine: $engine"
@ -222,16 +222,11 @@ function replace_format {
# apply filter # apply filter
if [ -n "$filter" ]; then if [ -n "$filter" ]; then
# replace '%' inside filter text sed_cmd=$(eval "echo \$filter_$filter")
sed_cmd=$(replace_format "$(eval echo \$filter_$filter)")
replacement=$(eval "echo \$$field" | sed -r "$sed_cmd" ) replacement=$(eval "echo \$$field" | sed -r "$sed_cmd" )
else else
replacement=$(eval "echo \$$field") replacement=$(eval "echo \$$field")
fi fi
# escape '%' in replacement
replacement="${replacement//\%/::iansays:percent::}"
out="${out//\%$command\%/$replacement}" out="${out//\%$command\%/$replacement}"
done done
@ -239,10 +234,6 @@ function replace_format {
# finish replacing newlines # finish replacing newlines
out="${out//\\n/%}" out="${out//\\n/%}"
out=$(echo "$out" | tr "%" "\n") out=$(echo "$out" | tr "%" "\n")
# un-escape '%' in replacement
out="${out//::iansays:percent::/\%}"
echo "$out" echo "$out"
} }
@ -274,20 +265,17 @@ function inverse_map_citeref {
foundref=0 foundref=0
# sift through aux file # sift through aux file
grep -h "$aux_cmd" $aux | while read -r refs; do grep -h "$aux_cmd" $aux | while read -r ref; do
eval "refs=\${refs#$aux_cmd}" eval "ref=\${ref#$aux_cmd}"
refs="${ref%\}}" ref="${ref%\}}"
# can be a comma separated list # replace the ref via the ref_map
for ref in $(echo -n "$refs" | tr ',' '\n'); do possibleref=$(map_citeref "$ref")
# replace the ref via the ref_map # check whether the ref is the right one
possibleref=$(map_citeref "$ref") if [ "$possibleref" = "$newref" ]; then
# check whether the ref is the right one echo "$ref"
if [ "$possibleref" = "$newref" ]; then foundref=1
echo "$ref" return 1
foundref=1 fi
return 1
fi
done
done && echo "$foundref$newref" done && echo "$foundref$newref"
} }

View File

@ -1,5 +1,5 @@
base_SQL="SELECT title,author,journal,year,token,doi,arxiv,citeref,prauth,bibtex,url FROM bibliography" base_SQL="SELECT title,author,journal,year,token,doi,arxiv,citeref,prauth FROM bibliography"
base_SQL_noprauth="SELECT title,author,journal,year,token,doi,arxiv,citeref,bibtex,url FROM bibliography" base_SQL_noprauth="SELECT title,author,journal,year,token,doi,arxiv,citeref FROM bibliography"
# add quotes # add quotes
function SQL_addquotes { function SQL_addquotes {
@ -23,36 +23,32 @@ function generate_SQL_alpha {
exists_citeref=0 exists_citeref=0
# sift through aux file # sift through aux file
grep -h "$aux_cmd" $aux | while read -r citerefs; do grep -h "$aux_cmd" $aux | while read -r citeref; do
eval "citerefs=\${citerefs#$aux_cmd}" eval "citeref=\${citeref#$aux_cmd}"
citerefs="${citerefs%\}}" citeref="${citeref%\}}"
# can be a comma separated list # replace the citeref with a ref_map if there is any
for citeref in $(echo -n "$citerefs" | tr ',' '\n'); do if [ -n "$ref_map" ]; then
citeref=$(map_citeref "$citeref")
fi
# replace the citeref with a ref_map if there is any # Only query the db if there is no matching extra entry
if [ -n "$ref_map" ]; then foundit=0
citeref=$(map_citeref "$citeref") if [ ${#extra} -gt 0 ]; then
fi for entry in "${extra[@]}"; do
ref="${entry#*:}"
# Only query the db if there is no matching extra entry ref="${ref%%:*}"
foundit=0 if [ "$ref" = "$citeref" ]; then
if [ ${#extra} -gt 0 ]; then foundit=1
for entry in "${extra[@]}"; do break
ref="${entry#*:}" fi
ref="${ref%%:*}" done
if [ "$ref" = "$citeref" ]; then fi
foundit=1
break if [ "$foundit" = 0 ]; then
fi echo -n "$citeref' OR citeref='"
done exists_citeref=1
fi fi
if [ "$foundit" = 0 ]; then
echo -n "$citeref' OR citeref='"
exists_citeref=1
fi
done
done done
# if there are no citerefs close ' # if there are no citerefs close '
@ -74,50 +70,46 @@ function fetch_BBlog_entries_appearance {
citeref_list="" citeref_list=""
# sift through aux file # sift through aux file
grep -h "$aux_cmd" $aux | while read -r citerefs; do grep -h "$aux_cmd" $aux | while read -r citeref; do
eval "citerefs=\${citerefs#$aux_cmd}" eval "citeref=\${citeref#$aux_cmd}"
citerefs="${citerefs%\}}" citeref="${citeref%\}}"
# can be a comma separated list # replace the citeref with a ref_map if there is any
for citeref in $(echo -n "$citerefs" | tr ',' '\n'); do if [ -n "$ref_map" ]; then
citeref=$(map_citeref "$citeref")
fi
# replace the citeref with a ref_map if there is any # check whether the reference was already cited
if [ -n "$ref_map" ]; then citeref_list="$citeref_list;"
citeref=$(map_citeref "$citeref") if $(echo "$citeref_list" | grep -q ";$citeref;"); then
# remove trailing ';'
citeref_list="${citeref_list%;}"
else
citeref_list="$citeref_list$citeref"
# Only query the db if there is no matching extra entry
foundit=0
if [ ${#extra} -gt 0 ]; then
for entry in "${extra[@]}"; do
ref="${entry#*:}"
ref="${ref%%:*}"
if [ "$ref" = "$citeref" ]; then
foundit=1
break
fi
done
fi fi
# check whether the reference was already cited if [ "$foundit" = 0 ]; then
citeref_list="$citeref_list;" SQL="$base_SQL_noprauth WHERE citeref='$citeref'"
if $(echo "$citeref_list" | grep -q ";$citeref;"); then sqlite3 -line "$db" "$SQL" | SQL_addquotes
# remove trailing ';'
citeref_list="${citeref_list%;}"
else else
citeref_list="$citeref_list$citeref" echo "citeref=$citeref"
# Only query the db if there is no matching extra entry
foundit=0
if [ ${#extra} -gt 0 ]; then
for entry in "${extra[@]}"; do
ref="${entry#*:}"
ref="${ref%%:*}"
if [ "$ref" = "$citeref" ]; then
foundit=1
break
fi
done
fi
if [ "$foundit" = 0 ]; then
SQL="$base_SQL_noprauth WHERE citeref='$citeref'"
sqlite3 -line "$db" "$SQL" | SQL_addquotes
else
echo "citeref=$citeref"
fi
# add an empty line
echo ""
fi fi
done
# add an empty line
echo ""
fi
done done
} }

View File

@ -1,5 +1,5 @@
.Dd $Mdocdate: July 26 2023 $ .Dd $Mdocdate: June 29 2018 $
.Dt BBLOG 2.3 .Dt BBLOG 2.1.2
.Os .Os
.Sh NAME .Sh NAME
.Nm BBlog .Nm BBlog
@ -194,6 +194,6 @@ automatically adds a letter (from 'b' to 'z') at the end of non-unique tokens, i
.Nm .Nm
was written by Ian Jauslin. was written by Ian Jauslin.
.Sh COPYRIGHT .Sh COPYRIGHT
copyright Ian Jauslin 2015-2023 copyright Ian Jauslin 2015-2018
.Sh SEE ALSO .Sh SEE ALSO
.Sx BBlog-sqlite Ns (7) .Sx BBlog-sqlite Ns (7)

View File

@ -1,4 +1,4 @@
.Dd $Mdocdate: July 26 2023 $ .Dd $Mdocdate: June 29 2018 $
.Dt BBLOG-sqlite .Dt BBLOG-sqlite
.Os .Os
.Sh DESCRIPTION .Sh DESCRIPTION
@ -28,13 +28,11 @@ label of the reference
.It prauth .It prauth
bibliography entries are ordered alphabetically with respect to this entry bibliography entries are ordered alphabetically with respect to this entry
label of the reference label of the reference
.It url
link to paper
.El .El
.Sh AUTHORS .Sh AUTHORS
The sqlite BBlog engine was written by Ian Jauslin. The sqlite BBlog engine was written by Ian Jauslin.
.Sh COPYRIGHT .Sh COPYRIGHT
copyright Ian Jauslin 2015-2023 copyright Ian Jauslin 2015-2018
.Sh SEE ALSO .Sh SEE ALSO
.Sx BBlog Ns (1) , .Sx BBlog Ns (1) ,
.Sx sqlite3 Ns (1) .Sx sqlite3 Ns (1)