使用Try.NET创建可交互.NET文档
原文地址:Create Interactive .NET Documentation with Try .NET
原文作者:Maria
译文地址:https://www.cnblogs.com/lwqlun/p/10894497.html
译者:Lamond Lu
背景
当我们编写开发人员使用的文档时,我们需要捕捉他们的兴趣,并引导他们尽快走上成功的道路。开发人员生态系统一直在为社区提供可交互的文档,用户可以一个地方阅读文档,运行代码并进行编辑。
在过去的2年里,.NET语言团队一直在不断发展Try .NET, 以支持在线和离线的交互式文档。
什么是Try .NET
Try .NET是一个基于.NET Core的交互式文档生成器。
Try .NET 在线版
2017年9月,Try .NET第一次在docs.microsoft.com中使用,开发人员可以使用Azure Container实例运行代码。然而在过去的5个月内,我们改用Blazor和Web Assembly作为代码执行客户端。
你可以自己访问如下链接, 并打开开发者工具。在控制台标签页中,你可以看到如下信息WASM:Initialized
, 切换到网络标签页,你将看到所有在客户端执行的DLL。
控制台标签页: *WASM Initialized*
网络标签页: DLLs
Try .NET离线版
对我们而言,离线版和在线版一样的重要。针对离线体验,对我们而言,创建一种可以融入内容作者工作流程的体验是非常重要的。
在我们的调查结果中,我们注意到内容开发人员(content developers)在创建开发人员文档时,经常使用2种说明方式
- 一个用户可以下载并运行的实例。
- 一些Markdown文件,其中包含一系列说明,以及从代码库复制黏贴的的代码片段。
Try .NET提供了全局工具dotnet try, 以方便.NET开发人员创建可交互的Markdown文件。
为了使你的Markdown文件具有交互性,你需要安装.NET Core的SDK, 全局工具dotnet try, 以及Visual Studio / VS Code。
我们该怎么做?
扩展Markdown
在Markown文件中,你会使用隔离代码块来突出显示代码段。在代码块的前后,你会使用```来包裹它们。你可以添加可选的语言标识符,启用针对代码段的语法突出显示。
例:C#的代码块
``` cs
var name ="Rain";
Console.WriteLine($"Hello {name.ToUpper()}!");
```
使用Try .NET, 我们可以扩展隔离代码块,给它添加一些额外的参数。
``` cs --region methods --source-file .\myapp\Program.cs --project .\myapp\myapp.csproj
var name ="Rain";
Console.WriteLine($"Hello {name.ToUpper()}!");
```
这里我们使用了3个参数
--region
参数 - 指定一个C#的分块(region)--source-file
参数 - 指定程序文件的目录--project
参数 - 指定项目文件和引用的系统程序集
因此,以上示例中,我们做的事情是,当你运行Try .NET的解析你的Markdown文件的时候,程序会去尝试引用Program.cs
文件中名为methods
的分块代码。
使用#regions
在Markdown中,我们扩展了代码块,提供了--region
参数,用它可以指定C#代码中的分块(region)。
所以,你的Program.cs
文件看起来可能是这样的。
using System;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
#region methods
var name ="Rain"
Console.WriteLine($"Hello{name.ToUpper()}!");
#endregion
}
}
}
dotnet try verify
dotnet try verify
是一个文档编译器。使用这个命令,你可以确保每个代码块都能正常工作,并且和项目代码保持一致。
dotnet try verify
命令的目的是为了验证你的文档按照你期望的样子工作。
通过使用dotnet try verify
命令,你可以检测Markdown文件并编译错误。例如,如果我将之前代码中移除一个分号,并且将methods
代码分块改名为method
。现在如果运行编译器,会出现以下错误。
尝试使用全局工具dotnet try
dotnet try
现在已经可以使用了。这是一个dotnet try
全局工具的早期预览版,你可以从我们的仓储克隆代码。
入门
- 克隆代码仓储
- 签出Samples分支
- 安装.NET Core 2.1或3.0预览版
- 打开控制台窗口
- 安装Try .NET全局工具
dotnet tool install --global dotnet-try --version 1.0.19264.11
更新dotnet try
也很简单,只需要运行如下命令
dotnet tool update -g dotnet-try
定位到当前仓储的Samples
目录,输入dotnet try
浏览器会自动打开
Try .NET现在开源了
现在Try.NET已经在Github上开源了!由于我们仍处于早期开发阶段,所以目前我们无法接受任何功能的Pull Request, 但我们打算在未来这么做。请随时在我们的Issue列表中提交Bug报告。 如果你有任何功能建议,请在我们的Issue列表中使用社区建议的标签提交。
使用Try.NET创建可交互.NET文档的更多相关文章
- (转)创建和查看Javadoc文档
原地址:http://jinnaxu-tju-edu-cn.iteye.com/blog/667177 Javadoc是Sun公司提供的一个技术,它从程序源代码中抽取类.方法.成员等注释形成一个和源代 ...
- ABP给WebApi添加SwaggerUI,生成可交互接口文档
在ABP模板项目中,通过SwaggerUI可以为我们的WebApi生成动态的可交互接口文档页面,从而可以很方便的测试调用我们的WebApi接口. 一.集成Swagger 右键项目YoYo.Web,打开 ...
- 1.2.3 创建Cocos2D-iPhone的帮助文档
http://book.51cto.com/art/201303/383957.htm <Cocos2D权威指南>第1章开始前的准备工作,本章我们将介绍什么是Cocos2D以及有关Coco ...
- 【.NET深呼吸】Zip文件操作(1):创建和读取zip文档
.net的IO操作支持对zip文件的创建.读写和更新.使用起来也比较简单,.net的一向作风,东西都准备好了,至于如何使用,请看着办. 要对zip文件进行操作,主要用到以下三个类: 1.ZipFile ...
- php创建读取 word.doc文档
创建文档; <?php $html = "this is question"; for($i=1;$i<=3;$i++){ $word = new word(); $w ...
- dom4j创建和解析xml文档
DOM4J解析 特征: 1.JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功能. 2.它使用接口和抽象基本类方法. 3.具有性能优异.灵活性好.功能强大和极端易用的特点. 4.是一个开 ...
- 用R创建Word和PowerPoint文档--转载
https://www.jianshu.com/p/7df62865c3ed Rapp --简书 Microsoft的Office软件在办公软件领域占有绝对的主导地位,几乎每个职场人士都必须掌握Wor ...
- MFC中 创建基于CFormView的文档视图程序
在MFC中可以创建多种类型的窗口程序,如对话框程序.单文档结构程序(非文档/视图结构).单文档(文档/视图结构)以及多文档视图结构程序等. 在编写一般的小工具时,我们的首选显然是对话框程序,不过基于对 ...
- Open Cascade创建自己的MFC文档程序
项目初始设置在Visual studio中创建一个单文档MFC项目(本例以MFCTest为名称): 在项目属性的VC++页面设置包含目录.库目录,在链接器的输入中添加OCC库目录下的所有.lib文件名 ...
随机推荐
- HTML marquee标签
marquee语法 <marquee></marquee> 实例一<marquee>Hello, World</marquee> marquee常 ...
- MSQL Webpage
Mars Nov 19, 2014
- JQuery日记 5.31 JQuery对象的生成
JQuery对象的生成 1 selector为不论什么可转换false的空值 返回空JQuery对象 2 selector为字符串 2.1 selector为html字符串或有id属性的标签 ...
- RS-485接口的防护电路设计
RS-485总线标准是安防系统设备上应用最为广泛的物理层协议之一.RS-485的主要特点:支持远距离传输,长达4000英尺:双向信号差分传输,提高信号的噪音抑制能力,并且允许一条总线上可以挂接多个发射 ...
- The basic principle of test case 修改引擎
The basic principle of test case evaluation is that output resulting from running a test case is com ...
- 第一节 麒麟系统安装+基础环境搭建(JDK+Scala)
本文重点对没有Linux基础的人员提供高速上手的指导,假设你的开发环境已经搭建好,能够略过本章所讲内容,内容来源于网络.也谢谢这些默默讲自己经验分享的人!近期在学习大数据,有喜欢的朋友能够一起研究. ...
- 配置composer代理
composer config -g repo.packagist composer https://packagist.phpcomposer.com
- 第一个自定义开发的Arcgis地图
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- Codeforces Beta Round #7 D. Palindrome Degree —— 字符串哈希
题目链接:http://codeforces.com/contest/7/problem/D D. Palindrome Degree time limit per test 1 second mem ...
- 分布式锁(Redis实现)
1.分布式锁解决方案 1.采用数据库 不建议 性能不好 jdbc 2.基于Redis实现分布式锁(setnx)setnx也可以存入key,如果存入key成功返回1,如果存入的key已经存在了,返回 ...