¿Hay alguna forma de hacerlo?
Utilizar:
open 'onenote:https://d.docs.live.net/mypageurl'
Al leer la URL, open
interpretará onenote:
como un esquema de URL personalizado y abra OneNote con el enlace que ha proporcionado.
Otras aplicaciones también admiten esquemas de URL personalizados. Por ejemplo, Mail utiliza message:
y Evernote utiliza evernote:
.
Para obtener más información sobre los esquemas de URL personalizados, consulte https://developer.apple.com/documentation/xcode/defining-a-custom-url-scheme-for-your-app .
¿tengo que codificarla como UTF8 o algo así antes de pasarla como arg?
Comentas que utilizas emojis en los títulos de las notas, por lo que tendrás que codificarlos para crear una URL válida.
He escrito un script de Bash (probado con la versión 3.2.57) que toma la URL "cruda" de OneNote como argumento y la codifica en una URL válida (espero que puedas usarlo como punto de partida para tu propio script):
#/bin/bash
unset encoded_url;
# Read every character one at a time
while read -n 1; do
if [[ $REPLY =~ []a-zA-Z0-9_\.~\!\'\(\)\;:@\&=+$,/\?%#[-] ]]; then
# Add regular characters to the encoded url
encoded_url="$encoded_url$REPLY";
elif [[ $REPLY == " " ]]; then
# Encode spaces
encoded_url="$encoded_url%20";
else
# Encode other characters:
# 1) Display hex representation with xxd
# 2) Remove leading '00000000: '
# 3) Remove groups of two or more white spaces and all dots
# 4) Add % to the beginning of line
# 5) Replace white spaces with %
# 6) Capitalize the result
encoded_url="$encoded_url$(echo -n $REPLY | xxd | sed 's/00000000: //; s/ *//; s/\.//; s/^/%/; s/ /%/g' | tr 'abcdefhijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWZYZ')";
fi;
done < <(echo -n "$1");
echo "$encoded_url"
Digamos que el script se llama encodeurl
. Este comando:
encodeurl 'onenote:d.docs.live.net/e1fg23a1a01a1a01/Documents/timhc22