From 337cbcf76d9315e21c6e545429490bf574d79b14 Mon Sep 17 00:00:00 2001 From: Bissbert <43237892+Bissbert@users.noreply.github.com> Date: Mon, 18 May 2026 10:57:25 +0700 Subject: [PATCH 1/2] chore(ux): remove em-dashes and filler phrasing from site copy Em-dashes converted to commas, semicolons, or parentheses throughout. Filler adjectives and transition adverbs trimmed. Covers pages (404, docs/cdl, docs/quickstart, learn/index, learn/equipment, learn/ identification, learn/identification/treatments, quiz/index, reference/ properties, study/review, study/settings, tools/optical), five React/TSX components (ProportionAnalyzer, HannemanRI, UvFluorescenceLookup, OpticSignReasoner, ToolsHub), and 11 curated question bank YAML files across equipment, fundamentals, identification, and species categories. Technical comments, code identifiers, JSON-LD field names, numeric values, and table-cell no-data placeholders are preserved unchanged. --- .../advanced/ProportionAnalyzer.tsx | 4 +-- src/components/calculator/HannemanRI.tsx | 2 +- src/components/lab/UvFluorescenceLookup.tsx | 4 +-- src/components/optical/OpticSignReasoner.tsx | 2 +- src/components/tools/ToolsHub.tsx | 2 +- .../questions/equipment/ri-reading-004.yaml | 2 +- .../questions/equipment/ri-reading-005.yaml | 2 +- .../fundamentals/crystal-system-001.yaml | 2 +- .../fundamentals/crystal-system-004.yaml | 2 +- .../fundamentals/crystal-system-007.yaml | 2 +- .../questions/fundamentals/phys-prop-003.yaml | 4 +-- .../questions/fundamentals/phys-prop-004.yaml | 2 +- .../questions/fundamentals/phys-prop-006.yaml | 4 +-- .../inclusion-horsetail-001.yaml | 4 +-- .../species/corundum-vs-spinel-001.yaml | 2 +- .../questions/species/green-stone-001.yaml | 2 +- .../questions/species/green-stone-003.yaml | 2 +- .../species/red-stone-garnet-001.yaml | 2 +- src/pages/404.astro | 2 +- src/pages/docs/cdl.astro | 14 +++++----- src/pages/docs/quickstart.astro | 8 +++--- src/pages/learn/equipment/index.astro | 28 +++++++++---------- src/pages/learn/identification/index.astro | 22 +++++++-------- .../identification/treatments/index.astro | 4 +-- src/pages/learn/index.astro | 8 +++--- src/pages/quiz/index.astro | 2 +- src/pages/reference/properties.astro | 24 ++++++++-------- src/pages/study/review.astro | 2 +- src/pages/study/settings.astro | 2 +- src/pages/tools/optical.astro | 2 +- 30 files changed, 82 insertions(+), 82 deletions(-) diff --git a/src/components/advanced/ProportionAnalyzer.tsx b/src/components/advanced/ProportionAnalyzer.tsx index cd0dd0a..f269344 100644 --- a/src/components/advanced/ProportionAnalyzer.tsx +++ b/src/components/advanced/ProportionAnalyzer.tsx @@ -12,7 +12,7 @@ import { } from '../../lib/calculator/cut-grades'; const GIRDLE_OPTIONS: { value: GirdleThickness | ''; label: string }[] = [ - { value: '', label: '— not measured —' }, + { value: '', label: 'not measured' }, { value: 'extremely-thin', label: 'Extremely thin (chipping risk)' }, { value: 'very-thin', label: 'Very thin' }, { value: 'thin', label: 'Thin' }, @@ -24,7 +24,7 @@ const GIRDLE_OPTIONS: { value: GirdleThickness | ''; label: string }[] = [ ]; const CULET_OPTIONS: { value: CuletSize | ''; label: string }[] = [ - { value: '', label: '— not measured —' }, + { value: '', label: 'not measured' }, { value: 'none', label: 'None / pointed' }, { value: 'very-small', label: 'Very small' }, { value: 'small', label: 'Small' }, diff --git a/src/components/calculator/HannemanRI.tsx b/src/components/calculator/HannemanRI.tsx index 75fd1fa..dad763b 100644 --- a/src/components/calculator/HannemanRI.tsx +++ b/src/components/calculator/HannemanRI.tsx @@ -22,7 +22,7 @@ import { usePagination } from '../../hooks/usePagination'; type Row = HannemanCriteria; const RELIEF_OPTIONS: { value: Relief; label: string }[] = [ - { value: 'unknown', label: '— skip this row —' }, + { value: 'unknown', label: '(skip this row)' }, { value: 'lower', label: 'Stone shows lower relief (RI < liquid)' }, { value: 'equal', label: 'Stone disappears / equal (RI ≈ liquid)' }, { value: 'higher', label: 'Stone shows higher relief (RI > liquid)' }, diff --git a/src/components/lab/UvFluorescenceLookup.tsx b/src/components/lab/UvFluorescenceLookup.tsx index 07301b7..8ca3402 100644 --- a/src/components/lab/UvFluorescenceLookup.tsx +++ b/src/components/lab/UvFluorescenceLookup.tsx @@ -20,7 +20,7 @@ import { Pagination } from '../ui'; import { usePagination } from '../../hooks/usePagination'; const INTENSITY_OPTIONS: { value: UvIntensity; label: string }[] = [ - { value: 'unknown', label: '— skip this band —' }, + { value: 'unknown', label: 'skip this band' }, { value: 'inert', label: 'Inert (no reaction)' }, { value: 'weak', label: 'Weak' }, { value: 'moderate', label: 'Moderate' }, @@ -29,7 +29,7 @@ const INTENSITY_OPTIONS: { value: UvIntensity; label: string }[] = [ ]; const COLOR_OPTIONS = [ - { value: '', label: '— any colour —' }, + { value: '', label: 'any colour' }, { value: 'red', label: 'Red' }, { value: 'orange', label: 'Orange' }, { value: 'yellow', label: 'Yellow' }, diff --git a/src/components/optical/OpticSignReasoner.tsx b/src/components/optical/OpticSignReasoner.tsx index 426bda0..0a2e5a3 100644 --- a/src/components/optical/OpticSignReasoner.tsx +++ b/src/components/optical/OpticSignReasoner.tsx @@ -43,7 +43,7 @@ const SIGN_LABEL: Record = { '+': 'positive', '-': 'negative', '+/-': 'either sign (variable)', - 'n/a': '— not applicable —', + 'n/a': '(not applicable)', }; export function OpticSignReasoner() { diff --git a/src/components/tools/ToolsHub.tsx b/src/components/tools/ToolsHub.tsx index 4e1efe1..e6e54cd 100644 --- a/src/components/tools/ToolsHub.tsx +++ b/src/components/tools/ToolsHub.tsx @@ -67,7 +67,7 @@ export function ToolsHub() {

Tools

- Calculators for the bench: SG by hydrostatic weighing, RI lookup, birefringence, critical angle, carat estimation, and unit conversion — alongside dichroscope, polariscope, and Chelsea-filter references. + Calculators for the bench: SG by hydrostatic weighing, RI lookup, birefringence, critical angle, carat estimation, and unit conversion. Also includes dichroscope, polariscope, and Chelsea-filter references.

diff --git a/src/content/questions/equipment/ri-reading-004.yaml b/src/content/questions/equipment/ri-reading-004.yaml index 35e988e..66ba0f7 100644 --- a/src/content/questions/equipment/ri-reading-004.yaml +++ b/src/content/questions/equipment/ri-reading-004.yaml @@ -32,7 +32,7 @@ options: Tanzanite (zoisite) is orthorhombic and biaxial, with RI 1.691–1.704 and very strong trichroism (blue/violet/burgundy) [ref:read-gemmology-3e]. Its RI range does not reach 1.718, and it would show two variable shadow edges (Pattern VI or VII) on the refractometer, - not a single constant edge. Additionally, tanzanite shows striking pleochroism + not a single constant edge. Tanzanite shows striking pleochroism (described as one of the strongest trichroic gems), which would be immediately apparent when rotating the stone, contradicting the single constant reading [ref:read-gemmology-3e]. rationaleCorrect: | diff --git a/src/content/questions/equipment/ri-reading-005.yaml b/src/content/questions/equipment/ri-reading-005.yaml index d825f0a..75a6188 100644 --- a/src/content/questions/equipment/ri-reading-005.yaml +++ b/src/content/questions/equipment/ri-reading-005.yaml @@ -32,7 +32,7 @@ options: is different: the edges actually pass through each other, converging from the same side and then diverging on the other side [ref:read-gemmology-3e]. A student confusing "touching" with "crossing" will pick Pattern VII, but crossing behaviour is the criterion - for Pattern V [ref:anderson-gem-testing]. Additionally, Pattern VII allows optic sign determination from the + for Pattern V [ref:anderson-gem-testing]. Pattern VII allows optic sign determination from the refractometer, while Pattern V typically does not. rationaleCorrect: | Pattern V is uniquely identified by shadow edges that cross each other during rotation; diff --git a/src/content/questions/fundamentals/crystal-system-001.yaml b/src/content/questions/fundamentals/crystal-system-001.yaml index 178aeda..f049669 100644 --- a/src/content/questions/fundamentals/crystal-system-001.yaml +++ b/src/content/questions/fundamentals/crystal-system-001.yaml @@ -33,7 +33,7 @@ options: The hexagonal system is uniaxial (like trigonal), producing dichroism only – not trichroism [ref:read-gemmology-3e]. A sixfold axis does not create three optically distinct directions in terms of absorption; the gem still has only two principal vibration directions - (ordinary and extraordinary). Additionally, RI 1.620–1.640 does not match + (ordinary and extraordinary). RI 1.620–1.640 does not match hexagonal beryl (RI 1.577–1.583) [ref:read-gemmology-3e]. rationaleCorrect: | Tourmaline is trigonal (point group 3m), uniaxial negative, RI 1.620–1.640, diff --git a/src/content/questions/fundamentals/crystal-system-004.yaml b/src/content/questions/fundamentals/crystal-system-004.yaml index 5292883..48bf054 100644 --- a/src/content/questions/fundamentals/crystal-system-004.yaml +++ b/src/content/questions/fundamentals/crystal-system-004.yaml @@ -24,7 +24,7 @@ options: A tetragonal gem viewed exactly down its c-axis would appear isotropic on the polariscope in that specific orientation. However, the question states the test was confirmed on two different facets, making it very unlikely that both facets - happen to be cut perpendicular to the c-axis [ref:read-gemmology-3e]. Furthermore, a tetragonal gem would + happen to be cut perpendicular to the c-axis [ref:read-gemmology-3e]. A tetragonal gem would also give two shadow edges on the refractometer in any orientation that is not exactly down the optic axis – the refractometer reading of a single constant edge on multiple facets strongly implies true isotropy, not an accident of orientation. diff --git a/src/content/questions/fundamentals/crystal-system-007.yaml b/src/content/questions/fundamentals/crystal-system-007.yaml index b195b52..64df8b9 100644 --- a/src/content/questions/fundamentals/crystal-system-007.yaml +++ b/src/content/questions/fundamentals/crystal-system-007.yaml @@ -42,7 +42,7 @@ rationaleCorrect: | plane is roughly horizontal – any sharp blow from above drives directly along the cleavage. Diamond has four equivalent {111} cleavage directions; no common ring orientation is perpendicular to all four simultaneously, so cleavage is harder to - exploit accidentally [ref:read-gemmology-3e]. Additionally, topaz hardness 8 (vs. diamond 10) means + exploit accidentally [ref:read-gemmology-3e]. Topaz hardness 8 (vs. diamond 10) also means topaz surfaces wear more quickly. For ring settings: topaz should be set in protective bezels; diamond in prong settings is acceptable given its superior hardness and distributed cleavage geometry. diff --git a/src/content/questions/fundamentals/phys-prop-003.yaml b/src/content/questions/fundamentals/phys-prop-003.yaml index 7c1d441..a8919da 100644 --- a/src/content/questions/fundamentals/phys-prop-003.yaml +++ b/src/content/questions/fundamentals/phys-prop-003.yaml @@ -26,8 +26,8 @@ options: measured SG of 3.34 falls in both ranges. Similarly, spot RI near 1.66 falls in both species' ranges. The spectroscope provides a definitive single test: peridot shows a characteristic iron absorption spectrum with bands at approximately 493 nm - and related features in the blue-green [ref:read-gemmology-3e]; jadeite lacks this spectrum. Additionally, - peridot's single-crystal nature means it will show birefringence (which a cabochon + and related features in the blue-green [ref:read-gemmology-3e]; jadeite lacks this spectrum. + Peridot's single-crystal nature means it will show birefringence (which a cabochon spot reading may approximate), whereas jadeite's polycrystalline aggregate produces no net birefringence [ref:read-gemmology-3e]. - text: "Hardness testing: jadeite has hardness 6.5–7 and peridot 6.5–7, so hardness testing is the fastest single test and will separate them" diff --git a/src/content/questions/fundamentals/phys-prop-004.yaml b/src/content/questions/fundamentals/phys-prop-004.yaml index 8b86a9e..270649d 100644 --- a/src/content/questions/fundamentals/phys-prop-004.yaml +++ b/src/content/questions/fundamentals/phys-prop-004.yaml @@ -21,7 +21,7 @@ options: isCorrect: false rationale: | Glass can achieve RI 1.718 by adding heavy-metal oxides, but glass SG at that RI - would be approximately 4.5–5.0 (high-lead glass), not 3.42 [ref:read-gemmology-3e]. Additionally, quartz + would be approximately 4.5–5.0 (high-lead glass), not 3.42 [ref:read-gemmology-3e]. Quartz has RI 1.544–1.553, not 1.434 [ref:read-gemmology-3e] – Stone B's RI of 1.434 is far below any quartz value. - text: "Stone A: grossular garnet (RI ~1.73–1.76, SG ~3.58); Stone B: apatite (RI ~1.63, SG ~3.20) – both close matches by SG" isCorrect: false diff --git a/src/content/questions/fundamentals/phys-prop-006.yaml b/src/content/questions/fundamentals/phys-prop-006.yaml index cdb528c..ce3acac 100644 --- a/src/content/questions/fundamentals/phys-prop-006.yaml +++ b/src/content/questions/fundamentals/phys-prop-006.yaml @@ -23,8 +23,8 @@ options: compositional range (Mg replaced by Fe, Zn, Mn) does slightly shift SG, but the maximum for gem spinel is approximately 3.63–3.72 for iron-bearing varieties, not 4.00 [ref:read-gemmology-3e]. A difference of 0.40 SG units cannot be explained by locality variation; - 4.00 is a diagnostic, species-level value for corundum, not spinel [ref:read-gemmology-3e]. Additionally, - visible birefringence (double image) under a loupe in Stone B rules out any cubic + 4.00 is a diagnostic, species-level value for corundum, not spinel [ref:read-gemmology-3e]. + Visible birefringence (double image) under a loupe in Stone B rules out any cubic mineral including spinel. - text: "Stone A is blue topaz (RI ~1.62, SG ~3.50); Stone B is blue sapphire – blue topaz can appear similar to spinel but is biaxial" isCorrect: false diff --git a/src/content/questions/identification/inclusion-horsetail-001.yaml b/src/content/questions/identification/inclusion-horsetail-001.yaml index 8d8b5ce..db28c31 100644 --- a/src/content/questions/identification/inclusion-horsetail-001.yaml +++ b/src/content/questions/identification/inclusion-horsetail-001.yaml @@ -27,7 +27,7 @@ options: from Kenya forms in metasomatic calc-silicate rocks and contains typical inclusions such as apatite, graphite, and diopside – not fibrous actinolite halos from chromite [ref:gubelin-koivula-vol1]. The horsetail inclusion is specific to demantoid from the Ural deposits (and - occasionally other andradite localities) [ref:gubelin-koivula-vol1]. Additionally, tsavorite RI is + occasionally other andradite localities) [ref:gubelin-koivula-vol1]. Tsavorite RI is approximately 1.740–1.760, within the standard refractometer range [ref:read-gemmology-3e] – it would give a visible shadow edge, contradicting the "no shadow edge" observation. - text: "Chrome tourmaline; chrome tourmaline contains fibrous inclusions radiating from a chromite crystal in characteristic horsetail patterns" @@ -36,7 +36,7 @@ options: Chrome tourmaline does not show horsetail inclusions. Tourmaline inclusions include growth tubes parallel to the c-axis, fluid inclusions, and occasionally mineral crystals, but not the characteristic radial byssolite fibres from a chromite centre - that define the horsetail [ref:gubelin-koivula-vol3]. Furthermore, chrome tourmaline RI is 1.620–1.640 [ref:read-gemmology-3e] – + that define the horsetail [ref:gubelin-koivula-vol3]. Chrome tourmaline RI is 1.620–1.640 [ref:read-gemmology-3e] – it gives a clear shadow edge on the refractometer. The "no shadow edge" observation eliminates tourmaline before microscopy even begins. rationaleCorrect: | diff --git a/src/content/questions/species/corundum-vs-spinel-001.yaml b/src/content/questions/species/corundum-vs-spinel-001.yaml index d652eb0..4c4d9e4 100644 --- a/src/content/questions/species/corundum-vs-spinel-001.yaml +++ b/src/content/questions/species/corundum-vs-spinel-001.yaml @@ -34,7 +34,7 @@ options: double refraction [ref:read-gemmology-3e]. Pyrope is cubic and should appear predominantly dark; ADR is an irregular strain effect, not systematic double refraction. The stone described lights up clearly at four positions, which is the behaviour of a genuinely doubly - refractive gem (corundum), not ADR from a garnet [ref:read-gemmology-3e]. Additionally, pyrope RI is + refractive gem (corundum), not ADR from a garnet [ref:read-gemmology-3e]. Pyrope RI is 1.730–1.760 and SG 3.65–3.87 – both below the measured values [ref:read-gemmology-3e]. rationaleCorrect: | The ruby/spinel/pyrope discrimination is the most historically important near-miss diff --git a/src/content/questions/species/green-stone-001.yaml b/src/content/questions/species/green-stone-001.yaml index 9417f5b..511cfc4 100644 --- a/src/content/questions/species/green-stone-001.yaml +++ b/src/content/questions/species/green-stone-001.yaml @@ -31,7 +31,7 @@ options: rationale: | Tsavorite (chrome/vanadium grossular garnet) is cubic and therefore isotropic – it shows no dichroism or pleochroism [ref:read-gemmology-3e]. The strong dichroism observed in this stone - eliminates any cubic gem, including all garnets. Additionally, tsavorite SG is + eliminates any cubic gem, including all garnets. Tsavorite SG is also approximately 3.58–3.73, clearly higher than the measured 2.71 [ref:read-gemmology-3e]. The spot RI of approximately 1.58 is also far below tsavorite's RI of approximately 1.740–1.760 [ref:read-gemmology-3e]. rationaleCorrect: | diff --git a/src/content/questions/species/green-stone-003.yaml b/src/content/questions/species/green-stone-003.yaml index 3767845..eed84e0 100644 --- a/src/content/questions/species/green-stone-003.yaml +++ b/src/content/questions/species/green-stone-003.yaml @@ -22,7 +22,7 @@ options: rationale: | Tsavorite (green grossular) has RI approximately 1.740–1.760, which IS within the standard refractometer range – it gives a clear shadow edge in the 1.740–1.760 - region [ref:read-gemmology-3e]. Tsavorite does not exceed the refractometer limit. Additionally, tsavorite + region [ref:read-gemmology-3e]. Tsavorite does not exceed the refractometer limit. Tsavorite SG is approximately 3.57–3.73, clearly lower than the measured 3.84 [ref:read-gemmology-3e]. - text: "Diamond; colourless diamonds can appear green from colouring inclusions, and the above-range RI and isotropic behaviour both confirm diamond" isCorrect: false diff --git a/src/content/questions/species/red-stone-garnet-001.yaml b/src/content/questions/species/red-stone-garnet-001.yaml index 298d8de..470d820 100644 --- a/src/content/questions/species/red-stone-garnet-001.yaml +++ b/src/content/questions/species/red-stone-garnet-001.yaml @@ -25,7 +25,7 @@ options: uniformly dark between crossed polars – it would not show patchy, irregular lightening [ref:read-gemmology-3e]. Patchy lightening is specifically the pattern of ADR (anomalous double refraction) in cubic minerals, not the pattern of a uniaxial stone viewed down - its optic axis. Moreover, ruby has RI 1.762–1.770 and SG 3.99–4.01 [ref:read-gemmology-3e]; the measured + its optic axis. Ruby has RI 1.762–1.770 and SG 3.99–4.01 [ref:read-gemmology-3e]; the measured RI ~1.75 and SG 3.82 are both below corundum values. Two properties eliminate ruby. - text: "Red glass; glass can give a single constant shadow edge and irregular polariscope patterns; the SG of 3.82 is consistent with lead glass used as a ruby simulant" isCorrect: false diff --git a/src/pages/404.astro b/src/pages/404.astro index b39d304..ee61194 100644 --- a/src/pages/404.astro +++ b/src/pages/404.astro @@ -32,7 +32,7 @@ const popularPages = [

Lost in the lattice

- This page doesn't crystallise. The URL you followed doesn't correspond to a known structure — it may have been moved or never existed. + This page doesn't crystallise. The URL you followed doesn't correspond to a known structure; it may have been moved or never existed.

diff --git a/src/pages/docs/cdl.astro b/src/pages/docs/cdl.astro index 204ded1..8f2e691 100644 --- a/src/pages/docs/cdl.astro +++ b/src/pages/docs/cdl.astro @@ -681,7 +681,7 @@ cubic[m3m]:core:({111} + {100})[phantom:3]`} />

Named forms (like octahedron, prism) are not treated as - labels — they are resolved to their Miller indices directly. Labels must be identifiers + labels; they are resolved to their Miller indices directly. Labels must be identifiers that are not known named forms.

@@ -1013,12 +1013,12 @@ value = NUMBER | IDENTIFIER`} />

CDL text is processed through these stages:

    -
  1. Doc comment extraction#! lines are captured as metadata
  2. -
  3. Comment stripping# and /* */ are removed
  4. -
  5. Definition pre-processing@name = ... lines are extracted and $name references are resolved by text substitution
  6. -
  7. Lexing — remaining text is tokenized
  8. -
  9. Parsing — tokens are parsed into the AST: system, point group, form tree, modifications, twin, phenomenon
  10. -
  11. Validation — point group checked against system
  12. +
  13. Doc comment extraction: #! lines are captured as metadata
  14. +
  15. Comment stripping: # and /* */ are removed
  16. +
  17. Definition pre-processing: @name = ... lines are extracted and $name references are resolved by text substitution
  18. +
  19. Lexing: remaining text is tokenised
  20. +
  21. Parsing: tokens are parsed into the AST (system, point group, form tree, modifications, twin, phenomenon)
  22. +
  23. Validation: point group checked against system
diff --git a/src/pages/docs/quickstart.astro b/src/pages/docs/quickstart.astro index a802134..fad5fc4 100644 --- a/src/pages/docs/quickstart.astro +++ b/src/pages/docs/quickstart.astro @@ -48,9 +48,9 @@ print(desc.forms) # [CrystalForm({111}, scale=1.0)]`} />

The CDL expression breaks down as:

    -
  • cubic - Crystal system
  • -
  • [m3m] - Point group (highest cubic symmetry)
  • -
  • {'{'}111{'}'} - Miller indices for octahedral form
  • +
  • cubic: crystal system
  • +
  • [m3m]: point group (highest cubic symmetry)
  • +
  • {'{'}111{'}'}: Miller indices for the octahedral form

Step 2: Generate 3D geometry

@@ -149,7 +149,7 @@ cdl --list-twins`} />

CDL Playground

- Experiment with CDL expressions directly in your browser - no installation needed. + Experiment with CDL expressions directly in your browser (no installation needed).

@@ -241,33 +241,33 @@ const iconPaths: Record = {

Try the browser-based simulators

- Every instrument in this module has an interactive companion widget — run real + Every instrument in this module has an interactive companion widget. Run real measurements without owning the hardware:

  • Refractometer simulator - — RI / birefringence / optic sign / OTL + : RI / birefringence / optic sign / OTL
  • SG calculator - — hydrostatic weighing with water-temp correction + : hydrostatic weighing with water-temp correction
  • Spectroscope band-matcher - — match absorption pattern to 16 reference species + : match absorption pattern to 16 reference species
  • UV fluorescence lookup - — LWUV / SWUV behaviour across the mineral database + : LWUV / SWUV behaviour across the mineral database
  • Polariscope guide - — singly refractive vs doubly refractive vs aggregate + : singly refractive vs doubly refractive vs aggregate
  • Dichroscope - — pleochroism colour pair lookup + : pleochroism colour pair lookup
diff --git a/src/pages/learn/identification/index.astro b/src/pages/learn/identification/index.astro index bf8bb70..36156ce 100644 --- a/src/pages/learn/identification/index.astro +++ b/src/pages/learn/identification/index.astro @@ -116,19 +116,19 @@ const stepRows = [ { step: 5, test: 'Dichroscope', - purpose: 'Pleochroism colours and intensity — diagnostic for ruby, tanzanite, iolite, andalusite', + purpose: 'Pleochroism colours and intensity; diagnostic for ruby, tanzanite, iolite, andalusite', tool: 'Calcite or polarising-film dichroscope', }, { step: 6, test: 'Spectroscope', - purpose: 'Absorption-band pattern — chromium, iron, manganese, rare-earth signatures', + purpose: 'Absorption-band pattern: chromium, iron, manganese, rare-earth signatures', tool: 'Hand or prism-stand spectroscope with strong transmitted light', }, { step: 7, test: 'UV fluorescence', - purpose: 'LWUV / SWUV response — separates natural from synthetic and origins', + purpose: 'LWUV / SWUV response; separates natural from synthetic and origins', tool: 'LWUV (365 nm) + SWUV (254 nm) lamp; dark cabinet', }, { @@ -297,7 +297,7 @@ const iconPaths: Record = { /> -

Treatments & synthetics — deep dives

+

Treatments & synthetics: deep dives

{deepDiveTopics.map((t) => ( @@ -319,32 +319,32 @@ const iconPaths: Record = {

Hands-on companion tools

Each step in the protocol above has an interactive widget on this site that runs - entirely in your browser — no installation, no account, no upload of stone data: + entirely in your browser (no installation, no account, no upload of stone data):

  • Measurement - — RI lookup, SG with water-temp correction, birefringence, carat estimator + : RI lookup, SG with water-temp correction, birefringence, carat estimator
  • Optical - — refractometer simulator, polariscope guide, pleochroism + optic-sign reasoners + : refractometer simulator, polariscope guide, pleochroism + optic-sign reasoners
  • Lab - — spectroscope calculator + band-matcher, UV-fluorescence lookup + : spectroscope calculator + band-matcher, UV-fluorescence lookup
  • Identification - — Gem Identifier (filtered DB query against your measured RI/SG/system) + : Gem Identifier (filtered DB query against your measured RI/SG/system)
  • Advanced - — Treatment Wizard, Treatment Detection table, Proportion Analyzer + : Treatment Wizard, Treatment Detection table, Proportion Analyzer
  • Practice quiz - — SM-2-scheduled spaced-repetition with rationale panels + : SM-2-scheduled spaced-repetition with rationale panels
diff --git a/src/pages/learn/identification/treatments/index.astro b/src/pages/learn/identification/treatments/index.astro index cbd51b6..9d1189a 100644 --- a/src/pages/learn/identification/treatments/index.astro +++ b/src/pages/learn/identification/treatments/index.astro @@ -215,8 +215,8 @@ const iconPaths: Record = { Free FGA-aligned treatments and synthetics reference

- Modern lab-grown synthetic diamond — both HPHT (high-pressure / - high-temperature) and CVD (chemical vapour deposition) — is gemmologically identical to + Modern lab-grown synthetic diamond (both HPHT, high-pressure / + high-temperature, and CVD, chemical vapour deposition) is gemmologically identical to natural diamond by routine refractive index and specific gravity measurement, so identification depends on photoluminescence, short-wave UV fluorescence (DiamondView), and subtle defect-centre patterns visible only with laboratory instruments. The same is true diff --git a/src/pages/learn/index.astro b/src/pages/learn/index.astro index 9fc1282..0df5f92 100644 --- a/src/pages/learn/index.astro +++ b/src/pages/learn/index.astro @@ -160,7 +160,7 @@ const totalTopicCount = topics.length; const courseSchema = { "@context": "https://schema.org", "@type": "Course", - "name": "Gemmology Fundamentals — Free FGA Exam Preparation", + "name": "Gemmology Fundamentals: Free FGA Exam Preparation", "alternateName": ["FGA Study Guide", "Gem-A Foundation Preparation"], "description": "FGA curriculum-aligned content covering crystallography, physical and optical properties, inclusions, treatments, and synthetics.", "provider": { @@ -271,7 +271,7 @@ const iconPaths: Record = {

Free FGA exam preparation and structured study guide

A structured, free study path for the Gem-A FGA Foundation and Diploma curriculum: - {totalTopicCount} articles across eight categories — crystal systems, physical and optical + {totalTopicCount} articles across eight categories: crystal systems, physical and optical properties, equipment, gem species, identification, phenomena, geographic origin, market and grading, and gem care. Each article is paired with browser-based tools (refractometer simulator, spectroscope band-matcher, treatment wizard, proportion analyzer) and an @@ -279,7 +279,7 @@ const iconPaths: Record = { other in one place. Articles include pretest questions that count toward spaced-repetition scheduling and link out to the canonical mineral database, so the same hardness, refractive index, and birefringence values support reading, testing, and recall. Use the category grid - below to navigate by topic, or start the daily review queue if you have an active study + below to browse by topic, or start the daily review queue if you have an active study schedule.

@@ -472,7 +472,7 @@ const iconPaths: Record = {

FGA Curriculum Alignment

This content is aligned with the Gem-A (Gemmological Association of Great Britain) - FGA diploma curriculum. While comprehensive, this resource is not a substitute for formal + FGA diploma curriculum. This resource is not a substitute for formal gemmological education and hands-on training with reference stones.

diff --git a/src/pages/quiz/index.astro b/src/pages/quiz/index.astro index b8783d4..30cf6f6 100644 --- a/src/pages/quiz/index.astro +++ b/src/pages/quiz/index.astro @@ -1,6 +1,6 @@ --- /** - * Quiz hub page — SSG intro prose + Course/Quiz JSON-LD. + * Quiz hub page: SSG intro prose + Course/Quiz JSON-LD. */ import { getCollection } from 'astro:content'; import BaseLayout from '../../layouts/BaseLayout.astro'; diff --git a/src/pages/reference/properties.astro b/src/pages/reference/properties.astro index d0ac75f..9d86512 100644 --- a/src/pages/reference/properties.astro +++ b/src/pages/reference/properties.astro @@ -152,11 +152,11 @@ const breadcrumbItems = [{ label: 'Reference' }, { label: 'Gemstone properties c

Gemstone properties chart

- 50 commonly encountered gems — RI, SG, hardness, birefringence, crystal system, cleavage + 50 commonly encountered gems: RI, SG, hardness, birefringence, crystal system, cleavage

- A single-page reference table of the six diagnostic gemmological constants — refractive - index, specific gravity, Mohs hardness, birefringence, crystal system, and cleavage — for + A single-page reference table of the six diagnostic gemmological constants (refractive + index, specific gravity, Mohs hardness, birefringence, crystal system, and cleavage) for 50 of the most commonly encountered gemstones in commercial and FGA-curriculum practice. Values are stated as Webster and Read report them, with ranges where compositional variation is significant (e.g. tourmaline 1.624–1.644 reflecting elbaite chemistry). @@ -186,7 +186,7 @@ const breadcrumbItems = [{ label: 'Reference' }, { label: 'Gemstone properties c /> -

Reference table — 50 gemstones

+

Reference table: 50 gemstones

@@ -243,8 +243,8 @@ const breadcrumbItems = [{ label: 'Reference' }, { label: 'Gemstone properties c
  • Confirm with SG. Hydrostatic weighing or heavy liquids resolves ambiguities between species with overlapping RI (e.g. emerald 2.67–2.78 vs aquamarine - 2.68–2.91 — closely-overlapping; hessonite 3.60–3.68 vs tsavorite 3.60–3.68 — needs - colour and inclusion analysis). + 2.68–2.91, which are closely overlapping; hessonite 3.60–3.68 vs tsavorite 3.60–3.68 + needs colour and inclusion analysis).
  • Check cleavage for cutting / care. Topaz (perfect 1-direction), @@ -262,12 +262,12 @@ const breadcrumbItems = [{ label: 'Reference' }, { label: 'Gemstone properties c it is measured and what its diagnostic limits are:

    diff --git a/src/pages/study/review.astro b/src/pages/study/review.astro index 961decb..0b93910 100644 --- a/src/pages/study/review.astro +++ b/src/pages/study/review.astro @@ -1,6 +1,6 @@ --- /** - * Study review — express "show me what's due" route. Bypasses the QuizSetup + * Study review: express "show me what's due" route. Bypasses the QuizSetup * screen and surfaces only items that the SM-2 scheduler marks as due now. */ import { getCollection } from 'astro:content'; diff --git a/src/pages/study/settings.astro b/src/pages/study/settings.astro index e516903..b6f6b93 100644 --- a/src/pages/study/settings.astro +++ b/src/pages/study/settings.astro @@ -1,6 +1,6 @@ --- /** - * Study settings — user-tunable study system preferences and JSON + * Study settings: user-tunable study system preferences and JSON * export/import. */ import BaseLayout from '../../layouts/BaseLayout.astro'; diff --git a/src/pages/tools/optical.astro b/src/pages/tools/optical.astro index 6ab6744..87ac74e 100644 --- a/src/pages/tools/optical.astro +++ b/src/pages/tools/optical.astro @@ -62,7 +62,7 @@ const tools = [ explicitly models over-the-limit behaviour: when the RI of the stone exceeds the refractive index of the contact liquid, the shadow edge vanishes from the scale. This is the point at which the Hanneman/Hodgkinson shortcut (available in the Measurement - section) must be applied. Understanding why the shadow edge disappears is essential + section) must be applied. Understanding why the shadow edge disappears is core examination knowledge: the refractometer measures the critical angle of the stone-liquid interface, so a stone with RI above the liquid RI produces total internal reflection across the full scale. From c207228798b89b292a75eecdaf2c82c7be4ad791 Mon Sep 17 00:00:00 2001 From: Bissbert <43237892+Bissbert@users.noreply.github.com> Date: Mon, 18 May 2026 11:08:07 +0700 Subject: [PATCH 2/2] chore(content): bump KNOWLEDGE_VERSION to v1.4.0 Pulls the scrubbed learn YAML (em-dashes and filler phrasing removed) from gemmology-knowledge v1.4.0. --- src/lib/knowledge-version.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/knowledge-version.ts b/src/lib/knowledge-version.ts index 88b5500..a21a9df 100644 --- a/src/lib/knowledge-version.ts +++ b/src/lib/knowledge-version.ts @@ -1,4 +1,4 @@ -export const KNOWLEDGE_VERSION = 'v1.3.0'; +export const KNOWLEDGE_VERSION = 'v1.4.0'; export const KNOWLEDGE_REPO_URL = 'https://github.com/gemmology-dev/gemmology-knowledge';