From d6c2a7df2940085ec3202b2aff0c411de4908901 Mon Sep 17 00:00:00 2001 From: Zlatkovsky Date: Fri, 28 Apr 2017 11:47:42 -0700 Subject: [PATCH] README details on using external libraries + some reorganization --- .github/images/color-picker.jpg | Bin 0 -> 21927 bytes .github/images/import-snippet.jpg | Bin 0 -> 32642 bytes .github/images/unpkg.jpg | Bin 0 -> 78497 bytes .vscode/cSpell.json | 22 +++ README.md | 213 +++++++++++++++++++++++++++--- 5 files changed, 213 insertions(+), 22 deletions(-) create mode 100644 .github/images/color-picker.jpg create mode 100644 .github/images/import-snippet.jpg create mode 100644 .github/images/unpkg.jpg create mode 100644 .vscode/cSpell.json diff --git a/.github/images/color-picker.jpg b/.github/images/color-picker.jpg new file mode 100644 index 0000000000000000000000000000000000000000..953425c8875b6a1dc643e2ada4eab77e99b30a7a GIT binary patch literal 21927 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Μ}oyt*_<k*Gz+xEPx*}_t)V$T+B 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�M(*}EqLsB(6PvG+?ih}>;EJV{#e(ixL}y1e zS65Psa}A9w_>QbLQig^bS*L!aRYsx~a(nHCCXAvfmbZK=00nd{c;E1GH<{_yT2M9^ zakwGyEUfA%P=2mqpw6lOQdxP(jAW)O*4n3)3CMD{_(4<$Q_uP7q84qb)kg+NCB&7{ z*yL_V*QA8ok>p8oSxbvtXIRcb$aiF&1Lx)!QmlK_Q-`?sXfQN}GY9O}UnUE1mpyX4 z62~9pV20~qC^DADjR9yhSf|Q0yfPr#Ur~b_#))sYIXWFsb+E;Mp?W%6m1y4?AQnW8 zyCnTYACVjJ{r;1{;rN|&&H)A?HPqROY!DdVEJk1 z?Uia{Kb^3fI@AmZao9^xHooLa~y%H4~{tItipnv+CTxwqCB+8~z0%jwf=-`LY!vx88cf@<>#tax3gzQ{$D*5SMtNCjk z?-%pGt8WEoo;m=7vkhRb?P=xoaW-he>ZZ)N^BJW)t^^I0nqZvgF4e*HJZ{|-Tl?*dP~f&J44H@9*8GKt)( sSk@yKC2X!g**ojem!H6gB$40OMKr6aWAK literal 0 HcmV?d00001 diff --git a/.github/images/import-snippet.jpg b/.github/images/import-snippet.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8c31052bbb171a6432fd9a547345ef5c2a72b153 GIT binary patch literal 32642 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 EPkHUcKL7v# literal 0 HcmV?d00001 diff --git a/.github/images/unpkg.jpg b/.github/images/unpkg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fa96f6800733b4267fb177e4f631a8c7fd766956 GIT binary patch literal 78497 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 CITB6) literal 0 HcmV?d00001 diff --git a/.vscode/cSpell.json b/.vscode/cSpell.json new file mode 100644 index 00000000..0ecb0d8f --- /dev/null +++ b/.vscode/cSpell.json @@ -0,0 +1,22 @@ +// cSpell Settings +{ + // Version of the setting file. Always 0.1 + "version": "0.1", + // language - current active spelling language + "language": "en", + // words - list of words to be always considered correct + "words": [ + "intellisense", + "scriptlab", + "dropdown", + "unpkg", + "colorpicker", + "repo" + ], + // flagWords - list of words to be always considered incorrect + // This is useful for offensive words and common spelling errors. + // For example "hte" should be "the" + "flagWords": [ + "hte" + ] +} \ No newline at end of file diff --git a/README.md b/README.md index cf3baba6..d2c66b2e 100644 --- a/README.md +++ b/README.md @@ -5,24 +5,28 @@ Experiment with the Office JavaScript API without ever leaving Excel, Word, Powe ## Topics * [What is Script Lab?](README.md#what-is) -* How do I... - - [Get started?](README.md/#get-started) - - [Use Script Lab in Office 2013?](README.md/#office-2013) - - [Stay up-to-date?](README.md/#up-to-date) - - [Report a bug?](README.md#report-bug) - - [Rate and review?](README.md#rate-and-review) - - [Contribute code to Script Lab?](README.md#contribute) +* [Getting started](README.md/#get-started) +* [Using Script Lab with older Office versions](README.md/#office-2013) +* [Staying up-to-date](README.md/#up-to-date) +* [Reporting a bug / suggesting a feature](README.md#report-bug) +* [Rating and reviewing](README.md#rate-and-review) +* [Contributing code or samples to Script Lab](README.md#contribute) +* [Frequently Asked Questions (FAQs)](README.md#frequently-asked-questions) + - [How can I import someone else's snippet?](README.md#import) + - [How can I reference external libraries?](README.md#external-libraries) + - [Can I get IntelliSense for the external libraries too?](README.md#intellisense) +* [Anything else?](README.md#anything-else) ## What is Script Lab? -Wouldn’t it be crazy if you could launch Excel, click to open a small code window, and then instantly start writing and executing JavaScript that interacts with your spreadsheet? +Wouldn't it be crazy if you could launch Excel, click to open a small code window, and then instantly start writing and executing JavaScript that interacts with your spreadsheet? -Script lab is a tool for anyone who wants to learn about writing Office add-ins for Excel, Word, or PowerPoint, and Project. The focus is the Office JavaScript API, which is the technology you need for building Office Add-ins that run across platforms. Maybe you’re an experienced Office developer and you want to quickly prototype a feature for your add-in. Or maybe you’ve never tried writing code for Office and you just want to play with a sample and tweak it to learn more. Either way, Script Lab is for you. +Script lab is a tool for anyone who wants to learn about writing Office add-ins for Excel, Word, or PowerPoint, and Project. The focus is the Office JavaScript API, which is the technology you need for building Office Add-ins that run across platforms. Maybe you're an experienced Office developer and you want to quickly prototype a feature for your add-in. Or maybe you've never tried writing code for Office and you just want to play with a sample and tweak it to learn more. Either way, Script Lab is for you. Script Lab has three main features: -* **Code** in a pane beside your spreadsheet. IntelliSense is there while you type so you can easily discover and use the Office JavaScript objects and methods. And if you don’t want to start from scratch there are plenty of samples preinstalled with Script Lab. Your snippets can use any TypeScript features like arrow functions, template strings, and async/await. But it’s not only script: your snippets can also use HTML, CSS, and references to external libraries and data on the web. Script Lab uses the Monaco editor, the same tech that powers VS Code, so it’s beautiful and lightweight. +* **Code** in a pane beside your spreadsheet. IntelliSense is there while you type so you can easily discover and use the Office JavaScript objects and methods. And if you don't want to start from scratch there are plenty of samples pre-installed with Script Lab. Your snippets can use any TypeScript features like arrow functions, template strings, and async/await. But it's not only script: your snippets can also use HTML, CSS, and references to external libraries and data on the web. Script Lab uses the Monaco editor, the same tech that powers VS Code, so it's beautiful and lightweight. * **Run** the code in another pane beside the editor. Execution can include logic, API calls to Office, UI in the pane, and even output to a console. Every time you make a code change you can refresh the editor and run the new version in seconds. -* **Share** your snippets through GitHub. If you create a snippet you’d like to share, you can use Script Lab to save it. Then send the link to someone else to try it and tweak it on their computer. The Import feature lets you load other people’s snippets. +* **Share** your snippets through GitHub. If you create a snippet you'd like to share, you can use Script Lab to save it. Then send the link to someone else to try it and tweak it on their computer. The Import feature lets you load other people's snippets. You can [install Script Lab right now for free from the Office Store](https://store.office.com/app.aspx?assetid=WA104380862)! It works for Excel, Word, and PowerPoint, and Project on Office 2013 and later, Office Online, and Office for Mac. @@ -30,30 +34,36 @@ Script Lab is a Microsoft Garage project that began as a hackathon project. You [![Script Lab teaser video](.github/images/screenshot-wide-youtube.png "Script Lab teaser video")](https://aka.ms/scriptlabvideo) + -## Get Started +## Getting started The easiest way to try Script Lab is with the Tutorial file for Excel that walks you through the tool in a few steps. You can get it here on GitHub: [script-lab-tutorial.xlsx](https://github.com/OfficeDev/script-lab/blob/master/src/client/assets/documents/script-lab-tutorial.xlsx) Alternatively, you can start from scratch and [install Script Lab from the Store](https://store.office.com/app.aspx?assetid=WA104380862). + -## Use Script Lab with Office 2013 +## Using Script Lab with older Office versions (Office 2013) + Office 2013 has several limitations compared to more recent versions. First, there are far fewer supported objects and methods in the JavaScript API for Office 2013. As a result, many snippets that work on later versions of Office will not run in Office 2013. In the **Samples** menu we have included certain samples specifically designed to use only capabilities that are available in Office 2013. Those samples are marked **(2013)** in the sample title. -Second, Office 2013 does not support ribbon buttons for Script Lab. As a result, there's a different way to access the **Code** and **Run** functions: +Second, Office 2013 (and Office 2016 RTM, if you don't have an Office 365 subscription) does not support ribbon buttons for Script Lab. As a result, there's a different way to access the **Code** and **Run** functions: * To **Code**, select the **INSERT** tab and choose **My Add-ins**, then insert Script Lab. * To **Run** a snippet, click the small **Run** triangle icon at the top of the Script Lab code pane. + -## Stay up-to-date +## Staying up-to-date * Follow [@OfficeDev](https://twitter.com/OfficeDev) on Twitter * Join our Office Developer program at [dev.office.com](https://dev.office.com/) + -## Report a bug +## Reporting a bug / suggesting a feature + To report a bug, [create a new issue](https://github.com/OfficeDev/script-lab/issues/new). Please provide as much detail as you can: tell us the operating system, the Office build number, and your browser (if you're using Office Online). It can also help to provide your Script Lab User ID (we generate it randomly for each device and it stays assigned to you until you clear your browser cache). You can find this ID under the **About** section in the editor view: @@ -64,14 +74,173 @@ If you have a suggestion for a feature, please feel free to file it under "issue Finally, if you have a **question**, please ask it on instead. Tag your questions with `office-js` and `scriptlab`. - -## Rate and review - -Leave a star-rating and (optionally) a review blurb for Script Lab on the [Office Store review page](https://store.office.com/writereview.aspx?assetid=WA104380862). -Of course, we'd prefer that if you have issues you [report them on GitHub](https://github.com/OfficeDev/script-lab/issues/new) instead, but you're free to leave any review comments you wish. -## Contribute code or samples to Script Lab +## Contributing code or samples to Script Lab To contribute to Script Lab itself, or to contribute sample code, please see [CONTRIBUTING.md](CONTRIBUTING.md). + + + + +## Frequently Asked Questions (FAQs) + + + +### How can I import someone else's snippet? + +Script Lab is built around sharing. If someone gives you a URL to a GitHub GIST, simply open Script Lab, use the hamburger menu at the top left to see the menu, and choose "Import" category (either on the left or top, depending on the available screen space). Then, enter the URL of the GIST, and click the "Import" button at the bottom of the screen. In just these few clicks, you will be able to view and run someone else's snippet! + +![Import](.github/images/import-snippet.jpg) + + + +### How can I reference external libraries? + +One of the powerful things about Script Lab is the ability to incorporate other libraries with your snippets. This creates a bunch of fun and compelling scenarios (for example, see the color-picker example, which you can import using the GIST URL ) + +![Import](.github/images/color-picker.jpg) + +The ease of importing varies depending on how the external library was created. If you are not sure, start with the first option, and progress to the next one if it doesn't work for you + + +#### Easiest: library is hosted on a regular CDN, exposes a global variable, and/or is a UMD module + +This is the "happy path". Simply reference the library (both the JS and the CSS, if relevant) in the "Libraries" tab. + +If the library is hosted on a CDN (much as `Office.js` is), you could reference it as a URL, as follows: + + https://appsforoffice.microsoft.com/lib/1/hosted/office.js + +If the library is available as an NPM package, you can just reference it by name: + + spectrum-colorpicker/spectrum.js + spectrum-colorpicker/spectrum.css + +This will use , a global CDN for NPM libraries, to substitute in the appropriate files. Thus, the above is equivalent to: + + https://unpkg.com/spectrum-colorpicker@1.8.0/spectrum.js + https://unpkg.com/spectrum-colorpicker@1.8.0/spectrum.css + +> Tip: To see the available files in a package, simply include a `/` after the package name, and you'll get a directory listing. E.g., . It will also conveniently tell you the available version numbers, via a dropdown at the top right of the site: +> +> ![Import](.github/images/unpkg.jpg) + + +#### Moderate: NPM package is an AMD module, but the library is also available via a "dist" build + +Suppose you add a reference to the library (say, the [javascript-qrcode](https://www.npmjs.com/package/javascript-qrcode) NPM package), but all you get is an error in the console: + + ["Script error", + "https://unpkg.com/javascript-qrcode", + 0, 0, undefined] + +In Internet Explorer (and hence on Add-ins on a PC version of Office), you don't get much more information than this -- but on a different platform (or Office Online on a different browser), you will see: + + ["Uncaught ReferenceError: module is not defined", + "https://unpkg.com/javascript-qrcode@1.0.7", + 3302, 1, ReferenceError: module is not defined {}] + +If you are lucky, even though the *NPM* package doesn't contain a web-ready version of the package, the web-compatible version may be available elsewhere. In the case of this `javascript-qrcode` package, the [NPM entry](https://www.npmjs.com/package/javascript-qrcode) points to a GitHub repo, . And the repo, in turn, has a "dist" folder (convention), along with exampe usage that also shows ``. + +This is great news, as it means that a web-ready version of the library is available! Just click on the "dist" folder, and find the file you want: + +Almost there! To be consumed inside of Script Lab, we need the file to be served in *RAW* form, ***and*** with correct Content-Type headers. To do this, use a service like [RawGit](https://rawgit.com) to transform the file for you, and give you a URL you can use directly. + +In this case, pasting in the above URL into RawGit produces: + + https://cdn.rawgit.com/siciarek/javascript-qrcode/041ad555/dist/qrcode.min.js + +Include this in your Libraries tab, and you're good to go! + + +#### Harder: NPM package is an AMD module (must be loaded with `require.js`), and is *not* available in "dist" form + +Suppose you get the same error as in the previous section, but you can't find a dist version of a library that you want. Let's take [tinygradient](https://github.com/mistic100/tinygradient) as one such example. The GitHub documentation of tinygradient says that it is "Compatible with Require.js/AMD and NodeJS". Let's use Require.js to load it. + +In your libraries tab, add a reference to `require.js` and to its IntelliSense types (note that `require.js` itself should be loaded from a web-compatible CDN version, not its NPM package): + + https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.3/require.min.js + @types/requirejs + +Do **NOT** add the names of the actual libraries that you want to load. They will be loaded at runtime instead, see below. + +Next, in the Script tab, at the top of the file: + +1. Add a line `require.onError = console.error`. This redirection is vital for seeing useful errors, don't forget it! + +2. Add a `require.config` section with a `paths` dictionary, listing out the sources of the JS files, as well as a local alias that you want to give them. **Importantly**, add the entire path to the JS file, *minus the actual `.js` suffix*. Thus: + + require.config({ + paths: { + "tinygradient": "https://unpkg.com/tinygradient@0.3.1/tinygradient.min", + } + }); + +3. Add the code that you want to use, *inside of a `require` block*: + + require(['tinygradient'], function (tinygradient) { + var gradient = tinygradient('red', 'blue'); + console.log(gradient.rgb(10)); + }); + +If you're lucky, it will work right off the bat. If you're slightly less lucky, you might still get a useful error that will help you fix the issue (which is why the `require.onError` line described in step #1 is so important!) + + Error: Script error for "tinycolor", needed by: tinygradient + http://requirejs.org/docs/errors.html#scripterror {...} + +This just means that you need to have required an additional library, tinycolor. Again, find its location (with https://unpkg.com being the easiest way of procuring it), and add it to the config paths list (*again, remembering to omit just the `.js` part of the filename). Also include the library name in the array in the `require` statement. When you patch up both bits, you will end up with the following: + + // At the top of the file: + + require.onError = console.error; + require.config({ + paths: { + "tinygradient": "https://unpkg.com/tinygradient@0.3.1/tinygradient.min", + "tinycolor": "https://unpkg.com/tinycolor2@1.4.1/tinycolor" + } + }); + + + // Somewhere further down, when you're ready to use it (e.g., in button click handler): + + require(['tinygradient', 'tinycolor'], function (tinygradient) { + var gradient = tinygradient('red', 'blue'); + console.log(gradient.rgb(10)); + }); + +Note that by putting the dependency towards the end of the array (opposite of what you might expect), I don't need to add it to the function arguments (as JS functions are OK with accepting only a portion of the parameters passed to them). But if I wanted to have a reference to both libraries, I would simply expand the callback to be `function(tinygradient, tinycolor) { ... }` + + +#### Impossible: CommonJS library + +If the above did not work for you, and/or the library is published in CommonJS format, you might not be able to use it with Script Lab (or any other normal webpage, without first running it through a command-like tool like [Browserify](https://browserify.org)). Sorry about that! + + + + +### Can I get IntelliSense for the external libraries too? + +If the library is available as an NPM package, there is a good chance that it's `d.ts` file (which drives IntelliSense) is available as part of the `@types` NPM repository. The easiest way to check is to type `https://unpkg.com/@types//`, and see if anything comes up. For example, for the `spectrum` library in the examples above, we can see that resolves to a folder with an `index.d.ts` in it (*don't forget the trailing slash!*). In this case, you can just add the following to your Libraries list, alongside the JS/CSS references: + + @types/spectrum + +Much as with regular NPM packages, the above is equivalent to adding + + https://unpkg.com/@types/spectrum@1.5.28/index.d.ts + +If the library, for whatever reason, is not available on @types, but you can find it on [DefinitelyTyped](https://github.com/DefinitelyTyped/DefinitelyTyped/), simply put in the link to it. So, for example, the `@types/office-js` reference (which uses the `@types` packaging) could alternatively have been written out as a long URL to the *RAW* d.ts contents: + + https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/master/types/office-js/index.d.ts + +If there are no IntelliSense definitions for the library you're using, but you don't want to see the red squiggly lines, you can always assert the existence of the variables/interfaces in the Script tab instead. For example, the Office Fabric library does not currently offer its definition files; and so if you look at the "Fabric JS - Using form data" example in Word, you will see the following unobtrusive line at the bottom of the Script tab, to avoid the red squiggly-lines: + + // To avoid compile errors for the undeclared "fabric" object, declare it to the type-system here. + declare var fabric; + + + + +### Anything else? +Anything you wanted to see here, but did not? Please file an issue with your suggestion for better documentation (or better yet, submit a pull request). Thanks!