message: Draft add button.
diff: @@ -11,11 +11,14 @@ export function mkCommandUri(commandName: string, ...args: any): string {
  export class DocViewProvider implements Disposable {
  private subscriptions: Disposable[] = [];
  -
  + private currentHtml : string = "";
  + private backstack : string[] = [];
  + private forwardstack : string[] = [];
  constructor() {
  this.subscriptions.push(
  commands.registerCommand('lean.openDocView', (url) => this.open(url)),
  commands.registerCommand('lean.openTryIt', (code) => this.tryIt(code)),
  + //commands.registerCommand("workbench.action.navigateBack", () => this.back()),
  );
  }
  @@ -69,7 +72,26 @@ export class DocViewProvider implements Disposable {
  link.attribs.href = mkCommandUri('lean.openDocView', href);
  }
  }
  - this.getWebview().webview.html = $.html();
  + let button = $('<input type="button" value="back"/>');
  + button.attribs.href = mkCommandUri("lean.backDocView");
  + $("body").prepend(button)
  + if (this.currentHtml) {this.backstack.push(this.currentHtml);}
  + this.currentHtml = $.html();
  + this.getWebview().webview.html = this.currentHtml;
  + }
  +
  + async back() {
  + if (this.backstack.length === 0) {return;}
  + this.forwardstack.push(this.currentHtml);
  + this.currentHtml = this.backstack.pop();
  + this.getWebview().webview.html = this.currentHtml;
  + }
  +
  + async forward() {
  + if (this.forwardstack.length === 0) {return;}
  + this.backstack.push(this.currentHtml);
  + this.currentHtml = this.forwardstack.pop();
  + this.getWebview().webview.html = this.currentHtml;
  }
  dispose() {
  