效果
简介
由于工作生活节奏不同,如今很多关系稍疏远的亲戚之间来往并不多。因此放假回家过年时,往往会搞不清楚哪位亲戚应该喊什么称呼,很是尴尬。然而搞不清亲戚关系和亲戚称谓的不仅是小孩,就连年轻一代的大人也都常常模糊混乱。
“中国家庭称谓计算器”为你避免了这种尴尬,只需简单的输入即可算出称谓。输入框兼容了不同的叫法,你可以称呼父亲为:“老爸”、“爹地”、“老爷子”等等,方便不同地域的习惯叫法。快捷输入按键,只需简单的点击即可完成关系输入,算法还支持逆向查找称呼哦~!
一、下载 & 安装
脚本库可以用于浏览器,也可以用于 Nodejs 环境中。
-
在网页中引入
<script src="https://passer-by.com/relationship/dist/relationship.min.js">
获取全局方法
relationship
-
使用 npm 安装名为
relationship.js
的包npm install relationship.js
在脚本中引入模块
// CommonJS 引入 const relationship = require("relationship.js");
// ES Module 引入 import relationship from 'relationship.js';
二、使用
-
通用方法: 唯一的计算方法
relationship
.- 选项模式
relationship(options)
参数
options
结构为:var options = { text:'', // 目标对象:目标对象的称谓汉字表达,称谓间用‘的’字分隔 target:'', // 相对对象:相对对象的称谓汉字表达,称谓间用‘的’字分隔,空表示自己 sex:-1, // 本人性别:0表示女性,1表示男性 type:'default', // 转换类型:'default'计算称谓,'chain'计算关系链,'pair'计算关系合称 reverse:false, // 称呼方式:true对方称呼我,false我称呼对方 mode:'default', // 模式选择:使用setMode方法定制不同地区模式,在此选择自定义模式 optimal:false, // 最短关系:计算两者之间的最短关系 };
代码示例:
// 如:我应该叫外婆的哥哥什么? relationship({text:'妈妈的妈妈的哥哥'}); // => ['舅外公'] // 如:七舅姥爷应该叫我什么? relationship({text:'七舅姥爷',reverse:true,sex:1}); // => ['甥外孙'] // 如:舅公是什么亲戚 relationship({text:'舅公',type:'chain'}); // => ['爸爸的妈妈的兄弟', '妈妈的妈妈的兄弟', '老公的妈妈的兄弟'] // 如:舅妈如何称呼外婆? relationship({text:'外婆',target:'舅妈',sex:1}); // => ['婆婆'] // 如:外婆和奶奶之间是什么关系? relationship({text:'外婆',target:'奶奶',type:'pair'}); // => ['儿女亲家']
- 语句模式
relationship(exptession)
参数
exptession
句式可以为:xxx是xxx的什么人
、xxx叫xxx什么
、xxx如何称呼xxx
等.代码示例:
// 如:舅妈如何称呼外婆? relationship('舅妈如何称呼外婆?'); // => ['婆婆'] // 如:外婆和奶奶之间是什么关系? relationship('外婆和奶奶之间是什么关系?'); // => ['儿女亲家']
- 选项模式
-
内部属性:获取当前数据表
relationship.data
. -
内部属性:获取当前数据量
relationship.dataCount
. -
内部方法:用户自定义模式
relationship.setMode(mode_name,mode_data)
.代码示例(可参考数据表格式对数据进行覆盖):
// 关系解析语法 // 【关系链】f:父,m:母,h:夫,w:妻,s:子,d:女,xb:兄弟,ob:兄,lb:弟,xs:姐妹,os:姐,ls:妹 // 【修饰符】 1:男性,0:女性,&o:年长,&l:年幼,#:隔断,[a|b]:并列 relationship.setMode('northern',{ 'm,f':['姥爷'], 'm,m':['姥姥'], 'm,xb,s&o':['表哥'], 'm,xb,s&l':['表弟'], });
三.docker使用
下载解压
wget https://github.com/mumuy/relationship/archive/refs/tags/v1.2.0.zip
unzip v1.2.0.zip
进入目录
/opt/relationship-1.2.0
构建Dockerfile
FROM nginx:1.20-alpine
# 拷贝静态文件到 /usr/share/nginx/html 目录
COPY . /usr/share/nginx/html
# 支持 history 模式路由
RUN sed -i 's|\s\+root\s\+/usr/share/nginx/html| try_files $uri $uri/ /index.html;\n root /usr/share/nginx/html|' /etc/nginx/conf.d/default.conf
# 启动指令
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["nginx", "-g", "daemon off;"]
构建镜像
docker build -t relationship:latest -f ./Dockerfile ../relationship-1.2.0
启动
docker run --name relationship -d \
-p 10018:80 \
浏览器打开
http://192.168.168.111:10018/