guanwei 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/LICENSE +21 -0
  2. package/README.en.md +202 -0
  3. package/README.md +247 -0
  4. package/dist/assets/index-CsOD5rSo.js +102 -0
  5. package/dist/assets/index-CsOD5rSo.js.map +1 -0
  6. package/dist/assets/index-DQx62TUr.css +1 -0
  7. package/dist/favicon.svg +12 -0
  8. package/dist/index.html +15 -0
  9. package/eslint.config.js +28 -0
  10. package/index.html +25 -0
  11. package/package.json +96 -0
  12. package/postcss.config.js +10 -0
  13. package/public/favicon.svg +12 -0
  14. package/scripts/guanwei +245 -0
  15. package/scripts/install.sh +79 -0
  16. package/scripts/release.sh +42 -0
  17. package/scripts/setup.bat +36 -0
  18. package/scripts/setup.sh +123 -0
  19. package/server/src/data/db.json +12059 -0
  20. package/server/src/data/guanwei.db +0 -0
  21. package/server/src/data/lifeContext.ts +423 -0
  22. package/server/src/data/spreads.ts +255 -0
  23. package/server/src/data/tarotCards.ts +2353 -0
  24. package/server/src/index.ts +71 -0
  25. package/server/src/routes/ai.ts +376 -0
  26. package/server/src/routes/divine.ts +140 -0
  27. package/server/src/routes/hour.ts +40 -0
  28. package/server/src/routes/tarot.ts +129 -0
  29. package/server/src/routes/users.ts +140 -0
  30. package/server/src/services/chartBrief.ts +131 -0
  31. package/server/src/services/divineStore.ts +188 -0
  32. package/server/src/services/hourInference.ts +150 -0
  33. package/server/src/services/llmProvider.ts +181 -0
  34. package/server/src/services/promptBuilder.ts +327 -0
  35. package/server/src/services/relativesCheck.ts +139 -0
  36. package/server/src/services/sixRelatives.ts +70 -0
  37. package/server/src/services/skills.ts +116 -0
  38. package/server/src/types/index.ts +104 -0
  39. package/server/src/utils/semanticAnalyzer.ts +555 -0
  40. package/server/src/utils/tarotEngine.ts +849 -0
  41. package/server/tsconfig.json +18 -0
  42. package/shared/core/data/classics.ts +276 -0
  43. package/shared/core/data/courses.ts +211 -0
  44. package/shared/core/data/duanyu.ts +148 -0
  45. package/shared/core/data/ganzhi.ts +53 -0
  46. package/shared/core/data/gua64.ts +93 -0
  47. package/shared/core/data/liuren.ts +18 -0
  48. package/shared/core/data/liuyao.ts +73 -0
  49. package/shared/core/data/qimen.ts +27 -0
  50. package/shared/core/data/region-full.ts +3 -0
  51. package/shared/core/data/region.ts +310 -0
  52. package/shared/core/data/tarotSpreads.ts +78 -0
  53. package/shared/core/data/xiaoliuren.ts +18 -0
  54. package/shared/core/data/ziwei.ts +97 -0
  55. package/shared/core/data/zodiac.ts +20 -0
  56. package/shared/core/engine/astrology.ts +169 -0
  57. package/shared/core/engine/bazi.ts +306 -0
  58. package/shared/core/engine/calendar.ts +127 -0
  59. package/shared/core/engine/daily.ts +133 -0
  60. package/shared/core/engine/liuren.ts +86 -0
  61. package/shared/core/engine/liuyao.ts +93 -0
  62. package/shared/core/engine/meihua.ts +87 -0
  63. package/shared/core/engine/qimen.ts +78 -0
  64. package/shared/core/engine/questionFit.ts +94 -0
  65. package/shared/core/engine/tarot.ts +69 -0
  66. package/shared/core/engine/trueSolarTime.ts +86 -0
  67. package/shared/core/engine/xiaoliuren.ts +19 -0
  68. package/shared/core/engine/ziwei.ts +217 -0
  69. package/shared/core/engine/ziweiInterpret.ts +161 -0
  70. package/shared/core/types.ts +206 -0
  71. package/src/App.tsx +69 -0
  72. package/src/arts/registry.ts +31 -0
  73. package/src/assets/react.svg +1 -0
  74. package/src/components/Backdrop.tsx +27 -0
  75. package/src/components/BambooArt.tsx +41 -0
  76. package/src/components/CalendarInput.tsx +131 -0
  77. package/src/components/DateInput.tsx +103 -0
  78. package/src/components/Disclaimer.tsx +12 -0
  79. package/src/components/Empty.tsx +8 -0
  80. package/src/components/ErrorBoundary.tsx +38 -0
  81. package/src/components/HomeSideAnchor.tsx +62 -0
  82. package/src/components/InkVein.tsx +10 -0
  83. package/src/components/LifeEventsInput.tsx +47 -0
  84. package/src/components/LocationPicker.tsx +117 -0
  85. package/src/components/Motes.tsx +65 -0
  86. package/src/components/Navigation.tsx +80 -0
  87. package/src/components/ProfileForm.tsx +40 -0
  88. package/src/components/ProfilePicker.tsx +40 -0
  89. package/src/components/QuestionFields.tsx +47 -0
  90. package/src/components/ReportView.tsx +211 -0
  91. package/src/components/ResultCard.tsx +40 -0
  92. package/src/components/SealButton.tsx +18 -0
  93. package/src/components/SiteFooter.tsx +17 -0
  94. package/src/components/SiteNav.tsx +103 -0
  95. package/src/components/SongDialog.tsx +64 -0
  96. package/src/components/SongSearchSelect.tsx +81 -0
  97. package/src/components/SongSelect.tsx +61 -0
  98. package/src/components/StarField.tsx +119 -0
  99. package/src/components/TarotCard.tsx +129 -0
  100. package/src/components/TimeShichenInput.tsx +29 -0
  101. package/src/components/arts/AstrologyArt.tsx +141 -0
  102. package/src/components/arts/BaziArt.tsx +269 -0
  103. package/src/components/arts/LiurenArt.tsx +87 -0
  104. package/src/components/arts/LiuyaoArt.tsx +111 -0
  105. package/src/components/arts/MeihuaArt.tsx +105 -0
  106. package/src/components/arts/QimenArt.tsx +86 -0
  107. package/src/components/arts/TarotArt.tsx +110 -0
  108. package/src/components/arts/XiaoliurenArt.tsx +93 -0
  109. package/src/components/arts/ZiweiArt.tsx +296 -0
  110. package/src/data/arts.ts +84 -0
  111. package/src/data/lifeContext.ts +423 -0
  112. package/src/data/sample-report.json +146 -0
  113. package/src/data/shichen.ts +21 -0
  114. package/src/data/spreads.ts +255 -0
  115. package/src/data/tarotCards.ts +2353 -0
  116. package/src/hooks/useAIInterpret.ts +76 -0
  117. package/src/hooks/useDivine.ts +39 -0
  118. package/src/hooks/useTheme.ts +29 -0
  119. package/src/index.css +190 -0
  120. package/src/lib/utils.ts +6 -0
  121. package/src/main.tsx +12 -0
  122. package/src/pages/AboutPage.tsx +25 -0
  123. package/src/pages/AcademyPage.tsx +128 -0
  124. package/src/pages/AstrologyPage.tsx +33 -0
  125. package/src/pages/AuthPage.tsx +263 -0
  126. package/src/pages/BaZiPage.tsx +33 -0
  127. package/src/pages/ClassicsPage.tsx +120 -0
  128. package/src/pages/DemoPage.tsx +161 -0
  129. package/src/pages/HistoryPage.tsx +133 -0
  130. package/src/pages/Home.tsx +179 -0
  131. package/src/pages/HomePage.tsx +174 -0
  132. package/src/pages/ModulePage.tsx +320 -0
  133. package/src/pages/SpreadEditor.tsx +230 -0
  134. package/src/pages/SpreadEditorPage.tsx +105 -0
  135. package/src/pages/SpreadLibrary.tsx +199 -0
  136. package/src/pages/SpreadLibraryPage.tsx +17 -0
  137. package/src/pages/TarotPage.tsx +738 -0
  138. package/src/pages/ZiWeiPage.tsx +33 -0
  139. package/src/services/api.ts +342 -0
  140. package/src/stores/useDivinationStore.ts +22 -0
  141. package/src/styles/song.css +1066 -0
  142. package/src/styles/tokens.css +60 -0
  143. package/src/types/index.ts +104 -0
  144. package/src/utils/astrologyCalc.ts +61 -0
  145. package/src/utils/comboEngine.ts +134 -0
  146. package/src/utils/dst.ts +24 -0
  147. package/src/utils/panTone.ts +206 -0
  148. package/src/utils/recordStore.ts +60 -0
  149. package/src/utils/semanticAnalyzer.ts +555 -0
  150. package/src/utils/spreadStorage.ts +32 -0
  151. package/src/utils/storage.ts +27 -0
  152. package/src/utils/tarotEngine.ts +849 -0
  153. package/src/utils/userStore.ts +234 -0
  154. package/src/vite-env.d.ts +1 -0
  155. package/tailwind.config.js +52 -0
  156. package/tsconfig.json +40 -0
  157. package/vite.config.ts +34 -0
@@ -0,0 +1,18 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "ES2022",
5
+ "moduleResolution": "bundler",
6
+ "outDir": "./dist",
7
+ "rootDir": "..",
8
+ "strict": true,
9
+ "esModuleInterop": true,
10
+ "skipLibCheck": true,
11
+ "forceConsistentCasingInFileNames": true,
12
+ "resolveJsonModule": true,
13
+ "declaration": true,
14
+ "declarationMap": true,
15
+ "sourceMap": true
16
+ },
17
+ "include": ["src/**/*", "../shared/**/*"]
18
+ }
@@ -0,0 +1,276 @@
1
+ // 古籍典藏数据:12 部典籍元数据 + 原文选段(含注译与来源标注)
2
+ // 选段为公开领域原文整理,版本来源标注见 sourceNote
3
+
4
+ export interface ClassicExcerpt {
5
+ title: string;
6
+ source: string;
7
+ original: string;
8
+ translation?: string;
9
+ annotation?: string;
10
+ }
11
+
12
+ export interface ClassicBook {
13
+ id: string;
14
+ title: string;
15
+ author: string;
16
+ era: string;
17
+ arts: string[]; // 关联术数 id
18
+ summary: string;
19
+ background: string;
20
+ chapters: { title: string; summary: string }[];
21
+ excerpts: ClassicExcerpt[];
22
+ sourceNote: string;
23
+ }
24
+
25
+ export const CLASSICS: ClassicBook[] = [
26
+ {
27
+ id: 'yuanhai-ziping', title: '渊海子平', author: '题宋·徐大升编,托名徐子平', era: '宋代', arts: ['bazi'],
28
+ summary: '子平术的奠基之作,首次系统确立以日干为体、以月令为纲的论命体系,为四柱八字的正脉源头。',
29
+ background: '唐代李虚中以年月日三柱推命,至宋代徐子平加入时柱,四柱完备。本书由徐大升辑录整理,明清以后成为子平命理入门必读。',
30
+ chapters: [
31
+ { title: '论五行所生之始', summary: '五行源流与干支属性' },
32
+ { title: '论天干地支所出', summary: '干支纪时与阴阳配合' },
33
+ { title: '论日干为主', summary: '确立日干为命主之体' },
34
+ { title: '继善篇', summary: '命理总纲与格局要义' },
35
+ ],
36
+ excerpts: [
37
+ {
38
+ title: '继善篇(节选)', source: '《渊海子平·继善篇》',
39
+ original: '人禀天地,命属阴阳。生居覆载之内,尽在五行之中。欲知贵贱,先观月令乃提纲。',
40
+ translation: '人受天地之气而生,命运归属阴阳消长。人生于天地之间,都在五行运行之中。要知命之贵贱,先看月令——它是判断格局的总纲。',
41
+ annotation: '「月令乃提纲」:月支为命局旺衰之枢纽,子平术论命首重月令,此句为全书纲领。',
42
+ },
43
+ {
44
+ title: '论日干为主(节选)', source: '《渊海子平》',
45
+ original: '取日干为主,以年为根,以月为苗,以日为花,以时为果。',
46
+ translation: '以日干为命主自身,年柱如根、月柱如苗、日柱如花、时柱如果。',
47
+ annotation: '根苗花果之喻:年主祖上幼年,月主父母青年,日主自身中年,时主子女暮年。',
48
+ },
49
+ ],
50
+ sourceNote: '据通行《渊海子平》点校本整理(明刻本系统),原文选段属公开领域。',
51
+ },
52
+ {
53
+ id: 'sanming-tonghui', title: '三命通会', author: '明·万民英', era: '明代', arts: ['bazi'],
54
+ summary: '明代命学集大成之作,十二卷巨帙,汇历代命书精要,于纳音、神煞、格局、大运无所不包。',
55
+ background: '万民英(1521-1603)官至福建布政司参议,博采《渊海子平》《星平会海》等数十家命书,删繁就简而成此编。',
56
+ chapters: [
57
+ { title: '论天干地支', summary: '干支阴阳五行总论' },
58
+ { title: '论纳音取象', summary: '三十纳音之象义' },
59
+ { title: '论十神', summary: '十神定义与生克' },
60
+ { title: '论大运', summary: '大运起法与行运吉凶' },
61
+ ],
62
+ excerpts: [
63
+ {
64
+ title: '论人元司令(节选)', source: '《三命通会·卷一》',
65
+ original: '天气始于甲,地气始于子,子甲相合,命曰岁立。谨候其时,气可与期。',
66
+ translation: '天干之气从甲开始,地支之气从子开始,子与甲相配,便确立了岁序。恭敬地等待时令,气运便可预期。',
67
+ annotation: '甲子相配为六十甲子之首,岁立即历法纪元之始,命理以干支纪时推气运。',
68
+ },
69
+ ],
70
+ sourceNote: '据《四库全书》本与清刻本整理,选段属公开领域。',
71
+ },
72
+ {
73
+ id: 'ditian-sui', title: '滴天髓阐微', author: '清·任铁樵注', era: '清代', arts: ['bazi'],
74
+ summary: '命理经典《滴天髓》的阐发注本,以「天道、地道、人道」三篇立论,重体用、论源流,为子平术登堂入室之阶。',
75
+ background: '《滴天髓》相传为京图撰、刘伯温注;清代任铁樵以毕生实践逐句阐发,举六百余例证,成为近代命理研习的巅峰文本。',
76
+ chapters: [
77
+ { title: '天道篇', summary: '体用与生克' },
78
+ { title: '地道篇', summary: '旺衰与四时' },
79
+ { title: '人道篇', summary: '格局与形象' },
80
+ ],
81
+ excerpts: [
82
+ {
83
+ title: '天道(节选)', source: '《滴天髓阐微·天道》',
84
+ original: '欲识三元万法宗,先观帝载与神功。坤元合德玄机妙,惟向胞胎仔细穷。',
85
+ translation: '要认识天干、地支、人元这三元的根本法则,先要观察天道承载与造化的功用。地道与天道合德,玄机精妙,须从命局根基处仔细推究。',
86
+ annotation: '三元指天干、地支、藏干;「帝载神功」喻阴阳造化的根本力量。',
87
+ },
88
+ {
89
+ title: '天干·甲木(节选)', source: '《滴天髓阐微·天干》',
90
+ original: '甲木参天,脱胎要火。春不容金,秋不容土。火炽乘龙,水宕骑虎。地润天和,植立千古。',
91
+ translation: '甲木如参天大树,萌芽初生时需要火来温暖生发。春天木旺不喜金来克伐,秋天木衰不喜土重埋根。火太旺时需湿土(辰)来泄,水太旺时需燥土(寅)来制。地润天和,方能植立千古。',
92
+ annotation: '《滴天髓·天干》十干总诀之一,为甲木调候本源(《穷通宝鉴》转引)。「地润天和,植立千古」为甲木成格之象。',
93
+ },
94
+ ],
95
+ sourceNote: '据民国校印本整理,选段属公开领域。',
96
+ },
97
+ {
98
+ id: 'ziping-zhenquan', title: '子平真诠', author: '清·沈孝瞻', era: '清代', arts: ['bazi'],
99
+ summary: '专论格局之法,以月令为经、用神为纬,条分缕析正官、七杀、财、印、食伤诸格,为格局派的圭臬。',
100
+ background: '沈孝瞻精研子平数十年,其论以「格局」立骨,纠正了明清以来重神煞轻格局的风气。',
101
+ chapters: [
102
+ { title: '论用神', summary: '月令取用之道' },
103
+ { title: '论正官格', summary: '正官格的成破' },
104
+ { title: '论财格', summary: '财格之喜忌' },
105
+ ],
106
+ excerpts: [
107
+ {
108
+ title: '论用神(节选)', source: '《子平真诠》',
109
+ original: '八字用神,专求月令。以日干配月令地支,而生克不同,格局分焉。',
110
+ translation: '八字的用神,专门从月令中寻求。以日干配合月令地支,因生克关系不同,格局便由此区分。',
111
+ annotation: '用神为命局之枢纽,本书主张「专求月令」,是格局派的核心主张。',
112
+ },
113
+ ],
114
+ sourceNote: '据《子平真诠》通行本整理,选段属公开领域。',
115
+ },
116
+ {
117
+ id: 'qiongtong-baojian', title: '穷通宝鉴', author: '清·余春台辑', era: '清代', arts: ['bazi'],
118
+ summary: '按月令十干逐一论其喜忌用神,以「调候」为纲,务实好用,为实践派命理推崇的案头之书。',
119
+ background: '原为《栏江网》抄本,余春台整理为《穷通宝鉴》,专论十干在各月令的穷通喜忌,调候之法由此大行。',
120
+ chapters: [
121
+ { title: '论甲木', summary: '甲木十二月喜忌' },
122
+ { title: '论丙火', summary: '丙火十二月喜忌' },
123
+ { title: '论壬水', summary: '壬水十二月喜忌' },
124
+ ],
125
+ excerpts: [
126
+ {
127
+ title: '论甲木(节选)', source: '《穷通宝鉴·甲木》(转引自《滴天髓·天干》)',
128
+ original: '甲木参天,脱胎要火。春不容金,秋不容土。火炽乘龙,水宕骑虎。',
129
+ translation: '甲木如参天大树,初生时需要火来温暖生发。春天木旺不喜金来克伐,秋天木衰不喜土重埋根。火太旺时要有湿土(辰龙)来泄,水太旺时要有燥土(寅虎)来制。',
130
+ annotation: '此为甲木调候总诀。本源见《滴天髓·天干》(全文含「地润天和,植立千古」),《穷通宝鉴》转引之,两书互见。',
131
+ },
132
+ ],
133
+ sourceNote: '据《穷通宝鉴》通行本整理,选段属公开领域。',
134
+ },
135
+ {
136
+ id: 'ziwei-quanshu', title: '紫微斗数全书', author: '题明·罗洪先序,托名陈抟所传', era: '明代', arts: ['ziwei'],
137
+ summary: '紫微斗数最重要的传世文本,系统记载安星法、十二宫、十四主星与诸星曜的庙旺落陷,是斗数研习的源头。',
138
+ background: '传说紫微斗数由北宋陈抟创立,明代始有刊本流布。全书以「紫微星垣」为纲,与八字并称命理双璧。',
139
+ chapters: [
140
+ { title: '安星诀', summary: '命宫身宫与诸星安法' },
141
+ { title: '诸星问答', summary: '十四主星性情论' },
142
+ { title: '论十二宫', summary: '十二宫分论' },
143
+ ],
144
+ excerpts: [
145
+ {
146
+ title: '太微赋(节选)', source: '《紫微斗数全书·卷一·太微赋第一》',
147
+ original: '斗数至玄至微,理旨难明,虽设问于百篇之中,犹有言而未尽。至如星之分野,各有所属,寿夭贤愚,富贵贫贱,不可一概论议。其星分布于十二垣,数定乎三十六位,入庙为奇,失度为虚。星临庙旺,再观生克之机;命坐强宫,细察制化之理。',
148
+ translation: '斗数极为玄妙精微,其理旨难以尽明,即便设问于百篇之中,仍有言犹未尽之处。星曜各有分野归属,寿夭贤愚、富贵贫贱不可一概而论。星曜分布于十二宫垣,定数于三十六位星系格局:入庙为奇,失度为虚。星临庙旺之位,还需再看生克制化之机;命坐强旺之宫,要细察制化之理。',
149
+ annotation: '「入庙为奇,失度为虚」「星临庙旺,再观生克之机」:庙旺落陷与生克制化,是斗数断吉凶的两大枢纽。',
150
+ },
151
+ ],
152
+ sourceNote: '据《紫微斗数全书》坊刻本整理,选段属公开领域。',
153
+ },
154
+ {
155
+ id: 'zhouyi', title: '周易', author: '伏羲画卦,文王系辞,孔子作传', era: '先秦', arts: ['liuyao', 'meihua'],
156
+ summary: '群经之首,中国思想的源头活水。六十四卦三百八十四爻,以阴阳变化通贯天人,是六爻、梅花等一切卦术的根基。',
157
+ background: '《周易》由经(卦爻辞)与传(十翼)组成。其「观物取象」「穷理尽性」的思维,塑造了整个东方文化的底层结构。',
158
+ chapters: [
159
+ { title: '乾卦', summary: '刚健中正之象' },
160
+ { title: '坤卦', summary: '柔顺厚德之象' },
161
+ { title: '系辞上传', summary: '易学总论' },
162
+ ],
163
+ excerpts: [
164
+ {
165
+ title: '乾卦(节选)', source: '《周易·乾卦》',
166
+ original: '元亨利贞。天行健,君子以自强不息。',
167
+ translation: '乾卦象征创始、通达、和合、正固。天道运行刚健不息,君子应效法它,自强不息地奋进。',
168
+ annotation: '「元亨利贞」为四德,天行健句为孔子《大象传》对乾卦的发挥。',
169
+ },
170
+ {
171
+ title: '系辞上传(节选)', source: '《周易·系辞上》',
172
+ original: '易与天地准,故能弥纶天地之道。仰以观于天文,俯以察于地理,是故知幽明之故。',
173
+ translation: '《易》与天地相准,因此能包罗天地的法则。抬头观察天文,俯身考察地理,因此能知晓幽暗与显明的事理。',
174
+ annotation: '此为易学认识论的经典表述:观天察地而通幽明。',
175
+ },
176
+ ],
177
+ sourceNote: '据《周易正义》(阮刻十三经注疏本)整理,选段属公开领域。',
178
+ },
179
+ {
180
+ id: 'meihua-yishu', title: '梅花易数', author: '宋·邵雍', era: '宋代', arts: ['meihua'],
181
+ summary: '以「观梅」起卦而得名,主张心动即占、万物皆数,凡时间、字数、方位、声音皆可起卦,重体用生克而轻程式。',
182
+ background: '邵雍(1011-1077)为北宋易学大家,其《皇极经世》推演宇宙元会运世。梅花易数以简易灵动著称,是象数易学的通俗化结晶。',
183
+ chapters: [
184
+ { title: '观梅占', summary: '起卦法式总说' },
185
+ { title: '体用论', summary: '体用生克总纲' },
186
+ { title: '万物皆数', summary: '取数起卦诸法' },
187
+ ],
188
+ excerpts: [
189
+ {
190
+ title: '观梅占(节选)', source: '《梅花易数·观梅占》',
191
+ original: '辰年十二月十七日申时,康节先生偶观梅,见二雀争枝坠地。先生曰:不动不占,不因事不占。今二雀争枝坠地,怪也。因占之。',
192
+ translation: '辰年十二月十七日申时,邵康节先生偶然观赏梅花,看见两只喜鹊争枝而坠地。先生说:没有变动不占,没有事因不占。如今二雀争枝坠地,是异常之象。于是起卦占断。',
193
+ annotation: '此即「梅花易数」得名之由来,也是「不动不占」原则的出处。',
194
+ },
195
+ ],
196
+ sourceNote: '据《梅花易数》通行本整理,选段属公开领域。',
197
+ },
198
+ {
199
+ id: 'zengshan-buyi', title: '增删卜易', author: '清·野鹤老人', era: '清代', arts: ['liuyao'],
200
+ summary: '六爻实践派的扛鼎之作,以大量实战卦例说明断卦方法,删繁就简,重验不重玄,为六爻研习者的必读经典。',
201
+ background: '野鹤老人积数十年占验之功,著成此书。书以「增删」为名,即增补卦例、删去虚文的取义。',
202
+ chapters: [
203
+ { title: '摇钱起卦', summary: '铜钱起卦法' },
204
+ { title: '装卦', summary: '纳甲装卦法' },
205
+ { title: '用神', summary: '取用神之要' },
206
+ ],
207
+ excerpts: [
208
+ {
209
+ title: '用神(节选)', source: '《增删卜易·用神章》',
210
+ original: '用神者,卦之体也。凡占必先寻用神,用神不现,须寻伏神。',
211
+ translation: '用神是卦的根本。凡占卜必须先确定用神;用神在卦中不出现时,就要寻找伏神。',
212
+ annotation: '取用神是六爻断卦的第一步:问财取财爻、问官取官鬼爻等。',
213
+ },
214
+ ],
215
+ sourceNote: '据《增删卜易》通行本整理,选段属公开领域。',
216
+ },
217
+ {
218
+ id: 'bushe-zhengzong', title: '卜筮正宗', author: '清·王洪绪', era: '清代', arts: ['liuyao'],
219
+ summary: '六爻入门经典,系统讲述装卦、世应、六亲六神、日月动变诸法,条理清晰,为启蒙之善本。',
220
+ background: '王洪绪精于医卜,其书以「正宗」自任,旨在正本清源,纠正当时卜书的芜杂。',
221
+ chapters: [
222
+ { title: '启蒙节要', summary: '干支五行基础' },
223
+ { title: '八宫诸卦', summary: '六十四卦宫属' },
224
+ { title: '世应六亲', summary: '世应安法' },
225
+ ],
226
+ excerpts: [
227
+ {
228
+ title: '论用神(节选)', source: '《卜筮正宗》',
229
+ original: '凡占必以用神为主,有根有气则吉,无根无气则凶。',
230
+ translation: '凡占卜必须以用神为主,用神有根基有生气的就吉,没有根基没有生气的就凶。',
231
+ annotation: '「有根」指用神得月日生扶,「有气」指不被刑冲克害。',
232
+ },
233
+ ],
234
+ sourceNote: '据《卜筮正宗》通行本整理,选段属公开领域。',
235
+ },
236
+ {
237
+ id: 'liuren-daquan', title: '六壬大全', author: '明·郭御青校订', era: '明代', arts: ['liuren'],
238
+ summary: '大六壬集大成之作,汇录起课、九宗门、十二天将、毕法赋等要义,为壬学研习的渊薮。',
239
+ background: '大六壬与奇门遁甲、太乙神数并称「三式」,六壬最验人事,号称「人事之王」。《六壬大全》明季辑成,流传最广。',
240
+ chapters: [
241
+ { title: '起课法', summary: '月将加时立天地盘' },
242
+ { title: '九宗门', summary: '九种取传之法' },
243
+ { title: '毕法赋', summary: '百法断课总诀' },
244
+ ],
245
+ excerpts: [
246
+ {
247
+ title: '起课(节选)', source: '《六壬大全·起课》',
248
+ original: '课传既定,先视四课之生克,次观三传之发用。天地盘加临,日月星为纬。',
249
+ translation: '课式与三传确定之后,先看四课的生克关系,再看三传的起用。天地盘相互加临,如同日月星辰织成的经纬。',
250
+ annotation: '四课三传为大六壬断课的主体结构,此句点明课传推演的次序。',
251
+ },
252
+ ],
253
+ sourceNote: '据《四库全书》本整理,选段属公开领域。',
254
+ },
255
+ {
256
+ id: 'yanpo-diaosou', title: '烟波钓叟歌', author: '托名唐·李靖', era: '唐宋间', arts: ['qimen'],
257
+ summary: '奇门遁甲的纲领歌诀,以韵文总述九宫、八门、九星、八神与三奇六仪之用法,为奇门研习者必背之篇。',
258
+ background: '歌诀托名李靖所作,实为唐宋间奇门术士的总结之作。「烟波钓叟」即隐者之号,歌诀以口耳相传的方式保存了奇门体系。',
259
+ chapters: [
260
+ { title: '总纲', summary: '奇门源流与九宫' },
261
+ { title: '三奇六仪', summary: '乙丙丁与六仪布局' },
262
+ { title: '八门九星', summary: '八门九星八神' },
263
+ ],
264
+ excerpts: [
265
+ {
266
+ title: '总纲(节选)', source: '《烟波钓叟歌》',
267
+ original: '阴阳顺逆妙难穷,二至还乡一九宫。若能了达阴阳理,天地都来一掌中。',
268
+ translation: '阴阳顺逆的奥妙难以穷尽,冬至夏至阴阳遁的起局回归于一九之宫。若能通达阴阳之理,天地变化尽可运于掌中。',
269
+ annotation: '「二至」指冬至、夏至,为阴阳遁起局的分界;「一九宫」指阳遁从一宫起、阴遁从九宫起的布法。',
270
+ },
271
+ ],
272
+ sourceNote: '据《奇门遁甲统宗》所载歌诀整理,选段属公开领域。',
273
+ },
274
+ ];
275
+
276
+ export const classicById = (id: string) => CLASSICS.find(c => c.id === id);
@@ -0,0 +1,211 @@
1
+ // 观微学馆课程数据
2
+
3
+ export interface CourseChapter {
4
+ title: string;
5
+ body: string;
6
+ }
7
+
8
+ export interface CourseExercise {
9
+ prompt: string;
10
+ answer: string;
11
+ explain: string;
12
+ }
13
+
14
+ export interface Course {
15
+ id: string;
16
+ art: string; // 关联术数 id 或 'foundation' / 'dao'
17
+ title: string;
18
+ level: '入门' | '进阶';
19
+ summary: string;
20
+ chapters: CourseChapter[];
21
+ exercises: CourseExercise[];
22
+ relatedClassics: string[];
23
+ }
24
+
25
+ export const COURSES: Course[] = [
26
+ {
27
+ id: 'foundation-wuxing', art: 'foundation', title: '五行生克', level: '入门',
28
+ summary: '五行是玄学世界的底层语法,理解生克关系,便握住了万象变化的钥匙。',
29
+ chapters: [
30
+ { title: '五行的属性', body: '木曰曲直(生长舒展)、火曰炎上(温热明亮)、土曰稼穑(承载生化)、金曰从革(肃杀收敛)、水曰润下(寒凉流动)。' },
31
+ { title: '相生之理', body: '木生火、火生土、土生金、金生水、水生木。生者如母之育子,为助力、滋养之源。' },
32
+ { title: '相克之理', body: '木克土、土克水、水克火、火克金、金克木。克者如官之治民,为约束、制衡之力。' },
33
+ ],
34
+ exercises: [
35
+ { prompt: '火生什么?火克什么?', answer: '火生土;火克金', explain: '火燃烧后化为灰土,故火生土;火能熔化金属,故火克金。' },
36
+ ],
37
+ relatedClassics: ['zhouyi'],
38
+ },
39
+ {
40
+ id: 'foundation-ganzhi', art: 'foundation', title: '天干地支', level: '入门',
41
+ summary: '十天干十二地支是时间与空间的坐标,干支组合成六十甲子,循环往复纪年纪月纪日纪时。',
42
+ chapters: [
43
+ { title: '十天干', body: '甲乙丙丁戊己庚辛壬癸。甲丙戊庚壬为阳,乙丁己辛癸为阴;甲乙属木,丙丁属火,戊己属土,庚辛属金,壬癸属水。' },
44
+ { title: '十二地支', body: '子丑寅卯辰巳午未申酉戌亥。子寅辰午申戌为阳,丑卯巳未酉亥为阴;寅卯属木,巳午属火,申酉属金,亥子属水,辰戌丑未属土。' },
45
+ { title: '六十甲子', body: '天干配地支,阳干配阳支、阴干配阴支,依次组合六十年一轮回,称六十甲子。用于纪年、纪月、纪日、纪时。' },
46
+ ],
47
+ exercises: [
48
+ { prompt: '2024 年是甲辰年,2025 年是什么年?', answer: '乙巳年', explain: '甲后为乙,辰后为巳,干支顺次推进,故为乙巳年。' },
49
+ ],
50
+ relatedClassics: ['zhouyi'],
51
+ },
52
+ {
53
+ id: 'foundation-nayin', art: 'foundation', title: '六十甲子与纳音', level: '入门',
54
+ summary: '纳音以两干两支组合为一象,三十纳音配五行六局,是紫微定局、八字论音的重要工具。',
55
+ chapters: [
56
+ { title: '纳音之法', body: '六十甲子每两组配一纳音,共三十种:海中金、炉中火、大林木、路旁土、剑锋金、山头火……' },
57
+ { title: '五行局', body: '纳音归五行,如海中金、剑锋金等六种金音皆属金四局;紫微斗数据此定五行局以安紫微。' },
58
+ ],
59
+ exercises: [
60
+ { prompt: '甲子年的纳音是什么?属什么局?', answer: '海中金;金四局', explain: '甲子乙丑海中金,六金纳音皆配金四局。' },
61
+ ],
62
+ relatedClassics: ['sanming-tonghui'],
63
+ },
64
+ {
65
+ id: 'foundation-gua', art: 'foundation', title: '八卦与六十四卦', level: '入门',
66
+ summary: '八卦取象天地雷风水火山泽,两两相重成六十四卦,是易占的根本模型。',
67
+ chapters: [
68
+ { title: '八卦取象', body: '乾☰天(金)、坤☷地(土)、震☳雷(木)、巽☴风(木)、坎☵水(水)、离☲火(火)、艮☶山(土)、兑☱泽(金)。' },
69
+ { title: '先天数', body: '梅花易数用先天数:乾一、兑二、离三、震四、巽五、坎六、艮七、坤八。' },
70
+ { title: '重卦成象', body: '八卦上下相重得六十四卦,如乾上乾下为乾为天,坎上离下为水火既济。' },
71
+ ],
72
+ exercises: [
73
+ { prompt: '震卦的先天数是多少?五行属什么?', answer: '先天数四;属木', explain: '震为雷,先天数四,五行属木。' },
74
+ ],
75
+ relatedClassics: ['zhouyi'],
76
+ },
77
+ {
78
+ id: 'foundation-yinyang', art: 'foundation', title: '阴阳学说', level: '入门',
79
+ summary: '一阴一阳之谓道。阴阳的对立、互根、消长、转化,是理解一切术数的总纲。',
80
+ chapters: [
81
+ { title: '阴阳之义', body: '阳主动、明、刚、外、热;阴主静、暗、柔、内、寒。两者对立统一,互相转化。' },
82
+ { title: '占问之用', body: '爻分阴阳、干分阴阳、宫分阴阳。断卦先辨阴阳消长,此为观微之始。' },
83
+ ],
84
+ exercises: [
85
+ { prompt: '白天与黑夜,何者为阳?', answer: '白天为阳', explain: '阳主光明主动,故白昼属阳,黑夜属阴。' },
86
+ ],
87
+ relatedClassics: ['zhouyi'],
88
+ },
89
+ {
90
+ id: 'bazi-basic', art: 'bazi', title: '八字基础:四柱与十神', level: '入门',
91
+ summary: '从年柱到日柱,从五行到十神,认识子平术的基本框架。',
92
+ chapters: [
93
+ { title: '四柱排定', body: '年柱以立春为界,月柱以节气为纲,日柱以历法为准,时柱以时辰定之。本书四柱均按精确节气与真太阳时排定。' },
94
+ { title: '十神之义', body: '以日干为主:生我者印,我生者食伤,克我者官杀,我克者财,同我者比劫。阴阳同则为偏、异则为正。' },
95
+ { title: '日主强弱', body: '日主得月令生扶、四柱印比多者为身强,反之克泄耗多者为身弱。强弱定,喜忌出。' },
96
+ ],
97
+ exercises: [
98
+ { prompt: '日干为甲(木),见庚(金)为何神?', answer: '七杀', explain: '金克木为官杀,甲为阳木、庚为阳金,阴阳同故为七杀(偏官)。' },
99
+ ],
100
+ relatedClassics: ['yuanhai-ziping', 'ditian-sui', 'ziping-zhenquan'],
101
+ },
102
+ {
103
+ id: 'ziwei-basic', art: 'ziwei', title: '紫微入门:主星与宫垣', level: '入门',
104
+ summary: '认识十四主星的性情与十二宫垣的领域,读懂一张紫微盘。',
105
+ chapters: [
106
+ { title: '十四主星', body: '紫微系六星(紫微、天机、太阳、武曲、天同、廉贞)与天府系八星(天府、太阴、贪狼、巨门、天相、天梁、七杀、破军)。' },
107
+ { title: '十二宫垣', body: '命宫、兄弟、夫妻、子女、财帛、疾厄、迁移、仆役、官禄、田宅、福德、父母。命宫为枢,官禄财帛为用。' },
108
+ ],
109
+ exercises: [
110
+ { prompt: '紫微星的代表意义是什么?', answer: '帝星,主尊贵格局与领导力', explain: '紫微为北斗帝星,象征至尊、格局与统御。' },
111
+ ],
112
+ relatedClassics: ['ziwei-quanshu'],
113
+ },
114
+ {
115
+ id: 'meihua-basic', art: 'meihua', title: '梅花起卦入门', level: '入门',
116
+ summary: '学会时间起卦与报数起卦,看懂本卦、互卦、变卦与体用生克。',
117
+ chapters: [
118
+ { title: '起卦之法', body: '时间起卦以年支序、月、日之和定上卦,加时数定下卦与动爻;报数起卦以三数定上下卦与动爻。' },
119
+ { title: '体用生克', body: '无动爻之卦为体(事主),有动爻之卦为用(所问)。用生体吉、体克用吉、用克体凶、体生用泄气、比和平。' },
120
+ ],
121
+ exercises: [
122
+ { prompt: '报数 1、2、3 起卦:上卦下卦各是什么?', answer: '上乾下兑(天泽履),动爻三', explain: '1 取乾(先天数一),2 取兑(先天数二),3 定动爻。' },
123
+ ],
124
+ relatedClassics: ['meihua-yishu'],
125
+ },
126
+ {
127
+ id: 'liuyao-basic', art: 'liuyao', title: '六爻摇卦入门', level: '入门',
128
+ summary: '三枚铜钱六次成卦,看懂阴阳老少四象与动变之机。',
129
+ chapters: [
130
+ { title: '摇卦之法', body: '三枚铜钱同掷,三背为老阳、三字为老阴、二背一字为少阳、一背二字为少阴。自下而上六次成卦。' },
131
+ { title: '动变之义', body: '老阳老阴为动爻,动则变:阳变阴、阴变阳。本卦为现局,变卦为归趋,动爻为事机。' },
132
+ ],
133
+ exercises: [
134
+ { prompt: '三枚铜钱掷出两背一字,是什么?', answer: '少阳', explain: '二背一字为少阳,属阳爻不动。' },
135
+ ],
136
+ relatedClassics: ['zengshan-buyi', 'bushe-zhengzong', 'zhouyi'],
137
+ },
138
+ {
139
+ id: 'xiaoliuren-basic', art: 'xiaoliuren', title: '小六壬掌诀入门', level: '入门',
140
+ summary: '六掌玄机,掐指即知。大安起月、月上起日、日上起时。',
141
+ chapters: [
142
+ { title: '六掌定位', body: '大安、留连、速喜、赤口、小吉、空亡六位,循环于掌上,顺数取位。' },
143
+ { title: '吉凶要义', body: '大安、速喜、小吉为吉;留连、赤口、空亡为凶。结合五行方位与主数综合断之。' },
144
+ ],
145
+ exercises: [
146
+ { prompt: '正月初一子时占,得什么?', answer: '大安', explain: '大安起月,正月落大安;初一仍在大安;子时(一数)顺数一位仍为大安。' },
147
+ ],
148
+ relatedClassics: [],
149
+ },
150
+ {
151
+ id: 'qimen-basic', art: 'qimen', title: '奇门九宫入门', level: '入门',
152
+ summary: '认识洛书九宫、八门九星与三奇六仪,看懂一张奇门盘。',
153
+ chapters: [
154
+ { title: '九宫八门', body: '洛书九宫:坎一坤二震三巽四中五乾六兑七艮八离九。八门:休生伤杜景死惊开。' },
155
+ { title: '阴阳遁与局', body: '冬至后阳遁顺布,夏至后阴遁逆布;每节气分上中下三元,各配局数。' },
156
+ ],
157
+ exercises: [
158
+ { prompt: '开门在哪个方位?主什么?', answer: '西北乾宫,主吉庆通达', explain: '开门居乾宫西北,为八门中最吉之门。' },
159
+ ],
160
+ relatedClassics: ['yanpo-diaosou'],
161
+ },
162
+ {
163
+ id: 'liuren-basic', art: 'liuren', title: '大六壬月将入门', level: '入门',
164
+ summary: '月将随太阳过宫,月将加时立天地盘,四课三传断人事始终。',
165
+ chapters: [
166
+ { title: '月将之要', body: '月将即太阳所在之宫,中气过宫换将。如雨水后为亥将登明,春分后为戌将河魁。' },
167
+ { title: '四课三传', body: '日干遁干为干上,干支互乘得四课;三传示事之始终:初传事发之端,中传事进之中,末传事成之归。' },
168
+ ],
169
+ exercises: [
170
+ { prompt: '雨水节气后月将为何?', answer: '亥将(登明)', explain: '雨水(约 2/19)后太阳过宫入亥,故为亥将登明。' },
171
+ ],
172
+ relatedClassics: ['liuren-daquan'],
173
+ },
174
+ {
175
+ id: 'dao-jingcheng', art: 'dao', title: '占问之道:静诚悟', level: '入门',
176
+ summary: '观微三法——静以定心、诚以聚气、悟以观照。占问之前,先正其心。',
177
+ chapters: [
178
+ { title: '静', body: '占问先定心。独处一室,屏息凝神,一念一事,方得应验。' },
179
+ { title: '诚', body: '心诚则气聚,气聚则象显。同问不三占,三占必有疑,疑则不验。' },
180
+ { title: '悟', body: '术者,渡舟也,非彼岸也。卦象所指,是镜非命。观照自身,反求诸己。' },
181
+ ],
182
+ exercises: [],
183
+ relatedClassics: ['zhouyi'],
184
+ },
185
+ {
186
+ id: 'tarot-basic', art: 'tarot', title: '塔罗大阿卡纳之旅', level: '入门',
187
+ summary: '二十二张大阿卡纳是灵魂成长的旅程地图,从愚者到世界。',
188
+ chapters: [
189
+ { title: '愚者到战车', body: '愚者启程(0),魔术师掌创造(Ⅰ),女祭司守直觉(Ⅱ),皇后育丰饶(Ⅲ),皇帝立秩序(Ⅳ),教皇传师道(Ⅴ),恋人择真心(Ⅵ),战车克敌制胜(Ⅶ)。' },
190
+ { title: '力量到世界', body: '力量以柔克刚(Ⅷ),隐士独行求索(Ⅸ),命运之轮顺势(Ⅹ),正义明断(Ⅺ),倒吊人换位(Ⅻ),死神蜕旧(XIII),节制中和(XIV),恶魔直面欲望(XV),高塔破立(XVI),星星怀希望(XVII),月亮信直觉(XVIII),太阳见光明(XIX),审判觉醒来(XX),世界归于圆满(XXI)。' },
191
+ ],
192
+ exercises: [
193
+ { prompt: '大阿卡纳中「愚者」的数字是多少?', answer: '0', explain: '愚者编号 0,代表旅程之始与无限可能。' },
194
+ ],
195
+ relatedClassics: [],
196
+ },
197
+ {
198
+ id: 'astrology-basic', art: 'astrology', title: '星座与行星入门', level: '入门',
199
+ summary: '太阳主自我、月亮主情感、上升主处世,认识七行星与十二星座的语言。',
200
+ chapters: [
201
+ { title: '三大支柱', body: '太阳星座:自我核心与人生目标;月亮星座:情感需求与内在底色;上升星座:处世面具与第一印象。' },
202
+ { title: '相位之语', body: '合相凝聚、六合和谐、拱相顺遂、刑相紧张、冲相对峙。相位是行星之间的对话方式。' },
203
+ ],
204
+ exercises: [
205
+ { prompt: '上升星座由什么决定?', answer: '出生时刻与出生地经纬度', explain: '上升点是出生时刻东方地平线升起的星座,依赖精确时刻与地点计算。' },
206
+ ],
207
+ relatedClassics: [],
208
+ },
209
+ ];
210
+
211
+ export const courseById = (id: string) => COURSES.find(c => c.id === id);