如何实现自动化前端开发?

2020 年 1 月 16 日 CSDN

IDE不仅是文本编辑器,还是编译器、生成器、调试器和集成器。

作者 | Nicolus Rotich

译者 | 弯月,责编 | 郭芮

出品 | CSDN(ID:CSDNnews)

以下为译文:

每一行代码都可以表示为字符串变量,无论代码本身执行了哪些操作。
这就是我们使用文本文件(即集成开发环境,IDE)向计算机发布指令的根本原因,我知道你一定在想:文本编辑器的名字也太高级了吧。当你按照正确的结构将代码输入到IDE时,就赋予了文本超强的能力。IDE不仅是文本编辑器,还是编译器、生成器、调试器和集成器。这就是普通文本与计算机代码之间的主要区别。

超文本变量语言

听说过超文本变量语言吗?不用担心,我也没听说过,因为这个词是我刚刚杜撰出来的。其实,我们有更好的方法编写HTML文件,尤其是实现代码编写的自动化。想象一下HTML文件的一般结构。首先是 head,然后是 body。而这两个部分又可以进一步细分,如下所示:

如上所示,如果我们将代码中的每个文本块转换为一个存储在某处的字符串变量,则自动化任务就可以进一步简化。在本文中,我们就要尝试这类的自动化,即通过简单的脚本,将上述字符串变量转化成常规的HTML文件。
如上所示,用变量表示代码非常简洁直观。问题是我们应该将这些变量存储在何处,以及怎样调用这些变量将其变成代码。下面我们就来具体讨论。
首先,我创建了一个命令行界面(CLI)应用程序,帮助我创建如下所示的项目文件和目录结构:

上图中有一个名为 variables 的文件夹,所有构成HTML文件的字符串变量就保存在这个文件夹中。这些变量适用于所有的HTML文件,例如  global.sh 文件中有一个名叫 $dec 的全局变量。
此外,上图中还有一个名为 templates 的文件夹,里面存储了相对较长的变量,例如 $head,其中包含元标记、文档标题、链接以及内联样式。我之所以把它们存储在单独的文件夹中,是因为这些局部变量需要定期更新。 

利用HTVL创建第一个HTML

请注意,我们只需处理一个名叫 init.sh 的特殊脚本。这个文件负责创建所有其他文件,包括 global.sh(包含所有全局变量的文件)。接下来,我们只需创建这个文件,并在必要的时候进行修改。这个文件应包含以下代码:
global_vars=./$prName/variables/global.sh
(
cat << globals
#!/bin/bash
dec="<!DOCTYPE html>" # document type declaration
html="<html lang=\"en\">" # html opening
head="<head>" # head opening
deah="</head>" # head closing
body="<body>" # body opening
dybo="</body>" # body closing
lmth="</html>" # html closing
globals
) > $global_vars

上述代码的输出是一个名为 global.sh 的脚本,你可以根据需要使用这个脚本。脚本的内容如下:

#!/bin/bash
dec="<!DOCTYPE html>" # document type declaration
html="<html lang=\"en\">" # html opening
head="<head>" # head opening
deah="</head>" # head closing
body="<body>" # body opening
dybo="</body>" # body closing
lmth="</html>" # html closing

我们还需要通过同样的方式创建一个文件来存储需要经常修改的变量。我们称其为 local.sh ——表示局部变量。

local_vars=./$prName/variables/local.sh
(
cat << locals
#!/bin/bash
read -r -d '' meta <<- EOM
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
EOM
read -r -d '' links <<- EOM
    <link rel = "stylesheet" type = "text/css" href = "./assets/main.css" />
EOM
read -r -d '' title <<- EOM
    <title> 
      Title will go here
    </title>
EOM
read -r -d '' bodyContent <<- EOM
    <div id="nav"></div>
    <h1>Custom application will go here</h1>
    <div id="app"></div>
    <div id="footer"></div>
EOM
read -r -d '' scripts <<- EOM
    <script src="./scripts/js/index.js"></script>
EOM
locals
) > $local_vars

同样,上述代码的输出是脚本 local.sh,内容如下:

#!/bin/bash
read -r -d '' meta <<- EOM
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
EOM
read -r -d '' links <<- EOM
    <link rel = "stylesheet" type = "text/css" href = "./assets/main.css" />
EOM
read -r -d '' title <<- EOM
    <title> 
      Title will go here
    </title>
EOM
read -r -d '' bodyContent <<- EOM
    <div id="nav"></div>
    <h1>Hypertext Variables Language (HTVL)</h1>
<div id="app"></div>
    <div id="footer"></div>
EOM
read -r -d '' scripts <<- EOM
    <script src="./scripts/js/index.js"></script>
EOM

每当你需要添加外部链接时(比如bootstrap的CDN链接),只需将链接复制粘贴到它所属的位置。外部脚本和元数据也是如此。最后,我们来看一看创建主页的脚本。通过上述步骤,应用程序文件 $appName.sh 的内容应该如下:

#!/bin/bash
# Import external script sources like this
source ./variables/global.sh
source ./variables/local.sh
indexFilePath=./$prName/public/index.html
cat > $indexFilePath <<- _EOF_
$dec
$html
$head
    ${meta[@]}
    ${links[@]}
    ${title[@]}
$deah
$body
    ${bodyContent[@]}
$dybo
$lmth
_EOF_

现在,你只需简单地运行三个终端命令,就可以看到前端开发开始自动执行,如果你打开本地服务器的8080端口,就可以看到完整的网站,其中包含主页、登录、注册、以及找回密码等页面。

原文:https://medium.com/swlh/automating-front-end-development-baeded303154
本文为 CSDN 翻译,转载请注明来源出处。

热 文 推 荐 

阿里将开源进行到底!
陆奇:冬天过后一定是春天,首先要活下来
科技行业的起步时代已结束
达摩院 2020 预测:模块化降低芯片设计门槛 | 问底中国 IT 技术演进

千万不要和程序员一起合租!

在调查过基于模型的强化学习方法后,我们得到这些结论

漫话:如何给女朋友解释为什么一到年底,部分网站就会出现日期混乱的现象?

你点的每个“在看”,我都认真当成了喜欢


登录查看更多
0

相关内容

超文本标记语言(英文:HyperText Markup Language,HTML)是为“网页创建和其它可在网页浏览器中看到的信息”设计的一种标记语言。
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
Python导论,476页pdf,现代Python计算
专知会员服务
259+阅读 · 2020年5月17日
算法与数据结构Python,369页pdf
专知会员服务
161+阅读 · 2020年3月4日
如何使用自然语言工具包(NLTK)在Python3中执行情感分析
Python程序员
19+阅读 · 2019年10月28日
文本分析与可视化
Python程序员
9+阅读 · 2019年2月28日
还在PS里手动描边?AI自动抠图只需5秒
机器之心
12+阅读 · 2018年12月19日
从基础概念到实现,小白如何快速入门PyTorch
机器之心
13+阅读 · 2018年2月26日
如何运用Python建一个聊天机器人?
七月在线实验室
17+阅读 · 2018年1月23日
Arxiv
4+阅读 · 2019年12月2日
A Sketch-Based System for Semantic Parsing
Arxiv
4+阅读 · 2019年9月12日
Arxiv
8+阅读 · 2018年5月21日
Arxiv
15+阅读 · 2018年2月4日
Arxiv
6+阅读 · 2018年1月11日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
Python导论,476页pdf,现代Python计算
专知会员服务
259+阅读 · 2020年5月17日
算法与数据结构Python,369页pdf
专知会员服务
161+阅读 · 2020年3月4日
相关资讯
如何使用自然语言工具包(NLTK)在Python3中执行情感分析
Python程序员
19+阅读 · 2019年10月28日
文本分析与可视化
Python程序员
9+阅读 · 2019年2月28日
还在PS里手动描边?AI自动抠图只需5秒
机器之心
12+阅读 · 2018年12月19日
从基础概念到实现,小白如何快速入门PyTorch
机器之心
13+阅读 · 2018年2月26日
如何运用Python建一个聊天机器人?
七月在线实验室
17+阅读 · 2018年1月23日
Top
微信扫码咨询专知VIP会员