Add script to capture html to orgmode
This commit is contained in:
parent
1b848898ec
commit
1c3fead787
@ -38,6 +38,8 @@ Then take a screenshot and process it.
|
|||||||
#+begin_src bash
|
#+begin_src bash
|
||||||
temp_file="/tmp/screen.png"
|
temp_file="/tmp/screen.png"
|
||||||
|
|
||||||
|
rm -f $temp_file
|
||||||
|
|
||||||
scrot $temp_file
|
scrot $temp_file
|
||||||
convert $temp_file -scale 10% -scale 1000% $temp_file
|
convert $temp_file -scale 10% -scale 1000% $temp_file
|
||||||
#+end_src
|
#+end_src
|
||||||
@ -92,7 +94,8 @@ The requirement is to have =pdftk= installed.
|
|||||||
#+begin_src bash
|
#+begin_src bash
|
||||||
if [[ -f $1 && $1 == *.pdf ]]; then
|
if [[ -f $1 && $1 == *.pdf ]]; then
|
||||||
# Argument if a file
|
# Argument if a file
|
||||||
pdftk "$1" cat 2-end output /tmp/pdftk_out.pdf && mv /tmp/pdftk_out.pdf "$1"
|
# pdftk "$1" cat 2-end output /tmp/pdftk_out.pdf && mv /tmp/pdftk_out.pdf "$1"
|
||||||
|
stapler del "$1" 1 /tmp/pdftk_out.pdf && mv /tmp/pdftk_out.pdf "$1"
|
||||||
fi
|
fi
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -137,7 +140,7 @@ Things to do:
|
|||||||
- [ ] Display the not found figures
|
- [ ] Display the not found figures
|
||||||
|
|
||||||
#+begin_src bash :results output
|
#+begin_src bash :results output
|
||||||
latexpath="$HOME/MEGA/These/LaTeX/ressources/Figures";
|
latexpath="$HOME/Cloud/thesis/latex/ressources/Figures";
|
||||||
|
|
||||||
figures=`awk 'match($0, /(fig.*\.(png|svg|pdf))/, a) {print a[1];}' $1 \
|
figures=`awk 'match($0, /(fig.*\.(png|svg|pdf))/, a) {print a[1];}' $1 \
|
||||||
| awk '{ print gensub(/\s*\]\]\s*\|\s*\[\[\s*\.?\/?/, "\n", "g") }'`;
|
| awk '{ print gensub(/\s*\]\]\s*\|\s*\[\[\s*\.?\/?/, "\n", "g") }'`;
|
||||||
@ -172,31 +175,7 @@ Things to do:
|
|||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+RESULTS:
|
#+RESULTS:
|
||||||
#+begin_example
|
|
||||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/classical_feedback_alt.pdf
|
|
||||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/classical_feedback_2dof_alt.pdf
|
|
||||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/classical_feedback_sep.pdf
|
|
||||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/classical_feedback_bis.pdf
|
|
||||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/general_control_names.pdf
|
|
||||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/general_plant_weights.pdf
|
|
||||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/general_control_Mdelta.pdf
|
|
||||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/classical_feedback_stability.pdf
|
|
||||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/classical_feedback_meas.pdf
|
|
||||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/input_output_uncertainty.pdf
|
|
||||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/input_uncertainty_set.pdf
|
|
||||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/input_uncertainty_set_feedback.pdf
|
|
||||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/inverse_uncertainty_set.pdf
|
|
||||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/general_control_delta.pdf
|
|
||||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/general_control_Ndelta.pdf
|
|
||||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/general_control_Mdelta.pdf
|
|
||||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/additive_uncertainty.pdf
|
|
||||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/input_uncertainty.pdf
|
|
||||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/output_uncertainty.pdf
|
|
||||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/inv_additive_uncertainty.pdf
|
|
||||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/inv_input_uncertainty.pdf
|
|
||||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/inv_output_uncertainty.pdf
|
|
||||||
/home/tdehaeze/MEGA/These/LaTeX/ressources/Figures/input_uncertainty_set_feedback_weight.pdf
|
|
||||||
#+end_example
|
|
||||||
* NAS
|
* NAS
|
||||||
** Mount
|
** Mount
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
@ -315,3 +294,209 @@ else
|
|||||||
setsid nohup youtube-dl --add-metadata -ic $1 &> /dev/null &
|
setsid nohup youtube-dl --add-metadata -ic $1 &> /dev/null &
|
||||||
fi
|
fi
|
||||||
#+end_src
|
#+end_src
|
||||||
|
* Org-Protocol-Capture-HTML
|
||||||
|
:PROPERTIES:
|
||||||
|
:header-args: :tangle ~/scripts/org-protocol-capture-html.sh
|
||||||
|
:header-args+: :comments both :mkdirp yes
|
||||||
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
||||||
|
:END:
|
||||||
|
|
||||||
|
Defaults
|
||||||
|
#+begin_src bash
|
||||||
|
heading="link"
|
||||||
|
template="pu"
|
||||||
|
url="https://google.com/"
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
Functions
|
||||||
|
#+begin_src bash
|
||||||
|
function debug {
|
||||||
|
if [[ -n $debug ]]
|
||||||
|
then
|
||||||
|
function debug {
|
||||||
|
echo "DEBUG: $@" >&2
|
||||||
|
}
|
||||||
|
debug "$@"
|
||||||
|
else
|
||||||
|
function debug {
|
||||||
|
true
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
function die {
|
||||||
|
echo "$@" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
function urlencode {
|
||||||
|
python -c "
|
||||||
|
from __future__ import print_function
|
||||||
|
try:
|
||||||
|
from urllib import quote # Python 2
|
||||||
|
except ImportError:
|
||||||
|
from urllib.parse import quote # Python 3
|
||||||
|
import sys
|
||||||
|
print(quote(sys.stdin.read()[:-1], safe=''))"
|
||||||
|
}
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
#+begin_src bash
|
||||||
|
function usage {
|
||||||
|
cat <<EOF
|
||||||
|
$0 [OPTIONS] [HTML]
|
||||||
|
html | $0 [OPTIONS]
|
||||||
|
Send HTML to Emacs through org-protocol, passing it through Pandoc to
|
||||||
|
convert HTML to Org-mode. HTML may be passed as an argument or
|
||||||
|
through STDIN. If only URL is given, it will be downloaded and its
|
||||||
|
contents used.
|
||||||
|
Options:
|
||||||
|
-h, --heading HEADING Heading
|
||||||
|
-t, --template TEMPLATE org-capture template key (default: pu)
|
||||||
|
-u, --url URL URL
|
||||||
|
--debug Print debug info
|
||||||
|
--help I need somebody!
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
Arguments
|
||||||
|
#+begin_src bash
|
||||||
|
args=$(getopt -n "$0" -o dh:rt:u: -l debug,help,heading:,template:,url: -- "$@") \
|
||||||
|
|| die "Unable to parse args. Is getopt installed?"
|
||||||
|
eval set -- "$args"
|
||||||
|
|
||||||
|
while true
|
||||||
|
do
|
||||||
|
case "$1" in
|
||||||
|
-d|--debug)
|
||||||
|
debug=true
|
||||||
|
debug "Debugging on"
|
||||||
|
;;
|
||||||
|
--help)
|
||||||
|
usage
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
-h|--heading)
|
||||||
|
shift
|
||||||
|
heading="$1"
|
||||||
|
;;
|
||||||
|
-t|--template)
|
||||||
|
shift
|
||||||
|
template="$1"
|
||||||
|
;;
|
||||||
|
-u|--url)
|
||||||
|
shift
|
||||||
|
url="$1"
|
||||||
|
;;
|
||||||
|
--)
|
||||||
|
# Remaining args
|
||||||
|
shift
|
||||||
|
rest=("$@")
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
debug "ARGS: $args"
|
||||||
|
debug "Remaining args: ${rest[@]}"
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
Get HTML
|
||||||
|
#+begin_src bash
|
||||||
|
if [[ -n $@ ]]
|
||||||
|
then
|
||||||
|
debug "Text from args"
|
||||||
|
|
||||||
|
body="$@"
|
||||||
|
fi
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
URL-encode
|
||||||
|
#+begin_src bash
|
||||||
|
heading=$(urlencode <<<"$heading") || die "Unable to urlencode heading."
|
||||||
|
url=$(urlencode <<<"$url") || die "Unable to urlencode URL."
|
||||||
|
body=$(urlencode <<<"$body") || die "Unable to urlencode text."
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
Send to Emacs
|
||||||
|
#+begin_src bash
|
||||||
|
emacsclient "org-protocol://capture?template=$template&url=$url&title=$heading&body=$body"
|
||||||
|
#+end_src
|
||||||
|
* Pdf Shrink
|
||||||
|
:PROPERTIES:
|
||||||
|
:header-args: :tangle ~/scripts/pdf-shrink.sh
|
||||||
|
:header-args+: :comments both :mkdirp yes
|
||||||
|
:header-args+: :shebang "#!/usr/bin/env bash"
|
||||||
|
:END:
|
||||||
|
|
||||||
|
#+begin_src bash
|
||||||
|
shrink ()
|
||||||
|
{
|
||||||
|
gs \
|
||||||
|
-q -dNOPAUSE -dBATCH -dSAFER \
|
||||||
|
-sDEVICE=pdfwrite \
|
||||||
|
-dCompatibilityLevel=1.3 \
|
||||||
|
-dPDFSETTINGS=/screen \
|
||||||
|
-dEmbedAllFonts=true \
|
||||||
|
-dSubsetFonts=true \
|
||||||
|
-dAutoRotatePages=/None \
|
||||||
|
-dColorImageDownsampleType=/Bicubic \
|
||||||
|
-dColorImageResolution=$3 \
|
||||||
|
-dGrayImageDownsampleType=/Bicubic \
|
||||||
|
-dGrayImageResolution=$3 \
|
||||||
|
-dMonoImageDownsampleType=/Subsample \
|
||||||
|
-dMonoImageResolution=$3 \
|
||||||
|
-sOutputFile="$2" \
|
||||||
|
"$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
check_smaller ()
|
||||||
|
{
|
||||||
|
# If $1 and $2 are regular files, we can compare file sizes to
|
||||||
|
# see if we succeeded in shrinking. If not, we copy $1 over $2:
|
||||||
|
if [ ! -f "$1" -o ! -f "$2" ]; then
|
||||||
|
return 0;
|
||||||
|
fi
|
||||||
|
ISIZE="$(echo $(wc -c "$1") | cut -f1 -d\ )"
|
||||||
|
OSIZE="$(echo $(wc -c "$2") | cut -f1 -d\ )"
|
||||||
|
if [ "$ISIZE" -lt "$OSIZE" ]; then
|
||||||
|
echo "Input smaller than output, doing straight copy" >&2
|
||||||
|
cp "$1" "$2"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
usage ()
|
||||||
|
{
|
||||||
|
echo "Reduces PDF filesize by lossy recompressing with Ghostscript."
|
||||||
|
echo "Not guaranteed to succeed, but usually works."
|
||||||
|
echo " Usage: $1 infile [outfile] [resolution_in_dpi]"
|
||||||
|
}
|
||||||
|
|
||||||
|
IFILE="$1"
|
||||||
|
|
||||||
|
# Need an input file:
|
||||||
|
if [ -z "$IFILE" ]; then
|
||||||
|
usage "$0"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Output filename defaults to "-" (stdout) unless given:
|
||||||
|
if [ ! -z "$2" ]; then
|
||||||
|
OFILE="$2"
|
||||||
|
else
|
||||||
|
OFILE="-"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Output resolution defaults to 72 unless given:
|
||||||
|
if [ ! -z "$3" ]; then
|
||||||
|
res="$3"
|
||||||
|
else
|
||||||
|
res="90"
|
||||||
|
fi
|
||||||
|
|
||||||
|
shrink "$IFILE" "$OFILE" "$res" || exit $?
|
||||||
|
|
||||||
|
check_smaller "$IFILE" "$OFILE"
|
||||||
|
#+end_src
|
||||||
|
Loading…
Reference in New Issue
Block a user