Skip to content

Instantly share code, notes, and snippets.

@lightman76
Created February 28, 2019 19:26
Show Gist options
  • Save lightman76/d2a745fd3ac2ccfa683c76f7f5aca015 to your computer and use it in GitHub Desktop.
Save lightman76/d2a745fd3ac2ccfa683c76f7f5aca015 to your computer and use it in GitHub Desktop.
name: Blank snippet
description: Create a new snippet from a blank template.
host: WORD
api_set: {}
script:
content: |
$("#run").click(() => tryCatch(run));
async function run() {
await Word.run(async (context) => {
const body = context.document.body;
var doc = context.document;
var endOfBodyRange = doc.body.getRange(Word.RangeLocation.end);
endOfBodyRange.insertBreak(Word.BreakType.page, Word.InsertLocation.before);
//update the end of body range now that the page break has been inserted.
endOfBodyRange = doc.body.getRange(Word.RangeLocation.end);
var pageTitleParagraph = endOfBodyRange.insertParagraph('Works Cited', Word.InsertLocation.after);
pageTitleParagraph.alignment = Word.Alignment.centered;
var bibRange = pageTitleParagraph.getRange(Word.RangeLocation.after);
var bibContentControl = bibRange.insertContentControl();
bibContentControl.title = "Bibliography managed via add-on";
bibContentControl.tag = "BibliographyControlTag";
bibContentControl.placeholderText = "Use the add-on to manage your bibliography.";
bibContentControl.insertText("...loading bibliography...", Word.InsertLocation.end);
bibContentControl.cannotEdit = true;
var marketingText = bibRange.insertParagraph("", Word.InsertLocation.after);
var marketingTextRange = bibRange.getRange(Word.RangeLocation.whole);
marketingTextRange.insertHtml("<div style='color: #666666; font-size: 10pt;'>" +
"Bibliography managed by ACME add-on</div>", Word.InsertLocation.after);
await context.sync();
console.log("Sync completed")
});
}
/** Default helper for invoking an action and handling errors. */
async function tryCatch(callback) {
try {
await callback();
} catch (error) {
// Note: In a production add-in, you'd want to notify the user through your add-in's UI.
console.error(error);
}
}
language: typescript
template:
content: |
<button id="run" class="ms-Button">
<span class="ms-Button-label">Run</span>
</button>
language: html
style:
content: |-
section.samples {
margin-top: 20px;
}
section.samples .ms-Button, section.setup .ms-Button {
display: block;
margin-bottom: 5px;
margin-left: 20px;
min-width: 80px;
}
language: css
libraries: |
https://appsforoffice.microsoft.com/lib/1/hosted/office.js
@types/office-js
office-ui-fabric-js@1.4.0/dist/css/fabric.min.css
office-ui-fabric-js@1.4.0/dist/css/fabric.components.min.css
core-js@2.4.1/client/core.min.js
@types/core-js
@microsoft/office-js-helpers@0.7.4/dist/office.helpers.min.js
@microsoft/office-js-helpers@0.7.4/dist/office.helpers.d.ts
jquery@3.1.1
@types/jquery@3.3.1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment