Détail du package

iztro

SylarLong1.1kMIT2.5.3

轻量级紫微斗数星盘生成库。可以通过出生年月日获取到紫微斗数星盘信息、生肖、星座等信息。This is a lightweight kit for generating astrolabes for Zi Wei Dou Shu (The Purple Star Astrology), an ancient Chinese astrology. It allows you to obtain your horoscope and personality analysis.

紫微斗數, 紫微斗数, ziweidoushu, astrology

readme

banner2 # 一套轻量级紫微斗数排盘工具库 简体中文 🔸 繁體中文 🔸 English
NPM Version NPM Minified Size NPM Downloads jsDelivr Hits GitHub Code Size in Bytes Codecov Coverage Codecov Status Maintainability Package Quality License FOSSA Status

介绍

用于紫微斗数排盘的 JavaScript 开源库,有以下功能:

  • 输入

    • 生日(阳历或农历皆可)
    • 出生时间
    • 性别
  • 可以实现下列功能

    • 紫微斗数 12 宫的星盘数据
    • 获取生肖
    • 获取星座
    • 获取四柱(干支纪年法的生辰)
    • 获取运限(大限、小限、流年、流月、流日、流时)的数据
    • 获取流耀(大限和流年的动态星耀)
    • 判断指定宫位是否存在某些星耀
    • 判断指定宫位三方四正是否存在某些星耀
    • 判断指定宫位三方四正是否存在四化
    • 判断指定星耀是否存在四化
    • 判断指定星耀三方四正是否存在四化
    • 判断指定星耀是否是某个亮度
    • 根据天干获取四化
    • 获取指定星耀所在宫位
    • 获取指定宫位三方四正宫位
    • 获取指定星耀三方四正宫位
    • 获取指定星耀对宫
    • 获取指定运限宫位
    • 获取指定运限宫位的三方四正
    • 判断指定运限宫位内是否存在某些星耀
    • 判断指定运限宫位内是否存在四化
    • 判断指定运限三方四正内是否存在某些星耀
    • 判断指定运限三方四正内是否存在四化
    • 判断指定宫位是否是空宫
    • 判断宫位是否产生飞星到目标宫位
    • 获取宫位产生的四化宫位
  • 其他

    • 多语言输入/输出

      输入的时候支持多个国家和地区语言混合输入,可以输出指定语言。目前支持 简体中文,繁体中文,英文,日文,韩文,越南语。英文的翻译目前还没有标准,所以我大多是意译的,但也正因为如此,可能英文版本的会更加易懂。如果有精通星象翻译的欢迎提 PR 。任何语言都可以。

    • 链式调用

      假如你想判断 紫微星三方四正 有没有 化忌,你可以这样做

      import { astro } from 'iztro';
      
      const astrolabe = astro.bySolar('2000-8-16', 2, '男', true, 'zh-CN');
      
      astrolabe.star('紫微').surroundedPalaces().haveMutagen('忌');
    • 配置和插件

      紫微斗数流派众多,不同的流派的四化以及星耀亮度都会有些许差异,为了满足不同流派的需求和功能的扩展,iztrov2.3.0 版本加入了全局配置和第三方插件功能。详见 配置文档

[!IMPORTANT] 如果你在开发中遇到任何问题,可以添加作者微信咨询。
你也可以任意魔改代码,或联系作者获取技术支持。
WeChat

快捷跳转

直接使用

如果你想要零开发直接查看 iztro 的排盘结果,请直接使用 紫微派(ziwei.pub) 在线排盘。

安装依赖

你可以使用任何你熟悉的包管理库来安装 iztro

# npm
npm install iztro -S

# yarn
yarn add iztro

# pnpm
pnpm install iztro -S

独立 JavaScript 库

假如你使用的是静态 HTML 文件,可以下载 release 资源文件中的 iztro-min-js.tar.gz 压缩包,里面包含了一个 iztro 压缩混淆过的 js 文件和对应的 sourcemap 文件。

v2.0.4+ 版本才提供独立js库。

iztro.min.jsscript 标签引入 HTML 文件使用。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>iztro-紫微斗数开源库</title>
  </head>
  <body>
    <script src="./iztro.min.js"></script>
    <script>
      // 获取一张星盘数据
      var astrolabe = iztro.astro.bySolar('2000-8-16', 2, '男', true, 'zh-CN');
    </script>
  </body>
</html>

当然,我们更推荐你直接使用 CDN 加速链接,你可以在下面列表中选择一个,在没有指定版本号的时候,会自动指向最新发布的版本。

你也可以使用如下规则来指定版本:

  • iztro@2
  • iztro@^2.0.5
  • iztro@2.0.5

因为纯 JS 库没有代码提示和注释,所以在集成的时候请参阅 iztro 开发文档

简单示例

这里是一个简单的例子显示如何调用 iztro 获取到紫微斗数星盘数据,详细文档请移步 开发文档

  • ES6 Module

    import { astro } from 'iztro';
    
    // 通过阳历获取星盘信息
    const astrolabe = astro.bySolar('2000-8-16', 2, '女', true, 'zh-CN');
    
    // 通过农历获取星盘信息
    const astrolabe = astro.byLunar('2000-7-17', 2, '女', false, true, 'zh-CN');
  • CommonJS

    var iztro = require('iztro');
    
    // 通过阳历获取星盘信息
    var astrolabe = iztro.astro.bySolar('2000-8-16', 2, '女', true, 'zh-CN');
    
    // 通过农历获取星盘信息
    var astrolabe = iztro.astro.byLunar('2000-7-17', 2, '女', false, true, 'zh-CN');

贡献

如果你对 iztro 有兴趣,也想加入贡献队伍,我们非常欢迎,你可以用以下方式进行:

  • 如果你对程序功能有什么建议,请到 这里 创建一个 功能需求
  • 如果你发现程序有 BUG,请到 这里 创建一个 BUG 报告
  • 你也可以将本仓库 fork 到你自己的仓库进行编辑,然后提交 PR 到本仓库。
  • 假如你擅长外语,我们也欢迎你对国际化文件的翻译做出你的贡献,你可以 fork 本仓库,然后在 locales 文件夹下创建一个国际化语言文件,然后复制其他语言文件目录里面的文件到你的目录下进行更改。
  • 当然,如果你觉得本程序对你有用,请给我买杯咖啡☕️ Static Badge

[!NOTE] 在开始之前,请阅读 贡献指南

总结

使用本程序返回的数据,你可以生成这样一张星盘,当然这只是一个例子,你可以把注意力集中在星盘的设计上,也可以把重心放在数据的分析上,本程序为你解决了最繁冗的工作,让你可以把精力更多的放在你所需要关注的事情上面。

image

Star 历史

[!IMPORTANT] 如果你觉得代码对你有用,请点 ⭐ 支持,你的 ⭐ 是我持续更新的动力~

Star History Chart

版权

MIT License

Copyright © 2023 All Contributors

FOSSA Status

[!NOTE] 请合理使用本开源代码,禁止用于非法目的。

changelog

紫微斗数

文档地址|Docuemnt

  • ✨ 改进(enhancement)
  • 🪄 功能(feature)
  • 🛠️ 修复(fix)
  • 🧹 琐事(Chore)

v2.5.3

  • 🛠️ 修复(fix)

    • 天地人盘中基本信息里显示的命宫宫位异常。

v2.5.2

  • 🛠️ 修复(fix)

    • 流日/流月宫位在运限月份是闰月情况下不正确。#244
    • 排盘算法不应该以节气干支来排。#246
  • 🪄 功能(feature)

    • 新增晚子时配置。

v2.5.1

  • 🛠️ 修复(fix)

    • 流日/流月宫位在生月月份是闰月情况下不正确。#242

v2.5.0

  • 🪄 功能(feature)

    • 支持中州派排盘。#228
  • 🛠️ 修复(fix)

    • [v2.4.9]: 流月宫位计算错误 #229

v2.4.9

  • ✨ 改进(enhancement)

    • 新增杂耀龙德星(中州派)。
  • 🛠️ 修复(fix)

    • 修复旬空位置错误。

v2.4.8

  • 🛠️ 修复(fix)

    • 修复三台、八座位置错误。#227

v2.4.7

  • 🛠️ 修复(fix)

    • 修复插件开发时编译器报错问题。

v2.4.6

  • 🛠️ 修复(fix)

    • 补充缺失流耀的翻译

v2.4.5

  • ✨ 改进(enhancement)

    • 新增虚岁分割点配置 #225

v2.4.4

  • 🪄 功能(feature)

    • 增加流月、流日、流时的流耀 #210

v2.4.3

  • 🛠️ 修复(fix)

    • 新增运限分界点参数以满足不同需求 #190

v2.4.2

  • 🛠️ 修复(fix)

    • 更新起大限的规则,使它与全局配置同步

v2.4.1

  • ✨ 改进(enhancement)

    • 增加 withOptions 方法

v2.4.0

  • ✨ 改进(enhancement)

    • 增加年分界点全局配置 #182

v2.3.2

  • ✨ 改进(enhancement)

    • 改进部分英文翻译

v2.3.1

  • 🛠️ 修复(fix)

    • 修复小限年龄判断条件错误

v2.3.0

  • 🪄 功能(feature)

    • 支持全局插件 #165
    • 支持全局配置 #165

v2.2.3

  • 🛠️ 修复(fix)

    • 修复星耀亮度错误 #166

v2.2.2

  • 🛠️ 修复(fix)

    • 来因宫错误 #161
  • ✨ 改进(enhancement)

    • 更新lunar-lite依赖,以支持更宽的日期参数

v2.2.1

  • 🛠️ 修复(fix)

    • 小限数据错误 #160

v2.2.0

  • 🪄 功能(feature)

    • 新增童限指示 #154
    • 新增小限12宫 #157

v2.1.0

  • 🪄 功能(feature)

    • 宫位飞星判断 #143

v2.0.8

  • 🛠️ 修复(fix)

    • 地支繁体错误

v2.0.7

  • 🛠️ 修复(fix)

    • 小限顺序错误 #95

v2.0.6

  • 🪄 功能(feature)

    • 新增空宫判断 #92

v2.0.5

  • ✨ 改进(enhancement)

    • 废弃 astrolabeByLunarDateastrolabeBySolarDate 方法
    • 增加umd编译以便支持纯js库CDN调用 #87

v2.0.4

  • 🛠️ 修复(fix)

    • 修复虚岁为0的问题
  • 🪄 功能(feature)

    • 增加独立的js库 #84

v2.0.3

  • ✨ 改进(enhancement)

    • 星盘数据中加入性别

v2.0.2

  • 🛠️ 修复(fix)

    • 农历月底晚子时不对 #82

v2.0.0

  • 🪄 功能(feature)

    • 分离日期转换组件 #80

v1.3.5

  • 🛠️ 修复(fix)

    • 农历阳历转化错误 #76

v1.3.4

  • 🪄 功能(feature)

    • 判断运限四化 #74
  • ✨ 改进(enhancement)

    • 重构代码 #72
  • 🛠️ 修复(fix)

    • 文曲星亮度丢失

v1.3.3

  • 🪄 功能(feature)

    • 判断指定运限宫位内是否包含指定流耀中其中一个 #70

v1.3.2

  • 🪄 功能(feature)

    • 判断指定运限宫位内是否不包含指定流耀 #67

v1.3.1

  • 🛠️ 修复(fix)

    • 天干地支在翻译时会出现译文一样而导致结果错误 #64

v1.3.0

  • 🪄 功能(feature)

    • 创建FunctionalHoroscope类 #31

v1.2.7-alpha

  • ✨ 改进(enhancement)

    • 使用dayjs提高产品兼容性 #59

v1.2.6

  • 🪄 功能(features)

    • 在流年运限里返回流年神煞 #56
  • 🛠️ 修复(fix)

    • 流月索引错误 #54

v1.2.5

  • 🛠️ 修复(fix)

    • 修复丢失的星耀翻译(ja_JP -> 月德)

v1.2.4

  • 🪄 功能(feature)

    • 新增越南语支持
  • 🛠️ 修复(fix)

    • 修复代码风格检查发现的额问题 #42 #43

v1.2.3

  • 🛠️ 修复(fix)

    • 修复运限索引计算错误 #36

v1.2.2

  • ✨ 改进(enhancement)

    • 给 Horoscope 添加 name 字段
    • 给 name 字段添加国际化翻译

v1.2.1

  • 🪄 功能(feature)

    • 新增静态方法 #28

      • 通过阳历获取生肖
      • 通过农历获取生肖
      • 通过阳历获取星座
      • 通过农历获取星座
      • 通过阳历获取主星
      • 通过农历获取主星
  • 🛠️ 修复(fix)

    • 在特定情况下语言无法设置成功的问题

v1.2.0

  • ✨ 改进(enhancement)

    • 新增 FunctionalSurpalaces
    • 新增 FunctionalStar
    • 废弃 FunctionalAstrolabe 类的下列方法

      • isSurrounded()
      • isSurroundedOneOf()
      • notSurrounded()
  • 🪄 功能(feature)

    • 实现 #24

v1.1.1

  • 🛠️ 修复(fix)

    • 更改错别字

v1.1.0

  • 🪄 功能(feature)

    • 实现三方四正宫位功能 #21
  • ✨ 改进(enhancement)

    • 支持性别国际化
    • timely修改为hourly
    • 优化types结构,将types.ts拆分进types文件夹内,方便维护

v1.0.0

  • 🪄 功能(feature)

    • 新增宫位以及星耀分析方法
  • 🛠️ 修复(fix)

    • 已知Bug

v0.3.2

  • ✨ 改进(enhancement)

    • 优化代码,将变量名改为英文,提高兼容性
  • 🛠️ 修复(fix)

    • 翻译错误

v0.3.1

  • ✨ 改进(enhancement)

    • 完善流耀的翻译
  • 🧹 琐事(Chore)

    • 使用eslint替换tslint

v0.3.0

  • 🪄 功能(feature)

    • 集成i18n,支持国际化 #2

v0.2.1

  • 🪄 功能(feature)

    • 实现流时 #3
  • ✨ 改进(enhancement)

    • 优化代码结构
    • 完善注释
    • 增加Release后自动发布到npm的工作流

v0.2.0

  • 🛠️ 修复(fix)

    • 修复错别字:astrolable --> astrolabe
  • 🪄 功能(feature)

    • 实现 #1

v0.1.4

  • 🧹 琐事(Chore)

    • 调整package.json里的关键词
    • 修改大限变量名

v0.1.3

  • 🛠️ 修复(fix)

    • 年解星放置到流耀里面去
    • 修复错误拼写
  • ✨ 改进(enhancement)

    • 完善ReadMe

v0.1.2

  • ✨ 改进(enhancement)

    • 优化注释
    • 优化“性别”类型

v0.1.1

  • ✨ 改进(enhancement)

    • 增加CHANGELOG

v0.1.0

  • 🪄 功能(feature)

    • 核心功能的实现

v0.0.2

  • 🪄 功能(feature)

    • 实现工具方法
  • ✨ 改进(enhancement)

    • 优化代码结构
    • 完善注释

v0.0.1

  • 🪄 功能(feature)

    • 项目初始化
    • 准备依赖数据