gulp-html-import,在html中引入外部html檔案

Jrain發表於2018-12-11

寫於 2016.06.14

專案地址:

gulp-html-import

曾經學習PHP的時候,深深覺得include語法非常好用,後接觸了ejs,發現裡面也有類似的語法,能夠方便地引入公共html檔案;在學習了vuereact等框架以後,“元件化思想”更是在我腦海根深蒂固,再也無法忍受每個頁面重複大量程式碼的原始方法。但是,在最最普通的靜態html開發過程中,我實在懶得用框架,只想用最基本的方式寫幾個靜態頁面出來,這時候才想起,沒有include語法,每個頁面的公共部分都要手動複製貼上一次,實在不科學……

早上看了張鑫旭老師的文章《JS一般般的網頁重構可以使用Node.js做些什麼》,深受啟發,於是馬上蹦起床嘗試著把當中內容實現一遍,並嘗試著搭配gulp,製作一個簡單好用的外掛,實現類似PHPinclude語法能夠引入靜態html檔案的功能。

因為喜歡less語法,所以使用了類似less的@import 'xxx.less';作為引入方式。

下面直接貼上專案readme的內容


gulp-html-import

A gulp plugin which can import .html files into .html files

Usage

First, install gulp-html-import as a devDependency:

npm install gulp-html-import --save-dev
複製程式碼

Then add it to the gulpfile.js:

var htmlImport = require('gulp-html-import');

gulp.task('import', function () {
    gulp.src('./demo/index.html')
        .pipe(gulpImport('./demo/components/'))
        .pipe(gulp.dest('dist')); 
})
複製程式碼

Example

Here is the files tree:

|
-- demo
|   |
|   -- components
|   |    |
|   |    -- header.html
|   |    |
|   |    -- footer.html
|   |
|   -- index.html
|
-- gulpfile.js
複製程式碼

Html files:

<!-- index.html -->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Gulp-html-import Example</title>
</head>
<body>
    @import "header.html"
    <p>Hello World</p>
    @import "footer.html"
</body>
</html>
複製程式碼

In your index.html, you should use

@import "XXX.html"
複製程式碼

to import your components.

<!-- header.html -->

<h1>I am the header</h1>
複製程式碼
<!-- footer.html -->

<h1>I am the footer</h1>
複製程式碼

When you get into the root directory(where your gulpfile.js is) and type

gulp import
複製程式碼

you could see a html file in /dist like this:

<!-- /dist/index.html -->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Gulp-html-import Example</title>
</head>
<body>
    <h1>I am the header</h1>
    <p>Hello World</p>
    <h1>I am the footer</h1>
</body>
</html>
複製程式碼

Everything is OK.

API

htmlImport(string)

string

Type: String

The url of your components


MIT

Copyright © 2016 Jrain Lau

相關文章