From d97b13b5fde2f299363b3ebea0a9bf8e00ebb210 Mon Sep 17 00:00:00 2001 From: Sarah Zakarias Date: Mon, 26 Jun 2017 12:15:24 +0200 Subject: [PATCH] Add objc doc to the dartdoc output (#10905) --- dev/bots/docs.sh | 2 +- dev/docs/platform_integration/lib/ios.dart | 2 + dev/tools/dartdoc.dart | 12 ++++- dev/tools/java_and_objc_doc.dart | 53 ++++++++++++++++++++++ dev/tools/javadoc.dart | 41 ----------------- 5 files changed, 66 insertions(+), 44 deletions(-) create mode 100644 dev/docs/platform_integration/lib/ios.dart create mode 100644 dev/tools/java_and_objc_doc.dart delete mode 100644 dev/tools/javadoc.dart diff --git a/dev/bots/docs.sh b/dev/bots/docs.sh index c9a7a415ad..8a563d6851 100755 --- a/dev/bots/docs.sh +++ b/dev/bots/docs.sh @@ -14,7 +14,7 @@ bin/cache/dart-sdk/bin/pub global activate dartdoc 0.13.0+1 # a custom index.html, placing everything into dev/docs/doc. (cd dev/tools; ../../bin/cache/dart-sdk/bin/pub get) FLUTTER_ROOT=$PWD bin/cache/dart-sdk/bin/dart dev/tools/dartdoc.dart -FLUTTER_ROOT=$PWD bin/cache/dart-sdk/bin/dart dev/tools/javadoc.dart +FLUTTER_ROOT=$PWD bin/cache/dart-sdk/bin/dart dev/tools/java_and_objc_doc.dart # Ensure google webmaster tools can verify our site. cp dev/docs/google2ed1af765c529f57.html dev/docs/doc diff --git a/dev/docs/platform_integration/lib/ios.dart b/dev/docs/platform_integration/lib/ios.dart new file mode 100644 index 0000000000..86c2012df2 --- /dev/null +++ b/dev/docs/platform_integration/lib/ios.dart @@ -0,0 +1,2 @@ +/// [Flutter platform integration APIs for iOS.](https://docs.flutter.io/objcdoc/) +library iOS; diff --git a/dev/tools/dartdoc.dart b/dev/tools/dartdoc.dart index fab1c4e2fc..43947eb19f 100644 --- a/dev/tools/dartdoc.dart +++ b/dev/tools/dartdoc.dart @@ -200,6 +200,11 @@ void addHtmlBaseToIndex() { 'href="Android/Android-library.html"', 'href="https://docs.flutter.io/javadoc/"' ); + indexContents = indexContents.replaceAll( + 'href="iOS/iOS-library.html"', + 'href="https://docs.flutter.io/objc/"' + ); + indexFile.writeAsStringSync(indexContents); } @@ -243,10 +248,13 @@ Iterable libraryRefs({ bool diskPath: false }) sync* { } // Add a fake package for platform integration APIs. - if (diskPath) + if (diskPath) { yield 'platform_integration/lib/android.dart'; - else + yield 'platform_integration/lib/ios.dart'; + } else { yield 'platform_integration/android.dart'; + yield 'platform_integration/ios.dart'; + } } void printStream(Stream> stream) { diff --git a/dev/tools/java_and_objc_doc.dart b/dev/tools/java_and_objc_doc.dart new file mode 100644 index 0000000000..4a59b21005 --- /dev/null +++ b/dev/tools/java_and_objc_doc.dart @@ -0,0 +1,53 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'dart:async'; +import 'dart:io'; + +import 'package:archive/archive.dart'; +import 'package:http/http.dart' as http; + +const String kDocRoot = 'dev/docs/doc'; + +/// This script downloads an archive of Javadoc and objc doc for the engine from +/// the artifact store and extracts them to the location used for Dartdoc. +Future main(List args) async { + final String engineVersion = + new File('bin/internal/engine.version').readAsStringSync().trim(); + + final String javadocUrl = + 'https://storage.googleapis.com/flutter_infra/flutter/$engineVersion/android-javadoc.zip'; + generateDocs(javadocUrl, 'javadoc', 'io/flutter/view/FlutterView.html'); + + final String objcdocUrl = + 'https://storage.googleapis.com/flutter_infra/flutter/$engineVersion/ios-objcdoc.zip'; + generateDocs( + objcdocUrl, 'objcdoc', 'objc/Classes/FlutterViewController.html'); +} + +Future generateDocs( + final String url, String docName, String checkFile) async { + final http.Response response = await http.get(url); + + final Archive archive = new ZipDecoder().decodeBytes(response.bodyBytes); + + final Directory output = new Directory('$kDocRoot/$docName'); + print('Extracing $docName to ${output.path}'); + output.createSync(recursive: true); + + for (ArchiveFile af in archive) { + if (af.isFile) { + final File file = new File('${output.path}/${af.name}'); + file.createSync(recursive: true); + file.writeAsBytesSync(af.content); + } + } + + final File testFile = new File('${output.path}/$checkFile'); + if (!testFile.existsSync()) { + print('Expected file ${testFile.path} not found'); + exit(1); + } + print('$docName ready to go!'); +} diff --git a/dev/tools/javadoc.dart b/dev/tools/javadoc.dart deleted file mode 100644 index 2b99f0eb56..0000000000 --- a/dev/tools/javadoc.dart +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'dart:async'; -import 'dart:io'; - -import 'package:archive/archive.dart'; -import 'package:http/http.dart' as http; - -const String kDocRoot = 'dev/docs/doc'; - -/// This script downloads an archive of Javadoc for the engine from the -/// artifact store and extracts it to the location used for Dartdoc. -Future main(List args) async { - final String engineVersion = new File('bin/internal/engine.version').readAsStringSync().trim(); - - final String url = 'https://storage.googleapis.com/flutter_infra/flutter/$engineVersion/android-javadoc.zip'; - final http.Response response = await http.get(url); - - final Archive archive = new ZipDecoder().decodeBytes(response.bodyBytes); - - final Directory output = new Directory('$kDocRoot/javadoc'); - print('Extracing javadoc to ${output.path}'); - output.createSync(recursive: true); - - for (ArchiveFile af in archive) { - if (af.isFile) { - final File file = new File('${output.path}/${af.name}'); - file.createSync(recursive: true); - file.writeAsBytesSync(af.content); - } - } - - final File testFile = new File('${output.path}/io/flutter/view/FlutterView.html'); - if (!testFile.existsSync()) { - print('Expected file ${testFile.path} not found'); - exit(1); - } - print('Javadocs ready to go!'); -}