Pages

有些人的灵魂是有香气的

 

我在等一场花事,很虔诚的。

从秋分等到寒露,从寒露等到现在。我知道,我还要等,还要等。

终于等不下去了,于是踩着假期的尾巴,驱车去探望那几株桂树。一路上车子飞驰,我像个坠入爱河的少女,心涨得饱满。它们怎么样了?一定爆出花芽了吧?小米粒般大的,黄绿黄绿的,长着细细的尖尖儿。只消等一场冷空气到来,它们就“噗噗噗”地依次炸开,香透整个院落。万一没有结苞呢?虽然秋早已接过季节的令牌,可是夏迟迟不肯交出权杖,赖在秋的国界里作威作福。

热啊!这样的秋!

其实,立秋刚过,我就开始了等待。我居住的小区没有桂树,让人颇感遗憾。若没有桂树,秋天还怎么称之为金秋呢?于是,只好叨扰老邻居:咱们小区那几株桂花开了吗?一周总要问上两三次的,我像个幼稚的孩童,纯粹执着。

然而回给我的总是失望。那失望一次次凝结,必得以记忆中桂花的香气熏染,重新熏染出浪漫柔软的心方可。

桂花像极了中年女人,一半烟火,一半诗意

儿时,我家院子里植着一棵桂树。每到秋天,那桂花就细细碎碎地开,小粒小粒的,挤挤挨挨着。花梗处,叶片下,一簇簇、一蓬蓬,踏踏实实过日子的样子。开得最盛时,阿婆拿出篾簟,铺在桂树下面,然后差我摇桂花。于我而言,那分明是最有趣的游戏。我鼓足了劲儿,抱住桂树用力摇。可是,桂花如如不动,只是在我放开手后,象征性地微微颔首。阿婆笑望着我,宠溺得很。她攀住一枝桂花,放在我手里,我抱住桂枝,猛力摇动。于是桂花纷纷落下,落得我们满头满身,我大喊:“下雨啦!下雨啦!下香雨啦!”阿婆只是望着我笑。

第一份桂花必是供天的。阿婆取出一把桂花,小火焙干,然后研磨成粉,用模具做成香塔,置于佛龛引燃,香烟袅袅,熏染了房间。阿婆跪下来,口中念念有词,虔诚地做着她的信仰。第二份桂花才是属于我们的。阿婆以桂花入馔,做桂花糕、桂花糖、桂花汤圆……哪怕只是吃白粥,她也要撒上一小撮桂花,粥的热激出桂花的香味,桂花的香味腌渍了粥的寡淡,金黄与乳白相得益彰,谷香与花香相辅相成。我们坐在紫扁豆藤下,一边吃桂花宴,一边听风来,看云去,好不惬意。

定居上海后,我曾多次采来桂花做吃食,然而,总也复制不出那种滋味。每每慨叹,总不免想起那句词:欲买桂花同载酒,终不似,少年游。是啊,物不是人也非,“欲语泪先流”。

除此之外,阿婆还要做一份桂花香水,于是,我们的衣服上、被褥上,长年沾着淡淡的桂花香。她教我背“人闲桂花落,夜静春山空”,我反问道,桂花为什么在春天开放?她刮刮我的鼻子:桂有四季桂,有日日开花者。这世界上的事物,丰富着呢!

有些人的灵魂是有香气的,哪怕她什么都不做,只是坐在那里,周遭的一切都会为她代言,阿婆就是这样的人。因为有阿婆,我们的日子与别家的不一样,哪里不一样呢?大体是有了超越吧。

如今,每每想起阿婆,我的脑海里就会出现她坐在紫扁豆架下听戏的画面,她最迷昆曲,曲调轻柔委婉、细腻圆润。扁豆架边是桂花树,一树桂花,一架扁豆,一架秋风。她坐在那,好似被结了结界,与周遭隔绝开来。

阿婆一边应对烟火日常,过着同所有寻常主妇一样的世俗日子;一边保全自己,躲在桂花树边,躲在扁豆架下,躲在清风明月之后,过自己清幽的精神生活。这让阿婆的灵魂孤独又疏离。这个终日在烟火深处纠缠的灵魂,终于在某个闲暇里,在秋风路过的瞬间,逃出了自己的身体,安然地静默着,盛开着,如桂花。

今日一早,我又一次问老邻居:咱们小区的那几棵桂树开花了吗?片刻后,她传给我几张图片:叶子荫下,已有密密麻麻的花芽,黄绿黄绿的,长着细细的尖尖儿。我知道,它们在等一场冷空气。

正如我,在等一场花事,很虔诚的!

一碗面落肚,肠子就活了

 


从东汉的煮饼到山西的刀削面,一碗面的流转,便是一部藏着烟火与温情的民间史。

等一碗面吃,白日的喧哗模糊了许多,一切淹没在暮霭中。这时,你会觉得日子仍然含混在黑白电影时代,也属于小说印数谨慎和有限的年代。擀面人站在地上,瓦数很小的灯泡照亮了屋子。

“腾,腾,腾。”灶台上铁锅中的水开了花,要下面了,吃面人离开座位,坐立不安,最不体面的事就是焦心地等一碗面的到来。

民以食为天,这是千百年来民众生存活命依附的一个大真理。填饱肚不生事,只有依据常识行事,生活才会有鼓舞的日子出现。面,是天地之间最普通、最实在、最没有富贵气的民间食物,人们对面的态度,反映着社会、生活的水平。有面吃,才能饭饱生余情。

“吃面啊。吃面。”听了这样的对话有啥感觉,我感到了麦穗里面的福气正朝着美好的生活鼓出来。

童年时地少,或者说地不产粮,麦子少得可怜,吃面总要掺杂一些杂面,能吃一顿精白面,家里不知道藏粮该有多少。

几天不吃面便觉得心焦难耐,一日少一顿面,在老人眼里,熟悉于心的好日子已经过得不成样子了,没面吃,日子完全没了架势,做面的女主人便觉得空落落的,哪儿哪儿都不得劲。端着碗不敢去串门儿,跟打麦场上闲着的连枷似的。

我最喜欢吃的面是三合面,浆水臊子,二十世纪七十年代的“为人民服务”大海碗,坐在自家的土窑炕上,边吃面边听妈唠叨,“吃饱饱的,出门在外吃不上妈的手擀面了”。

在家的日子就是蒙着爸妈的开恩,想吃面,不动手一碗面就来了。出门的人,就算一碗面“举案齐眉”在眼前,可那面里头没有了爸妈的唠叨。

成长,让擀面的人和不动面了,刀锋似的,瞬间即老。

面大约在一千九百多年前的东汉就有。东汉桓帝时有一个很喜欢吃面的尚书叫崔寔,写了一本《四民月令》的书。书上说“五月,阴气入脏,腹中寒不能腻。先后日至各十日,薄荷味,毋多肥浓,距立秋毋食煮饼及水溲饼”。

据考证“煮饼”“水溲饼”是最早的面食。崔寔尚书吃面居然吃出了经验,知道吃面也有自伤的时候,说有些月份是不可以多吃面的。面在魏晋时称“汤饼”,北朝时称“水引”,唐代称“馎饦”。

《齐民要术》介绍说:做水引,先要用肉汁将面和好,然后用手将面挼成筷子粗细的条,一尺一断,放在盘中用水浸,做时手临锅边,面条要挼得如韭叶一般薄,用沸水煮熟,即为“水引面”。我想也就是我们山西人如今喜欢吃的拉面了。

面的发展要数宋朝,北宋汴梁城内,北食店有“淹生软羊面”“桐皮面”“冷陶榛子”等;川饭店有“插肉面”“大燠面”;面食店有“桐皮熟脍面”;寺院有“素面”。南宋都城临安城内,南食店有“铺羊肉”“煎面”“鹅面”等;面食店有“鸡丝面”“三鲜面”“银丝冷陶”等,菜店则专卖“菜面”“齑淘”“经带面”。山林之家的“百合面”和“梅花汤面”等,把那个热衷风花雪月的李师师丰仪得如雪地春风,让走在万古无春的天边路上的赵皇帝有了星星点点的斑斓春梦。

这些面都不如我们山西的刀削面。山西的刀削面内虚、外筋、柔软、光滑。

刀削面传统的操作方法是一手托面,一手拿刀,直接削到开水锅里,其要诀是:“刀不离面,面不离刀,胳膊直硬手平,手端一条线,一棱赶一棱,平刀是扁条,弯刀是三棱。”要说吃了刀削面是饱了口福,那么观看刀削面则饱了眼福。1985年山西财贸系统在太原城技术比武时,饮食行业的削面高手每分钟削118刀,每小时可削25公斤面粉的湿面团。有顺口溜赞:“一叶落锅一叶飘,一叶离面又出刀,银鱼落水翻白浪,柳叶乘风下树梢。”

面食在山西按照制作工艺来讲,可分为蒸制面食、煮制面食、烹制面食三大类,有280种之多。如大拉面、刀拨面、拨鱼、剔尖、河捞、猫耳朵等,蒸、煎、烤、炒、烩、煨、炸、烂、贴、摊、拌、蘸、烧等多种,名目繁多,全世界也只有山西的面可当作桌上席。

吃面人都怕少吃一口,挂在脸上的嘴最自私。山西人离乡,稍动一下心事,肠胃里的故乡就来了,想吃面想得紧,哪怕用掉浑身的力气也要去找一碗面吃,比追一个大姑娘还下作。老舍的茶馆里有个老太监,说过一句话,借来当作我的话:“瞧瞧这个丑样儿。”

面是由花朵历经季候修成的正果。春季烧卤面,夏季凉拌面,秋季肉炒面,冬季热烫面的四季吃法,吃得北方汉子人高马大,走南闯北,一碗面落肚,肠子就活了。

在Windows上安装ruby的注意事项

 安装Ruby
1. 下载RubyInstaller(Devkit版)
从官网https://rubyinstaller.org/downloads/下载所需版本的Ruby+Devkit.
https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.7-1/rubyinstaller-devkit-3.4.7-1-x64.exe
一定要下Devkit版本,我开始下的没有Devkit的版本一直不行)


2. 安装Ruby
选择 I accept the License

按照默认的路经安装(我查到有帖子说改变路经可能导致不明bug,建议按默认

下面的三个选项全部选上:



选择安装相应的development toolchain

3. 检测是否成功

输入ruby -v 检查Ruby是否安装成功


1. 安装MSYS2 and MINGW development toolchain(gem)

在正确安装完Ruby之后会弹出一个选项,询问是否继续安装,选择继续就会弹出这样一个界面:



如果没有选择继续安装也没有关系,在cmd命令行输入ridk install也可以打开这个界面.

在这里输入1,3进行安装.

2. 检查gem是否安装成功
输入gem -v 检测gem是否安装成功,应该会显示gem的版本号


3.安装Rails并检查
输入gem install rails安装.
装好后输入rails -v检查是否安装成功




Friday, 14 November 2025

004号航母五大黑科技

-不得不承认中国是越来越牛了

明天会更好

 

《明天会更好》是由罗大佑发起并主导创作,60位华语歌手共同参与演唱的公益歌曲,由罗大佑、张大春、李寿全、邱复生、徐乃胜、张艾嘉、詹宏志共同作词,罗大佑作曲,陈志远编曲。该曲收录于滚石国际音乐股份有限公司推出的同名音乐合辑《明天会更好》,于1985年10月25日以公益歌曲的形式随专辑发行 [1] [34]。 《明天会更好》是中国台湾乐坛为迎接1986年“国际和平年”而创作的公益歌曲,效仿先前美国音乐界为拯救非洲饥民而推出的公益歌曲《天下一家》的制作模式,采用群星合唱并召集了60名海内外华人歌手参与录制。这首歌曲集合了中国台湾乐坛众多知名度较高的歌手共同合唱,这在当时属于一次空前的创举,再加上朗朗上口的旋律,使这首歌曲发行后颇受欢迎,成为华语乐坛公益歌曲的典范 [2]。该曲就像一剂“强心药”,撞击着人们日渐麻木的情感,提醒着大众这个世界存在的温情 [3]。

 明天會更好

 作詞:羅大佑/張大春/許乃勝/李壽全/邱復生/張艾嘉/詹宏志 

 作曲:羅大佑

 編曲:陳志遠 

(蔡 琴)輕輕敲醒沉睡的心靈 慢慢張開你的眼睛 

(余 天)看那忙碌的世界是否依然孤獨地轉個不停 

(蘇 芮)春風不解風情 吹動少年的心 

(潘越雲)讓昨日臉上的淚痕 隨記憶風乾了 

(甄 妮)抬頭尋找天空的翅膀 候鳥出現牠的影跡 

(李建復)帶來遠處的飢荒無情的戰火依然存在的消息 

(林慧萍)玉山白雪飄零 燃燒少年的心 

(王芷蕾)使真情溶化成音符 傾訴遙遠的祝福 

(黃鶯鶯)唱出你的熱情 伸出你雙手 讓我擁抱著你的夢 讓我擁有你真心的面孔

 (洪榮宏)讓我們的笑容 充滿著青春的驕傲 為明天獻出虔誠的祈禱

 (陳淑樺)誰能不顧自己的家園 拋開記憶中的童年 

(金智娟)誰能忍心看那昨日的憂愁 帶走我們的笑容 

(王夢麟)青春不解紅塵 胭脂沾染了灰

 (李佩菁)讓久違不見的淚水 滋潤了你的面容  

(費玉清)唱出你的熱情 伸出你雙手  讓我擁抱著你的夢 讓我擁有你真心的面孔      讓我們的笑容 充滿著青春的驕傲  為明天獻出虔誠的祈禱

(齊 豫)輕輕敲醒沉睡的心靈 慢慢張開你的眼睛 

(鄭 怡)看那忙碌的世界是否依然孤獨地轉個不停

 (江 蕙)日出喚醒清晨 大地光彩重生

 (楊 林)讓和風拂出的音響 譜成生命的樂章 

(合 唱)唱出你的熱情 伸出你雙手  讓我擁抱著你的夢 讓我擁有你真心的面孔 讓我們的笑容 充滿著青春的驕傲 讓我們期待明天會更好

 (蘇 芮)唱出你的熱情 伸出你雙手  讓我擁抱著你的夢 讓我擁有你真心的面孔      讓我們的笑容 充滿著青春的驕傲 讓我們期待明天會更好(齊秦和聲) 

(余 天)唱出你的熱情 伸出你雙手  讓我擁抱著你的夢 讓我擁有你真心的面孔      讓我們的笑容 充滿著青春的驕傲 讓我們期待明天會更好(蘇芮和聲) 

(合 唱)唱出你的熱情 伸出你雙手 讓我擁抱著你的夢 讓我擁有你真心的面孔 讓我們的笑容 充滿著青春的驕傲 讓我們期待明天會更好

--------------------------------------------

此歌跟大陆的‘让世界充满爱’有得一比,堪称姊妹篇。 

Wednesday, 12 November 2025

搭建基于js的静态博客程序:cms.js-starter

 首先fork此项目https://github.com/chrisdiana/cms.js-starter ,我fork后的项目地址是

 https://github.com/luckypoem/cms.js-starter

然后编辑 https://github.com/luckypoem/cms.js-starter/blob/develop/js/config.js文件,

 mode的值设为GITHUB。username的值改为我的github用户名luckypoem , repo的值设为我的github仓库名cms.js-starter ,branch的值设为gh-pages 。

为你的仓库创建 gh-pages分支。然后,稍等2分钟,即可访问

https://luckypoem.github.io/cms.js-starter/。

创建新帖:

访问 https://github.com/luckypoem/cms.js-starter/tree/develop/posts,点击右上角的add file->create new file, 在Name your file框里,填写2025-11-12-1116-hxs.md,然后在下面的框中输入:

---
layout: post
title: 你的文章的标题
excerpt: 这是一篇文章。
tags: sampletag
author: ym
---

此处写正文或html codes. 然后点击右上角的Commit changes按钮。 

项目地址:https://github.com/chrisdiana/cms.js-starter

https://github.com/luckypoem/cms.js-starter

演示网站: https://luckypoem.github.io/cms.js-starter

注意: 在Name your file框里,填写md文件名时,一定要按这样的格式2025-11-12-1116-hxs.md填写md文件名。只有这样填写,发表后,帖子才会按发表的时间顺序排列

 这个静态博客程序不错,比那些基于github issues的静态博客程序好用,可以发表180 kb 的长篇文章和嵌入视频。

搭建简单,强烈推荐。 

Tuesday, 11 November 2025

trend radar

 

告别信息过载,AI 助你看懂新闻资讯热点,简单的舆情监控分析 - 多平台热点聚合+基于 MCP 的AI分析工具。监控35个平台(抖音、知乎、B站、华尔街见闻、财联社等),智能筛选+自动推送+AI对话分析(用自然语言深度挖掘新闻:趋势追踪、情感分析、相似检索等13种工具)。支持企业微信/飞书/钉钉/Telegram/邮件/ntfy推送,30秒网页部署,1分钟手机通知,无需编程。支持Docker部署⭐ 让算法为你服务,用AI理解热点

github.com/sansan0

TrendRadar Banner

🚀 最快30秒部署的热点助手 —— 告别无效刷屏,只看真正关心的新闻资讯

sansan0%2FTrendRadar | Trendshift

GitHub Stars GitHub Forks License Version MCP

企业微信通知 Telegram通知 dingtalk通知 飞书通知 邮件通知 ntfy通知

GitHub Actions GitHub Pages Docker MCP Support

本项目以轻量,易部署为目标

📑 快速导航

  • from  https://github.com/sansan0/TrendRadar

基于 nodejs的静态网站生成器refo

 示例:https://kireerik.github.io/refo/

Refo maintainability details Refo package downloads join the Refo community

Refo - A website template for the modern web | Product Hunt

Effortless Static Site Generation with Flexibility

Feeling overwhelmed by the static site generator landscape? Refo offers a refreshingly simple and customizable approach built entirely on Node.js.

Unlike Jekyll, Gatsby, Astro and others, we let you leverage the power of Node.js modules directly. This means you can generate any kind of website you can imagine, all with the flexibility of your favorite Node.js libraries and servers.

Key benefits:

  • Effortless Development: Edit your modules and see instant updates thanks to hot reloading.
  • Unmatched Flexibility: Import SVGs, utilize raw imports, and style your components with ease.
  • Data-Driven Content: Craft resumes, portfolios, or any data-driven website with ease.
  • Highly Customizable: No rigid folder structures, minify class names, or even swap out SolidJS for React – it's entirely up to you.

Go beyond the limitations of traditional static site generators. Embrace the power and flexibility of Refo for your next project!

⭐️ Star to support our work!
Get notified about new releases via GitPunch emails.

Features

Highlights

  • Edit your resume data in a JSON file.
  • View and publish your resume as a PDF, an HTML document and or as a page on a website.
    • Design and customize resume layout with HTML and CSS.
  • Generate 1 or more PDFs supporting different formats like Letter and A4.
    • Refresh the PDF after saving changes to see the up to date PDF.

Getting Started

  • Initial steps
    • Install Node.js, pnpm and Google Chrome.
    • Download or clone this repository.
    • Open a command prompt in this folder.

Install dependencies:

pnpm install

Are you on some kind of Unix based system? Mac? Linux? If so you might want to change the port in the index module, which is set to 80 which works on Windows. Superstatic's default is 3474 so you can remove it if you prefer.

Start the server in development mode:

pnpm dev

Visit http://localhost/ to access the website.

Static site generation

Generate a static site:

pnpm static

Open the index.html within the static folder to access the website.

Main concept

import
generated file
index/
static/
   • favicon.ico (icon file (Node.js module))
   • favicon.ico
   • main.js.js (Node.js module)    • main.js
   • index.html.jsx (Node.js module)
   • index.html
firebase.json.js (Node.js module)
firebase.json

The imported files (which have a certain file extension (ico, png)) (Node.js) modules) copy the files themselves into the static folder when the modules are loaded. In module relading mode they remove them if they are not imported anymore.

The default export of (Node.js) modules (which have a certain file extension (js, json, html) in their base file name) are written as the contents of the output files (into the static folder). The full file names of the output files are the base file names of the (Node.js) modules.

⭐️ Star to support our work!

Simple page example source code

index.html.jsx (imported module):

import template from '#@SolidJS/template'

import use from '#@style'

const [{styled}, extract] = use()

const Body = styled.body`
	font-weight: bold;
`

export default <>
	{template(`<!DOCTYPE HTML>`)}
	<html lang="en">
		{template(`<head>`)}
			<style>{extract()}</style>
		{template(`</head>`)}
		<Body>
			example content
		</Body>
	</html>
</>

index.html (generated file):

<!DOCTYPE HTML><html lang=en><head><style>.a{font-weight:700}</style></head><body class=a>example content</body></html>

Deployment

You can deploy the static docs folder as it is.

You might want to change the prefixum in the following files according to the name of your project site repository: index/index/site/ main/

You can completely remove the prefixum in case you are publishing a user or an organization site.

 

About

This example uses Refo's JSON handler. So you can control how and whether certain properties are displayed from the index/index/site/index/resume/data.js file as described in Refo's readme at the JSON handler Usage section.

Server

This project uses superstatic to serve the generated static files. You can use any similar library to serve the files or no library at all in case you would like to browse the files directly. This can be useful for offline documentations for example.

You can remove superstatic and use firebase-tools instead (which uses superstatic) if you prefer. In this case, you can modify the scripts in the package.json file and replace superstatic with firebase serve commands.

This project uses concurrently to run Refo in watch mode and serve the files with superstatic. You can use any similar library like npm-run-all to run Refo and a server in parallel or no library at all if you don't need a file server.

The firebase.json file could be named as superstatic.json if you prefer. This template does not depend on Firebase itself. However, they provide one of if not the consistently fastest static hosting solution.

Templating

Templating

Templating

Templating

Templating

Templating

Templating

Templating

Templating

Templating

Syntax highlighting

Some code editors like Atom and GitHub, for example, highlights html tagged template literals as HTML as you can see this above as well.

Sublime Text

Now you can use the JS Custom - Default syntax highlight option for JavaScript files.

Usage

JSON handler

The JSON handler is a standalone package. It is mainly useful to handle resume related data, but you can use it for anything else too.

You can use it as you can see in the example (asset/resume/getHandledJson.js) as well:

const handleJSON = require('refo-handle-json')

var json = JSON.parse(JSON.stringify(require('./data')))

json = handleJSON(json)

It is recommended to create a copy of the required JSON using the JSON.parse(JSON.stringify(json)) functions for example when you are using Refo in watch mode (related comment), because the JSON hander is changing object properties.

The JSON handler is parsing string object values as Markdown using markdown-it. Example: example/asset/resume/data.json#L7

Properties which are ending with -private are removed. Example: example/asset/resume/data.json#L4
Objects which have a property named private are removed too.

Properties which are ending with -full are only included when a second true value parameter is passed to the handler function. Example: example/asset/resume/data.json#L8, example/asset/resume/getHandledJson.js#L9
Objects which have a property named full are only included when a second true value parameter is passed to the handler function.

Period

When an object contains a startDate property without an endDate property then a hidePresent property can be used to hide a present label and show the current year instead.
A hideEndDate property can be used to hide the current year shown instead of a present label.

A hideDuration property can be used to hide the calculated duration. Otherwise, a duration property is defined with the calculated duration (examples: 7 months, 1 year, 1.5 years, 2 years).

Contribution

It can be useful to create in-depth documentation about each Refo package.

Open a new issue if you think so and let's discuss this. We can definitely implement this if it turns out to be useful.

Who is using Refo

  • Oengi.com – Erik Engi's website and resume.

Propose file change to add your project here.

Inspiration

Author

About the name

Resume + portfolio = Refo

from  https://github.com/kireerik/refo