국가법령정보센터 가독성 향상

국가법령정보센터 법령 본문의 줄간격, 문단 여백을 원본 CSS 구조에 맞게 최적화합니다.

当前为 2025-11-16 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         국가법령정보센터 가독성 향상
// @namespace    https://github.com/explainpark101/law.go.kr.readability
// @version      1.5
// @description  국가법령정보센터 법령 본문의 줄간격, 문단 여백을 원본 CSS 구조에 맞게 최적화합니다.
// @author       explainpark101
// @match        https://*.law.go.kr/lsInfoP.do?*
// @match        https://*.law.go.kr/lsSc.do?*
// @match        https://*.law.go.kr/lsLinkCommonInfo.do?*
// @grant        GM_addStyle
// @run-at       document-end
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    const css = `
    @font-face {
    font-family: 'Ridibatang';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/[email protected]/RIDIBatang.woff') format('woff');
    font-weight: normal;
    font-display: swap;
}
        body, div, th, td, ol, ul, li, a, strong, span, input, select, textarea {
            font-family : Ridibatang !important;
        }

        /* 1. 콘텐츠 전체 영역(조문, 부칙)에 일관된 줄간격 적용 */
        /* 원본 .pgroup의 line-height:190%를 모든 p태그에 명시적으로 적용 */
        #conScroll .lawcon p,
        #conScroll #arDivArea p {
            line-height: 1.9 !important; /* 190% */
        }

        /* 2. [핵심] 조문 내의 문단(항, 호 등) 간의 수직 여백 추가 */
        /* 원본 CSS는 p 태그의 margin이 0이므로, 여기에 여백을 추가합니다. */
        #conScroll .lawcon p,
        #conScroll #arDivArea .pgroup p {
            margin-top: 0;
            margin-bottom: 0.75em; /* 기본 문단 간격 */
        }

        /* 3. 리스트 항목(항, 호) 간 여백 미세 조정 (조금 더 촘촘하게) */
        /* pty1_de2_1 (①), pty1_de2h (1.), pty1_de3 (가.) */
        #conScroll .lawcon p.pty1_de2_1,
        #conScroll .lawcon p.pty1_de2h,
        #conScroll .lawcon p.pty1_de3,
        #conScroll #arDivArea .pty3_dep1 { /* 부칙 항 */
            margin-bottom: 0.5em;
        }

        /* 4. 조항 제목(pty1_p4)과 본문 첫 줄 사이 여백 조정 */
        #conScroll .lawcon p.pty1_p4 {
            margin-bottom: 0.5em; /* 제목과 본문 사이는 좁게 */
        }

        /* 5. [개선] 조문/부칙 그룹의 마지막 p 태그 여백 제거 (이중 여백 방지) */
        /* 원본 .pgroup (margin-bottom: 22px)와 겹치지 않도록 */
        #conScroll .lawcon .pgroup p:last-child,
        #conScroll #arDivArea .pgroup p:last-child {
            margin-bottom: 0;
        }

        /* 6. 조문 그룹(pgroup) 하단 여백 및 구분선 */
        /* 원본의 margin-bottom: 22px을 padding-bottom으로 변경하여 구분선 포함 */
        #conScroll .pgroup {
            /* 원본 margin-bottom: 22px; 을 아래와 같이 재조정 */
            margin-bottom: 1.5em;  /* 조문 그룹 간 여백 */
            padding-bottom: 1.5em; /* 구분선과 내용 사이 여백 */
            border-bottom: 1px solid #eaeaea;
        }
        #conScroll .pgroup:last-of-type {
            border-bottom: none;
            margin-bottom: 0; /* 마지막 조문은 하단 여백 불필요 */
        }

        /* 7. [유지] '제n조(제목)' 이후 줄바꿈 추가 */
        #conScroll .lawcon .pty1_p4 .bl::after {
            content: '\\A';     /* CSS에서 줄바꿈 문자 */
            white-space: pre;  /* 줄바꿈 문자를 인식하도록 설정 */
        }

        /* 8. [유지] 개정/신설 이력 (sfon) 스타일 */
        #conScroll .sfon {
            color: #666;
            font-weight: 400;
        }

        /* 9. [유지] 조항 제목 굵게 처리 */
        /* 원본 CSS(.bl)에 이미 정의되어 있지만, Userscript에서 명시적으로 제어 */
        #conScroll .lawcon .pty1_p4 .bl {
            font-weight: 600;
        }

        div.pgroup p.pty1_de2h {
           padding: 0 0 0 calc(48px + 15px);
        }

        div.pgroup p.pty1_de3 {
            padding: 0 0 0 calc(65px + 17px);
        }

        p {
            word-break: keep-all !important;
        }
    `;

    // 스타일 적용
    GM_addStyle(css);
})();