晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
| DIR:/lib/node_modules/npm/node_modules/from2/ |
| Current File : //lib/node_modules/npm/node_modules/from2/index.js |
var Readable = require('readable-stream').Readable
var inherits = require('inherits')
module.exports = from2
from2.ctor = ctor
from2.obj = obj
var Proto = ctor()
function toFunction(list) {
list = list.slice()
return function (_, cb) {
var err = null
var item = list.length ? list.shift() : null
if (item instanceof Error) {
err = item
item = null
}
cb(err, item)
}
}
function from2(opts, read) {
if (typeof opts !== 'object' || Array.isArray(opts)) {
read = opts
opts = {}
}
var rs = new Proto(opts)
rs._from = Array.isArray(read) ? toFunction(read) : (read || noop)
return rs
}
function ctor(opts, read) {
if (typeof opts === 'function') {
read = opts
opts = {}
}
opts = defaults(opts)
inherits(Class, Readable)
function Class(override) {
if (!(this instanceof Class)) return new Class(override)
this._reading = false
this._callback = check
this.destroyed = false
Readable.call(this, override || opts)
var self = this
var hwm = this._readableState.highWaterMark
function check(err, data) {
if (self.destroyed) return
if (err) return self.destroy(err)
if (data === null) return self.push(null)
self._reading = false
if (self.push(data)) self._read(hwm)
}
}
Class.prototype._from = read || noop
Class.prototype._read = function(size) {
if (this._reading || this.destroyed) return
this._reading = true
this._from(size, this._callback)
}
Class.prototype.destroy = function(err) {
if (this.destroyed) return
this.destroyed = true
var self = this
process.nextTick(function() {
if (err) self.emit('error', err)
self.emit('close')
})
}
return Class
}
function obj(opts, read) {
if (typeof opts === 'function' || Array.isArray(opts)) {
read = opts
opts = {}
}
opts = defaults(opts)
opts.objectMode = true
opts.highWaterMark = 16
return from2(opts, read)
}
function noop () {}
function defaults(opts) {
opts = opts || {}
return opts
}
|