mirror of
https://github.com/flutter/samples.git
synced 2026-03-28 07:11:50 +00:00
Update web/ samples to work with Flutter SDK (#134)
* add package:http dependency in dad_jokes * add package:http dependency in filipino_cuisine * don't build package:http demos until flutter/flutter#34858 is resolved * update gallery * update github_dataviz * update particle_background * don't build github_dataviz (uses package:http) * update slide_puzzle * update spinning_square * update timeflow * update vision_challenge * update charts * update dad_jokes * update filipino cuisine * ignore build output * update timeflow and vision_challenge * update slide_puzzle * don't commit build/ directory * move preview.png images to assets * fix path url join * update readme * update web/readme.md
This commit is contained in:
55
web/gallery/lib/gallery/example_code_parser.dart
Normal file
55
web/gallery/lib/gallery/example_code_parser.dart
Normal file
@@ -0,0 +1,55 @@
|
||||
// Copyright 2016 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 'package:flutter/services.dart';
|
||||
|
||||
const String _kStartTag = '// START ';
|
||||
const String _kEndTag = '// END';
|
||||
|
||||
Map<String, String> _exampleCode;
|
||||
|
||||
Future<String> getExampleCode(String tag, AssetBundle bundle) async {
|
||||
if (_exampleCode == null)
|
||||
await _parseExampleCode(bundle);
|
||||
return _exampleCode[tag];
|
||||
}
|
||||
|
||||
Future<void> _parseExampleCode(AssetBundle bundle) async {
|
||||
final String code = await bundle.loadString('lib/gallery/example_code.dart') ??
|
||||
'// lib/gallery/example_code.dart not found\n';
|
||||
_exampleCode = <String, String>{};
|
||||
|
||||
final List<String> lines = code.split('\n');
|
||||
|
||||
List<String> codeBlock;
|
||||
String codeTag;
|
||||
|
||||
for (String line in lines) {
|
||||
if (codeBlock == null) {
|
||||
// Outside a block.
|
||||
if (line.startsWith(_kStartTag)) {
|
||||
// Starting a new code block.
|
||||
codeBlock = <String>[];
|
||||
codeTag = line.substring(_kStartTag.length).trim();
|
||||
} else {
|
||||
// Just skipping the line.
|
||||
}
|
||||
} else {
|
||||
// Inside a block.
|
||||
if (line.startsWith(_kEndTag)) {
|
||||
// Add the block.
|
||||
_exampleCode[codeTag] = codeBlock.join('\n');
|
||||
codeBlock = null;
|
||||
codeTag = null;
|
||||
} else {
|
||||
// Add to the current block
|
||||
// trimRight() to remove any \r on Windows
|
||||
// without removing any useful indentation
|
||||
codeBlock.add(line.trimRight());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user