Google Docs Cursor e Selector API: scripting “alla lettera” in Google Drive

Di - 5 July 2013 - in

Proseguono gli sviluppi di Google nei confronti di Drive e di Apps Script, il linguaggio di scripting cloud inizialmente ideato per consentire l’implementazione di macro e funzioni custom ma che poi si è evoluto ed ha raggiunto, grazie alle tante API disponibili, nuovi scenari di utilizzo.

I documenti in “formato Google”, cioè creati direttamente online, oppure convertiti da altre suite di collaborazione, si arricchiscono di interessanti potenzialità mediante le recenti Google Docs Cursor e Selection API, appena rilasciate e da subito invocabili in tutti i progetti Apps Script, sia in quelli embeddati in Docs, (fornirò più avanti alcuni spunti per il loro utilizzo), che in versione standalone (per realizzare applicazioni e workflow ancora più precisi).

Queste nuove interfacce mirano a offrire veloci e semplici chiamate per l’inserimento programmatico di contenuti in un punto preciso del testo e per la rilevazione della posizione esatta del cursore in esso.

Il risultato dei metodi Document.getCursor() e Document.getSelection()sono quindi oggetti javascript completi di informazioni e metadati oltre che della stessa porzione di testo su cui sono stati invocati.

var selection = DocumentApp.getActiveDocument().getSelection();
  if (selection) {
    var elements = selection.getSelectedElements();

Grazie a Docs Cursor e Selection Api sarà quindi possibile creare utilities ancora più ricche, e vicine agli utenti, scrivere solo poche righe di codice javascript, inserito direttamente nei propri documenti, per costruire, ad esempio, un dizionario multilingua, senza dover spendere tempo ed energie in una applicazione più complessa e non dovendosi preoccupare dell’ambiente di esecuzione.

Un ulteriore case study significativo, presentato proprio all’ultimo Google I/O, è rappresentato da Bibstro semplice tool in grado di inserire citazioni a comando e soprattutto dove l’utente desidera.

Come potete constatare dal codice rilasciato in licenza open da Google stessa, le API conservano la sinteticità del javascript senza perdere in eleganza e facilità di lettura, (sono molto più vicine al paradigma “imperative” che “functional”, tipico di framework Javascript assai più complessi).

var cursor = DocumentApp.getActiveDocument().getCursor();
if (cursor) {
  // Determine the text of the new inline citation to insert.
  var citation = bibStrategy.getInlineCitationText(...);

  var surroundingText = cursor.getSurroundingText().getText();
  var surroundingTextOffset = cursor.getSurroundingTextOffset();

  if (surroundingTextOffset > 0 &&
      surroundingText.charAt(surroundingTextOffset - 1) != ' ') {
    // If the cursor follows a non-space character, insert a space
    // and then the citation.
    cursor.insertText(' ' + citation);
  } else {
    // Otherwise, just insert the citation.
    cursor.insertText(citation);
  }
}

Google ha inoltre reso pubblico Cursor Inspector, una piccola dimostrazione che ha l’obiettivo di rendere più familiare e semplice l’adozione di queste nuove interfacce di programmazione. Man mano che navigherete all’interno di un Docs su cui è attivato visualizzerete in una custom bar apposita tutte le informazioni in merito al vostro cursore ed al testo selezionato.

Docs Cursor e Selection API rappresentano un ulteriore punto di integrazione ed arricchimento della già ampia offerta di Drive ed Apps Script e potranno aiutare tutti coloro che avevano esigenze di elaborazione testuale precisa a raggiungere gli scopes prefissati.

Via | Google Apps Developer Blog

Leave a Reply

Andrea Testa Articolo scritto da

Laureato in Comunicazione Digitale, curioso ed affascinato dall'informatica, specialista Google Apps. Sviluppatore software, ama tutto ciò che si manifesta sotto forma di intelligenza, tecnica ed innovazione, come il web e l'open source.

Contatta l'autore

Previous post:

Next post: