SuperAPI AI 工具集

legalize-es-spanish-legislation

写作与研究

查看项目

更新于 10-15 15:15

技能介绍

用途

legalize-es 是一个 Git 仓库,把西班牙立法以 Markdown 文件的形式进行版本化管理。仓库收录 8600 多部西班牙法律,每一次立法改革都作为一次 Git 提交记录下来,改革历史可追溯至 1960 年。每部法律是一个单独的 .md 文件,以 BOE 标识符命名,例如西班牙宪法对应 BOE-A-1978-31229.md。

该技能适合需要查询、浏览和分析西班牙立法的场景,尤其是希望利用 Git 的版本控制能力来追踪法律沿革、对比不同版本差异、检索特定条文或按法律类型筛选的用户。

主要能力

  • 使用 grep 对所有法律进行全文检索
  • 使用 git diff 获取某部法律任意两个版本之间的精确差异
  • 使用 git log 查看某部法律的全部改革时间线
  • 使用 git show / git checkout 查看任意时间点的法律历史状态
  • 通过 YAML frontmatter 按法律层级(rango)和状态(estado)筛选
  • 支持 Shell 脚本与 Python 进行程序化访问

安装与文件结构

克隆完整仓库(包含全部历史):

git clone https://github.com/legalize-dev/legalize-es.git
cd legalize-es

如果只需要当前状态,可使用浅克隆(速度更快):

git clone --depth 1 https://github.com/legalize-dev/legalize-es.git
cd legalize-es

所有法律文件位于 spain/ 目录下,例如:

spain/
├── BOE-A-1978-31229.md    # Constitución Española
├── BOE-A-1995-25444.md    # Código Penal
├── BOE-A-2015-11430.md    # Estatuto de los Trabajadores
├── BOE-A-2000-323.md      # Ley de Enjuiciamiento Civil
└── ... (8,600+ laws)

元数据

每个文件开头都有结构化 YAML frontmatter,例如:

---
titulo: "Constitución Española"
identificador: "BOE-A-1978-31229"
pais: "es"
rango: "constitucion"
fecha_publicacion: "1978-12-29"
ultima_actualizacion: "2024-02-17"
estado: "vigente"
fuente: "https://www.boe.es/eli/es/c/1978/12/27/(1)"
---

rango 取值包括:constitucion、ley-organica、ley、real-decreto-ley、real-decreto-legislativo。

estado 取值包括:vigente(现行有效)、derogado(已废止)。

使用方式

按主题查找法律:

grep -rl "trabajo" spain/ | head -20
grep -rl "huelga" spain/
grep -rli "protección de datos" spain/

读取特定条文:

grep -A 20 "Artículo 18" spain/BOE-A-1978-31229.md
grep -B 10 -A 30 "Artículo 135" spain/BOE-A-1978-31229.md

按 BOE 标识符查找:

cat spain/BOE-A-1995-25444.md
ls spain/ | grep "BOE-A-1995"

按法律类型筛选:

grep -rl 'rango: "ley-organica"' spain/
grep -rl 'estado: "vigente"' spain/
grep -rl 'estado: "derogado"' spain/

查看某部法律的全部改革:

git log --oneline -- spain/BOE-A-1978-31229.md
git log --format="%h %ad %s" --date=short -- spain/BOE-A-1978-31229.md
git log -- spain/BOE-A-1978-31229.md

对比两个版本:

git show 6660bcf -- spain/BOE-A-1978-31229.md
git diff 6660bcf^..6660bcf -- spain/BOE-A-1978-31229.md
git diff $(git rev-list -1 --before="2011-01-01" HEAD) \
         $(git rev-list -1 --before="2012-01-01" HEAD) \
         -- spain/BOE-A-1978-31229.md

读取历史版本:

git show $(git rev-list -1 --before="2010-01-01" HEAD):spain/BOE-A-1978-31229.md
git show abc1234:spain/BOE-A-1978-31229.md

查找特定文本的增删:

git log -S "estabilidad presupuestaria" -- spain/BOE-A-1978-31229.md
git log -G "límite de déficit estructural" --oneline -- spain/BOE-A-1978-31229.md

程序化访问

资料提供了 Shell 与 Python 示例,包括:提取所有法律标题、查找某日期之后更新的法律、解析 frontmatter、通过 Git 获取改革历史、对比两个版本、跨所有法律搜索、导出法律为 JSON 等。

常见工作流

  • 研究某个法律主题:先用 grep 找到相关法律,再获取标题,定位主要法律
  • 追踪某次具体改革:用 git log -S 找到引入某文本的提交,用 git show 查看具体改动,读取提交信息获取官方来源
  • 将法律导出为 JSON:解析 frontmatter 并写入 laws_index.json

故障排除

  • 仓库过大无法克隆:使用浅克隆 git clone --depth 1 或限制历史深度 --depth 50
  • 浅克隆后 git log 无历史:使用 git fetch --deepen=100 或 git fetch --unshallow
  • Windows 编码问题:设置 git config core.quotepath false 与 git config i18n.logoutputencoding utf-8,Python 中始终以 encoding='utf-8' 打开文件
  • 不知道 BOE ID 时:按部分标题进行不区分大小写搜索

数据来源与许可

  • 立法内容:公有领域,来源于 BOE Open Data API
  • 仓库结构、元数据、工具:MIT License
  • 每部法律的官方来源:见各文件 frontmatter 中的 fuente 字段
  • 属于 Legalize 多国项目的一部分
  • 即将推出:legalize.dev 上的程序化 API

限制

资料未提供关于收费、价格、平台支持范围、性能指标或法律内容准确性的保证信息。使用前请以官方来源为准。