1 votos

Abrir la URL de una página de OneNote en el terminal en mac

Estoy intentando abrir una página de onenote directamente usando un shell script en mac.

Sé que esto es posible usando Alfred pasando la 2ª url (que empieza por onenote: ) al hacer clic con el botón derecho en una página de onenote y "copiar el enlace a la sección":

enter image description here

Si intento hacer lo mismo en la terminal pasando una url: open /Applications/Microsoft\ OneNote.app -u "onenote:https://d.docs.live.net/mypageurl" entonces no parece funcionar (aquí estoy usando el -u para intentar pasarla como una url, pero he probado también con --args .

¿Hay alguna manera de hacerlo? ¿Necesito codificarla como UTF8 o algo así antes de pasarla como arg?

Gracias


2voto

Phill Puntos 126

¿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

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X