mirror of
				https://github.com/kuohuanhuan/x-markdown-css.git
				synced 2024-11-25 06:18:19 +00:00 
			
		
		
		
	Compare commits
	
		
			1 Commits
		
	
	
		
			v0.0.0-202
			...
			v0.0.0-202
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						
						
							
						
						05e7f3c596
	
				 | 
					
					
						
@ -1,4 +1,4 @@
 | 
			
		||||
# Browserslist <https://browsersl.ist>
 | 
			
		||||
 | 
			
		||||
defaults
 | 
			
		||||
since 2015
 | 
			
		||||
since 2012
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										56
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										56
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							@ -1,56 +0,0 @@
 | 
			
		||||
name: CI
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
    branches:
 | 
			
		||||
      - master
 | 
			
		||||
  pull_request:
 | 
			
		||||
    branches:
 | 
			
		||||
      - master
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  # Test Lint
 | 
			
		||||
  lint:
 | 
			
		||||
    # Use Ubuntu 22.04
 | 
			
		||||
    runs-on: ubuntu-22.04
 | 
			
		||||
    steps:
 | 
			
		||||
      # Step I
 | 
			
		||||
      - name: Get Source Code
 | 
			
		||||
        uses: actions/checkout@v3
 | 
			
		||||
      # Step II
 | 
			
		||||
      - name: Setup Node.js
 | 
			
		||||
        uses: actions/setup-node@v3
 | 
			
		||||
        with:
 | 
			
		||||
          node-version: 16
 | 
			
		||||
          registry-url: https://registry.npmjs.org/
 | 
			
		||||
      # Step IV
 | 
			
		||||
      - name: Install Dependencies
 | 
			
		||||
        run: npm ci
 | 
			
		||||
      # Step V
 | 
			
		||||
      - name: Lint
 | 
			
		||||
        run: npm run lint
 | 
			
		||||
  # Test Build
 | 
			
		||||
  build:
 | 
			
		||||
    # Use Ubuntu Linux, Windows and OS X
 | 
			
		||||
    runs-on: ${{ matrix.os }}
 | 
			
		||||
    strategy:
 | 
			
		||||
      matrix:
 | 
			
		||||
        node-version: [ 16, 18, latest ]
 | 
			
		||||
        os: [ ubuntu-latest, windows-latest, macos-latest ]
 | 
			
		||||
      fail-fast: false
 | 
			
		||||
    steps:
 | 
			
		||||
      # Step I
 | 
			
		||||
      - name: Get Source Code
 | 
			
		||||
        uses: actions/checkout@v3
 | 
			
		||||
      # Step II
 | 
			
		||||
      - name: Setup Node.js
 | 
			
		||||
        uses: actions/setup-node@v3
 | 
			
		||||
        with:
 | 
			
		||||
          node-version: ${{ matrix.node-version }}
 | 
			
		||||
          registry-url: https://registry.npmjs.org/
 | 
			
		||||
      # Step III
 | 
			
		||||
      - name: Install Dependencies
 | 
			
		||||
        run: npm ci
 | 
			
		||||
      # Step IV
 | 
			
		||||
      - name: Test Build
 | 
			
		||||
        run: npm run build
 | 
			
		||||
@ -17,28 +17,17 @@ jobs:
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 0
 | 
			
		||||
      # Step II
 | 
			
		||||
      - name: Setup Node.js
 | 
			
		||||
        uses: actions/setup-node@v3
 | 
			
		||||
        with:
 | 
			
		||||
          node-version: 16
 | 
			
		||||
          registry-url: https://registry.npmjs.org/
 | 
			
		||||
      # Step III
 | 
			
		||||
      - name: Install Dependencies
 | 
			
		||||
        run: npm ci
 | 
			
		||||
      # Step IV
 | 
			
		||||
      # Step III
 | 
			
		||||
      - name: Build Project
 | 
			
		||||
        run: npm run build
 | 
			
		||||
      # Step V
 | 
			
		||||
      - name: Regenerate `.gitignore`
 | 
			
		||||
        run: |
 | 
			
		||||
          rm -f .gitignore
 | 
			
		||||
          echo 'node_modules/' >> .gitignore
 | 
			
		||||
      # Step VI
 | 
			
		||||
      # Step IV
 | 
			
		||||
      - name: Publish to NPM Registry
 | 
			
		||||
        uses: rxfork/npm-publish@v1
 | 
			
		||||
        uses: JS-DevTools/npm-publish@v1
 | 
			
		||||
        with:
 | 
			
		||||
          token: ${{ secrets.NPM_TOKEN }}
 | 
			
		||||
      # Step VII
 | 
			
		||||
      # Step V
 | 
			
		||||
      - name: Generate Changelog
 | 
			
		||||
        run: npx changelogithub@0.12
 | 
			
		||||
        env:
 | 
			
		||||
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -1,2 +1,2 @@
 | 
			
		||||
.env.local
 | 
			
		||||
node_modules/
 | 
			
		||||
dist/
 | 
			
		||||
 | 
			
		||||
@ -1,3 +0,0 @@
 | 
			
		||||
**/*.js
 | 
			
		||||
dist/*.css
 | 
			
		||||
node_modules
 | 
			
		||||
							
								
								
									
										95
									
								
								.stylelintrc
									
									
									
									
									
								
							
							
						
						
									
										95
									
								
								.stylelintrc
									
									
									
									
									
								
							@ -1,95 +0,0 @@
 | 
			
		||||
{
 | 
			
		||||
  "ignoreDisables": true,
 | 
			
		||||
  "extends": "stylelint-config-standard-scss",
 | 
			
		||||
  "plugins": [
 | 
			
		||||
    "stylelint-scss",
 | 
			
		||||
    "stylelint-order"
 | 
			
		||||
  ],
 | 
			
		||||
  "rules": {
 | 
			
		||||
    "alpha-value-notation": "number",
 | 
			
		||||
    "at-rule-empty-line-before": null,
 | 
			
		||||
    "block-no-empty": true,
 | 
			
		||||
    "color-named": "never",
 | 
			
		||||
    "color-hex-case": "lower",
 | 
			
		||||
    "import-notation": null,
 | 
			
		||||
    "max-nesting-depth": 5,
 | 
			
		||||
    "number-leading-zero": "never",
 | 
			
		||||
    "property-no-vendor-prefix": true,
 | 
			
		||||
    "rule-empty-line-before": null,
 | 
			
		||||
    "order/properties-alphabetical-order": null,
 | 
			
		||||
    "order/properties-order": [
 | 
			
		||||
      "position",
 | 
			
		||||
      "top",
 | 
			
		||||
      "bottom",
 | 
			
		||||
      "right",
 | 
			
		||||
      "left",
 | 
			
		||||
      "display",
 | 
			
		||||
      "align-items",
 | 
			
		||||
      "justify-content",
 | 
			
		||||
      "float",
 | 
			
		||||
      "clear",
 | 
			
		||||
      "overflow",
 | 
			
		||||
      "overflow-x",
 | 
			
		||||
      "overflow-y",
 | 
			
		||||
      "margin",
 | 
			
		||||
      "margin-top",
 | 
			
		||||
      "margin-right",
 | 
			
		||||
      "margin-bogttom",
 | 
			
		||||
      "margin-left",
 | 
			
		||||
      "padding",
 | 
			
		||||
      "padding-top",
 | 
			
		||||
      "padding-right",
 | 
			
		||||
      "padding-bottom",
 | 
			
		||||
      "padding-left",
 | 
			
		||||
      "width",
 | 
			
		||||
      "min-width",
 | 
			
		||||
      "max-width",
 | 
			
		||||
      "height",
 | 
			
		||||
      "min-height",
 | 
			
		||||
      "max-height",
 | 
			
		||||
      "font-size",
 | 
			
		||||
      "font-family",
 | 
			
		||||
      "font-weight",
 | 
			
		||||
      "text-align",
 | 
			
		||||
      "text-justify",
 | 
			
		||||
      "text-indent",
 | 
			
		||||
      "text-overflow",
 | 
			
		||||
      "text-decoration",
 | 
			
		||||
      "white-space",
 | 
			
		||||
      "color",
 | 
			
		||||
      "background",
 | 
			
		||||
      "background-position",
 | 
			
		||||
      "background-repeat",
 | 
			
		||||
      "background-size",
 | 
			
		||||
      "background-color",
 | 
			
		||||
      "background-clip",
 | 
			
		||||
      "border",
 | 
			
		||||
      "border-style",
 | 
			
		||||
      "border-width",
 | 
			
		||||
      "border-color",
 | 
			
		||||
      "border-top-style",
 | 
			
		||||
      "border-top-width",
 | 
			
		||||
      "border-top-color",
 | 
			
		||||
      "border-right-style",
 | 
			
		||||
      "border-right-width",
 | 
			
		||||
      "border-right-color",
 | 
			
		||||
      "border-bottom-style",
 | 
			
		||||
      "border-bottom-width",
 | 
			
		||||
      "border-bottom-color",
 | 
			
		||||
      "border-left-style",
 | 
			
		||||
      "border-left-width",
 | 
			
		||||
      "border-left-color",
 | 
			
		||||
      "border-radius",
 | 
			
		||||
      "opacity",
 | 
			
		||||
      "filter",
 | 
			
		||||
      "list-style",
 | 
			
		||||
      "outline",
 | 
			
		||||
      "visibility",
 | 
			
		||||
      "z-index",
 | 
			
		||||
      "box-shadow",
 | 
			
		||||
      "text-shadow",
 | 
			
		||||
      "resize",
 | 
			
		||||
      "transition"
 | 
			
		||||
    ]
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										5
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
								
							@ -1,6 +1,3 @@
 | 
			
		||||
{
 | 
			
		||||
  "cSpell.enabled": false,
 | 
			
		||||
  "stylelint.enable": true,
 | 
			
		||||
  "stylelint.configFile": ".stylelintrc",
 | 
			
		||||
  "workbench.colorCustomizations": {}
 | 
			
		||||
  "cSpell.enabled": false
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,7 @@
 | 
			
		||||
module.exports = (grunt) ->
 | 
			
		||||
  # Load Grunt Tasks
 | 
			
		||||
  require('load-grunt-tasks') grunt
 | 
			
		||||
  require('load-grunt-tasks')(grunt)
 | 
			
		||||
 | 
			
		||||
  # Project Configuration
 | 
			
		||||
  grunt.initConfig
 | 
			
		||||
  grunt.initConfig(
 | 
			
		||||
    # NPM Package Declare
 | 
			
		||||
    pkg: grunt.file.readJSON('package.json')
 | 
			
		||||
    # Sass Compile
 | 
			
		||||
@ -28,23 +26,19 @@ module.exports = (grunt) ->
 | 
			
		||||
          annotation: 'dist/'
 | 
			
		||||
      exp:
 | 
			
		||||
        options:
 | 
			
		||||
          processors: [
 | 
			
		||||
            require('postcss-preset-env')()
 | 
			
		||||
            require('autoprefixer')()
 | 
			
		||||
          ]
 | 
			
		||||
          processors: [require('autoprefixer')()]
 | 
			
		||||
        src: 'dist/bundle.css'
 | 
			
		||||
        dest: 'dist/bundle.css'
 | 
			
		||||
      min:
 | 
			
		||||
        options:
 | 
			
		||||
          processors: [
 | 
			
		||||
            require('postcss-preset-env')()
 | 
			
		||||
            require('autoprefixer')()
 | 
			
		||||
            require('cssnano')(preset: 'default')
 | 
			
		||||
            require('cssnano')(
 | 
			
		||||
              preset: 'default'
 | 
			
		||||
            )
 | 
			
		||||
          ]
 | 
			
		||||
        src: 'dist/bundle.min.css'
 | 
			
		||||
        dest: 'dist/bundle.min.css'
 | 
			
		||||
  # Register Grunt Tasks
 | 
			
		||||
  grunt.registerTask 'build', [
 | 
			
		||||
    'sass'
 | 
			
		||||
    'postcss'
 | 
			
		||||
  ]
 | 
			
		||||
  )
 | 
			
		||||
 | 
			
		||||
  grunt.registerTask('build', ['sass', 'postcss'])
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2740
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										2740
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										19
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								package.json
									
									
									
									
									
								
							@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "x-markdown-css",
 | 
			
		||||
  "version": "0.0.0-20230301.6",
 | 
			
		||||
  "version": "v0.0.0-20230228.6-with_license",
 | 
			
		||||
  "description": "A simple and customizable Markdown CSS for everyone.",
 | 
			
		||||
  "keywords": [
 | 
			
		||||
    "markdown",
 | 
			
		||||
@ -28,31 +28,22 @@
 | 
			
		||||
  },
 | 
			
		||||
  "homepage": "https://github.com/kuohuanhuan/x-markdown-css#readme",
 | 
			
		||||
  "engines": {
 | 
			
		||||
    "node": ">=16"
 | 
			
		||||
    "node": ">=14"
 | 
			
		||||
  },
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "build": "grunt build",
 | 
			
		||||
    "bump": "bumpp",
 | 
			
		||||
    "lint": "stylelint **/*.scss --config .stylelintrc",
 | 
			
		||||
    "lint:fix": "stylelint **/*.scss --config .stylelintrc --fix"
 | 
			
		||||
    "build": "grunt build"
 | 
			
		||||
  },
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "coffeescript": "^2.7.0",
 | 
			
		||||
    "sass": "^1.58.3"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "@lodder/grunt-postcss": "^3.1.1",
 | 
			
		||||
    "autoprefixer": "^10.4.13",
 | 
			
		||||
    "bumpp": "^9.0.0",
 | 
			
		||||
    "coffeescript": "^2.7.0",
 | 
			
		||||
    "cssnano": "^5.1.15",
 | 
			
		||||
    "grunt": "^1.6.1",
 | 
			
		||||
    "grunt-sass": "^3.1.0",
 | 
			
		||||
    "load-grunt-tasks": "^5.1.0",
 | 
			
		||||
    "postcss": "^8.4.21",
 | 
			
		||||
    "postcss-preset-env": "^8.0.1",
 | 
			
		||||
    "stylelint": "^15.2.0",
 | 
			
		||||
    "stylelint-config-standard-scss": "^7.0.1",
 | 
			
		||||
    "stylelint-order": "^6.0.2",
 | 
			
		||||
    "stylelint-scss": "^4.4.0"
 | 
			
		||||
    "postcss": "^8.4.21"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1 +0,0 @@
 | 
			
		||||
@import 'title', 'text', 'link', 'code', 'quote', 'figure', 'list', 'table', 'media';
 | 
			
		||||
@ -1,36 +0,0 @@
 | 
			
		||||
code {
 | 
			
		||||
  font-size: .85rem;
 | 
			
		||||
  font-weight: 600;
 | 
			
		||||
  font-family: var(--xm-font-mono);
 | 
			
		||||
  color: var(--xm-c-dark);
 | 
			
		||||
  &::before, &::after {
 | 
			
		||||
    content: '`';
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
pre {
 | 
			
		||||
  overflow-x: auto;
 | 
			
		||||
  margin-top: 1.75rem;
 | 
			
		||||
  padding-top: .85rem, 1.15rem;
 | 
			
		||||
  font-size: .85rem;
 | 
			
		||||
  color: var(--xm-c-pre);
 | 
			
		||||
  line-height: 1.75;
 | 
			
		||||
  margin-bottom: 1.75rem;
 | 
			
		||||
  border-radius: .375rem;
 | 
			
		||||
  code {
 | 
			
		||||
    padding: 0;
 | 
			
		||||
    font-size: inherit;
 | 
			
		||||
    font-family: inherit;
 | 
			
		||||
    font-weight: 400;
 | 
			
		||||
    color: inherit;
 | 
			
		||||
    background: transparent;
 | 
			
		||||
    border-width: 0;
 | 
			
		||||
    border-radius: 0;
 | 
			
		||||
    line-height: inherit;
 | 
			
		||||
    &::before {
 | 
			
		||||
      content: none;
 | 
			
		||||
    }
 | 
			
		||||
    &::after {
 | 
			
		||||
      content: none;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -1,6 +0,0 @@
 | 
			
		||||
@mixin container {
 | 
			
		||||
  max-width: fit-content;
 | 
			
		||||
  font-size: 1rem;
 | 
			
		||||
  color: var(--xm-c-general);
 | 
			
		||||
  line-height: 1.75;
 | 
			
		||||
}
 | 
			
		||||
@ -1,14 +0,0 @@
 | 
			
		||||
figure {
 | 
			
		||||
  margin-top: 2rem;
 | 
			
		||||
  margin-bottom: 2rem;
 | 
			
		||||
  figcaption {
 | 
			
		||||
    margin-top: .85rem;
 | 
			
		||||
    font-size: .85rem;
 | 
			
		||||
    color: var(--xm-c-figcaption);
 | 
			
		||||
    line-height: 1.45;
 | 
			
		||||
  }
 | 
			
		||||
  > * {
 | 
			
		||||
    margin-top: 0;
 | 
			
		||||
    margin-bottom: 0;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -1,8 +0,0 @@
 | 
			
		||||
a {
 | 
			
		||||
  font-weight: 500;
 | 
			
		||||
  text-decoration: none;
 | 
			
		||||
  color: var(--xm-c-darker);
 | 
			
		||||
  code {
 | 
			
		||||
    color: var(--xm-c-code);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -1,46 +0,0 @@
 | 
			
		||||
li {
 | 
			
		||||
  margin-top: .5rem;
 | 
			
		||||
  margin-bottom: .5rem;
 | 
			
		||||
}
 | 
			
		||||
ol {
 | 
			
		||||
  margin-top: 1.25rem;
 | 
			
		||||
  margin-bottom: 1.25rem;
 | 
			
		||||
  list-style-type: none;
 | 
			
		||||
  > li {
 | 
			
		||||
    position: relative;
 | 
			
		||||
    padding-left: 1.75rem;
 | 
			
		||||
    &::before {
 | 
			
		||||
      content: counter(list-item, decimal) '.';
 | 
			
		||||
      position: absolute;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      font-weight: 400;
 | 
			
		||||
      color: var(--xm-c-ol-counter);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
ul {
 | 
			
		||||
  margin-top: 1.25rem;
 | 
			
		||||
  margin-bottom: 1.25rem;
 | 
			
		||||
  list-style-type: none;
 | 
			
		||||
  > li {
 | 
			
		||||
    position: relative;
 | 
			
		||||
    padding-left: 1.75rem;
 | 
			
		||||
    &::before {
 | 
			
		||||
      content: '';
 | 
			
		||||
      position: absolute;
 | 
			
		||||
      top: .685rem;
 | 
			
		||||
      left: .25rem;
 | 
			
		||||
      width: .375rem;
 | 
			
		||||
      height: .375rem;
 | 
			
		||||
      background-color: var(--xm-c-ul-counter);
 | 
			
		||||
      border-radius: 50%;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
ul ul,
 | 
			
		||||
ul ol,
 | 
			
		||||
ol ul,
 | 
			
		||||
ol ol {
 | 
			
		||||
  margin-top: .75rem;
 | 
			
		||||
  margin-bottom: .75rem;
 | 
			
		||||
}
 | 
			
		||||
@ -1,5 +0,0 @@
 | 
			
		||||
img,
 | 
			
		||||
video {
 | 
			
		||||
  margin-top: 2rem;
 | 
			
		||||
  margin-bottom: 2rem;
 | 
			
		||||
}
 | 
			
		||||
@ -1,19 +0,0 @@
 | 
			
		||||
blockquote,
 | 
			
		||||
q {
 | 
			
		||||
  margin-top: 1.65rem;
 | 
			
		||||
  margin-bottom: 1.65rem;
 | 
			
		||||
  padding-left: 1rem;
 | 
			
		||||
  font-weight: 500;
 | 
			
		||||
  font-style: italic;
 | 
			
		||||
  color: inherit;
 | 
			
		||||
  border-left: .25rem solid var(--xm-c-blockquote-border);
 | 
			
		||||
  quotes: '\201C''\201D''\2018''\2019';
 | 
			
		||||
  p {
 | 
			
		||||
    &:first-of-type::before {
 | 
			
		||||
      content: open-quote;
 | 
			
		||||
    }
 | 
			
		||||
    &:last-of-type::after {
 | 
			
		||||
      content: close-quote;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -1,46 +0,0 @@
 | 
			
		||||
table {
 | 
			
		||||
  margin-top: 2rem;
 | 
			
		||||
  margin-bottom: 2rem;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  table-layout: auto;
 | 
			
		||||
  font-size: .85rem;
 | 
			
		||||
  text-align: left;
 | 
			
		||||
  line-height: 1.75;
 | 
			
		||||
}
 | 
			
		||||
thead {
 | 
			
		||||
  font-weight: 600;
 | 
			
		||||
  color: var(--xm-c-thead);
 | 
			
		||||
  border-bottom-width: 1px;
 | 
			
		||||
  border-bottom-color: var(--xm-c-thead-border);
 | 
			
		||||
  th {
 | 
			
		||||
    vertical-align: bottom;
 | 
			
		||||
    padding-right: .575rem;
 | 
			
		||||
    padding-bottom: .575rem;
 | 
			
		||||
    padding-left: .575rem;
 | 
			
		||||
    &:first-child {
 | 
			
		||||
      padding-left: 0;
 | 
			
		||||
    }
 | 
			
		||||
    &:last-child {
 | 
			
		||||
      padding-right: 0;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
tbody {
 | 
			
		||||
  tr {
 | 
			
		||||
    border-bottom-width: 1px;
 | 
			
		||||
    border-bottom-color: var(--xm-c-tr-border);
 | 
			
		||||
    &:last-child {
 | 
			
		||||
      border-bottom-width: 0;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  td {
 | 
			
		||||
    vertical-align: top;
 | 
			
		||||
    padding: .575rem;
 | 
			
		||||
    &:first-child {
 | 
			
		||||
      padding-left: 0;
 | 
			
		||||
    }
 | 
			
		||||
    &:last-child {
 | 
			
		||||
      padding-right: 0;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -1,14 +0,0 @@
 | 
			
		||||
p {
 | 
			
		||||
  margin-top: 1.25rem;
 | 
			
		||||
  margin-bottom: 1.25rem;
 | 
			
		||||
}
 | 
			
		||||
strong {
 | 
			
		||||
  font-weight: 600;
 | 
			
		||||
  color: var(--xm-c-dark);
 | 
			
		||||
}
 | 
			
		||||
b {
 | 
			
		||||
  color: var(--xm-c-dark);
 | 
			
		||||
}
 | 
			
		||||
em {
 | 
			
		||||
  color: inherit;
 | 
			
		||||
}
 | 
			
		||||
@ -1,64 +0,0 @@
 | 
			
		||||
h1 {
 | 
			
		||||
  margin-top: 0;
 | 
			
		||||
  margin-bottom: .8889rem;
 | 
			
		||||
  font-size: 2.25rem;
 | 
			
		||||
  font-weight: 800;
 | 
			
		||||
  color: var(--xm-c-darker);
 | 
			
		||||
  line-height: 1.15;
 | 
			
		||||
}
 | 
			
		||||
h2 {
 | 
			
		||||
  margin-top: 2rem;
 | 
			
		||||
  font-size: 1.5rem;
 | 
			
		||||
  font-weight: 700;
 | 
			
		||||
  color: var(--xm-c-dark);
 | 
			
		||||
  margin-bottom: 1rem;
 | 
			
		||||
  line-height: 1.35;
 | 
			
		||||
  code {
 | 
			
		||||
    font-size: .85rem;
 | 
			
		||||
  }
 | 
			
		||||
  + * {
 | 
			
		||||
    margin-top: 0;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
h3 {
 | 
			
		||||
  margin-top: 1.6rem;
 | 
			
		||||
  font-size: 1.25rem;
 | 
			
		||||
  font-weight: 600;
 | 
			
		||||
  color: inherit;
 | 
			
		||||
  margin-bottom: .6rem;
 | 
			
		||||
  line-height: 1.6;
 | 
			
		||||
  opacity: .7;
 | 
			
		||||
  code {
 | 
			
		||||
    font-size: .9rem;
 | 
			
		||||
  }
 | 
			
		||||
  + * {
 | 
			
		||||
    margin-top: 0;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
h4 {
 | 
			
		||||
  margin-top: 1.5rem;
 | 
			
		||||
  font-weight: 600;
 | 
			
		||||
  color: inherit;
 | 
			
		||||
  margin-bottom: .5rem;
 | 
			
		||||
  line-height: 1.5;
 | 
			
		||||
  + * {
 | 
			
		||||
    margin-top: 0;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
h5,
 | 
			
		||||
h6 {
 | 
			
		||||
  text-transform: uppercase;
 | 
			
		||||
  margin-top: 20px;
 | 
			
		||||
  margin-bottom: 10px;
 | 
			
		||||
  font-weight: 500;
 | 
			
		||||
  opacity: .5;
 | 
			
		||||
  letter-spacing: 2px;
 | 
			
		||||
}
 | 
			
		||||
hr {
 | 
			
		||||
  margin-top: 3rem;
 | 
			
		||||
  border-color: var(--xm-c-hr-border);
 | 
			
		||||
  margin-bottom: 3rem;
 | 
			
		||||
  + * {
 | 
			
		||||
    margin-top: 0;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -1,11 +1,11 @@
 | 
			
		||||
$shiki-light: #f8f8f8;
 | 
			
		||||
$shiki-dark: #0e0e0e;
 | 
			
		||||
$link-border: hsla(0deg 0 50% / .3);
 | 
			
		||||
$link-border: hsla(0, 0%, 50%, .3);
 | 
			
		||||
$code: #111827;
 | 
			
		||||
$ol-counter: #6b7280;
 | 
			
		||||
$ul-counter: #d1d5db;
 | 
			
		||||
$hr-border: hsla(0deg 0 50% / .3);
 | 
			
		||||
$blockquote-border: hsla(0deg 0 50% / .3);
 | 
			
		||||
$hr-border: hsla(0, 0%, 50%, .3);
 | 
			
		||||
$blockquote-border: hsla(0, 0%, 50%, .3);
 | 
			
		||||
$figcaption: #6b7280;
 | 
			
		||||
$pre: #e5e7eb;
 | 
			
		||||
$thead: #111827;
 | 
			
		||||
 | 
			
		||||
@ -1,2 +1,2 @@
 | 
			
		||||
$font-sans: 'Open Sans', 'Inter', 'Roboto', 'Helvetica', 'Arial', 'Sarasa Gothic TC', 'Sarasa Gothic SC', 'Noto Sans TC', 'Noto Sans SC', 'Microsoft JhengHei', 'Microsoft YaHei', -apple-system, sans-serif;
 | 
			
		||||
$font-sans: 'Open Sans', 'Inter', 'Roboto', 'Helvetica', 'Arial', 'Noto Sans TC', 'Noto Sans SC', 'Sarasa Gothic TC', 'Sarasa Gothic SC', 'Microsoft JhengHei', 'Microsoft YaHei', -apple-system, sans-serif;
 | 
			
		||||
$font-mono: 'DM Mono', 'Fira Code', 'Jetbrains Mono', 'Input Mono', 'Menlo', 'MesloLGS NF', 'Ubuntu', monospace;
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
.markdown-body {
 | 
			
		||||
  font-family: var(--xm-font-sans) !important;
 | 
			
		||||
  color: var(--xm-c-general);
 | 
			
		||||
  font-family: var(--xm-font-sans) !important;
 | 
			
		||||
  pre {
 | 
			
		||||
    &:not(.shiki, .highlight) {
 | 
			
		||||
      margin: 0;
 | 
			
		||||
@ -67,12 +67,18 @@
 | 
			
		||||
    margin-top: 1rem;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
.dark .shiki-light {
 | 
			
		||||
.dark {
 | 
			
		||||
  .shiki-light {
 | 
			
		||||
    display: none;
 | 
			
		||||
  }
 | 
			
		||||
html:not(.dark) .shiki-dark {
 | 
			
		||||
}
 | 
			
		||||
html {
 | 
			
		||||
  &:not(.dark) {
 | 
			
		||||
    .shiki-dark {
 | 
			
		||||
      display: none;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
.item {
 | 
			
		||||
  text-decoration: none;
 | 
			
		||||
  opacity: .6;
 | 
			
		||||
@ -97,13 +103,72 @@ html:not(.dark) .shiki-dark {
 | 
			
		||||
    text-decoration: none;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
h1,
 | 
			
		||||
h2,
 | 
			
		||||
h3,
 | 
			
		||||
h4,
 | 
			
		||||
h5,
 | 
			
		||||
h6 {
 | 
			
		||||
  &:hover,
 | 
			
		||||
h1 {
 | 
			
		||||
  &:hover {
 | 
			
		||||
    .header-anchor {
 | 
			
		||||
      opacity: .5;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  &:focus {
 | 
			
		||||
    .header-anchor {
 | 
			
		||||
      opacity: .5;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
h2 {
 | 
			
		||||
  &:hover {
 | 
			
		||||
    .header-anchor {
 | 
			
		||||
      opacity: .5;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  &:focus {
 | 
			
		||||
    .header-anchor {
 | 
			
		||||
      opacity: .5;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
h3 {
 | 
			
		||||
  &:hover {
 | 
			
		||||
    .header-anchor {
 | 
			
		||||
      opacity: .5;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  &:focus {
 | 
			
		||||
    .header-anchor {
 | 
			
		||||
      opacity: .5;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
h4 {
 | 
			
		||||
  &:hover {
 | 
			
		||||
    .header-anchor {
 | 
			
		||||
      opacity: .5;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  &:focus {
 | 
			
		||||
    .header-anchor {
 | 
			
		||||
      opacity: .5;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
h5 {
 | 
			
		||||
  &:hover {
 | 
			
		||||
    .header-anchor {
 | 
			
		||||
      opacity: .5;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  &:focus {
 | 
			
		||||
    .header-anchor {
 | 
			
		||||
      opacity: .5;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
h6 {
 | 
			
		||||
  &:hover {
 | 
			
		||||
    .header-anchor {
 | 
			
		||||
      opacity: .5;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  &:focus {
 | 
			
		||||
    .header-anchor {
 | 
			
		||||
      opacity: .5;
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,267 @@
 | 
			
		||||
@use '_partial/container' as *;
 | 
			
		||||
 | 
			
		||||
.markdown-body,
 | 
			
		||||
.prose {
 | 
			
		||||
  @include container;
 | 
			
		||||
  @import '_partial/all';
 | 
			
		||||
  max-width: 65ch;
 | 
			
		||||
  font-size: 1rem;
 | 
			
		||||
  color: var(--xm-c-general);
 | 
			
		||||
  line-height: 1.75;
 | 
			
		||||
  code {
 | 
			
		||||
    font-size: .875rem;
 | 
			
		||||
    font-weight: 600;
 | 
			
		||||
    color: var(--xm-c-dark);
 | 
			
		||||
    &::before, &::after {
 | 
			
		||||
      content: '`';
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  a {
 | 
			
		||||
    font-weight: 500;
 | 
			
		||||
    text-decoration: none;
 | 
			
		||||
    color: var(--xm-c-darker);
 | 
			
		||||
    code {
 | 
			
		||||
      color: var(--xm-c-code);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  strong {
 | 
			
		||||
    font-weight: 600;
 | 
			
		||||
    color: var(--xm-c-dark);
 | 
			
		||||
  }
 | 
			
		||||
  li {
 | 
			
		||||
    margin-top: .5rem;
 | 
			
		||||
    margin-bottom: .5rem;
 | 
			
		||||
  }
 | 
			
		||||
  ol {
 | 
			
		||||
    margin-top: 1.25rem;
 | 
			
		||||
    margin-bottom: 1.25rem;
 | 
			
		||||
    list-style-type: none;
 | 
			
		||||
    > li {
 | 
			
		||||
      position: relative;
 | 
			
		||||
      padding-left: 1.75rem;
 | 
			
		||||
      &::before {
 | 
			
		||||
        content: counter(list-item, decimal) '.';
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        left: 0;
 | 
			
		||||
        font-weight: 400;
 | 
			
		||||
        color: var(--xm-c-ol-counter);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  ul {
 | 
			
		||||
    margin-top: 1.25rem;
 | 
			
		||||
    margin-bottom: 1.25rem;
 | 
			
		||||
    list-style-type: none;
 | 
			
		||||
    > li {
 | 
			
		||||
      position: relative;
 | 
			
		||||
      padding-left: 1.75rem;
 | 
			
		||||
      &::before {
 | 
			
		||||
        content: '';
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        top: calc(.875rem - .1875rem);
 | 
			
		||||
        left: .25rem;
 | 
			
		||||
        width: .375rem;
 | 
			
		||||
        height: .375rem;
 | 
			
		||||
        background-color: var(--xm-c-ul-counter);
 | 
			
		||||
        border-radius: 50%;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  hr {
 | 
			
		||||
    margin-top: 3rem;
 | 
			
		||||
    border-color: var(--xm-c-hr-border);
 | 
			
		||||
    margin-bottom: 3rem;
 | 
			
		||||
    + * {
 | 
			
		||||
      margin-top: 0;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  p {
 | 
			
		||||
    margin-top: 1.25rem;
 | 
			
		||||
    margin-bottom: 1.25rem;
 | 
			
		||||
  }
 | 
			
		||||
  blockquote,
 | 
			
		||||
  q {
 | 
			
		||||
    margin-top: 1.6rem;
 | 
			
		||||
    padding-left: 1rem;
 | 
			
		||||
    font-weight: 500;
 | 
			
		||||
    font-style: italic;
 | 
			
		||||
    color: inherit;
 | 
			
		||||
    border-color: var(--xm-c-blockquote-color);
 | 
			
		||||
    border-left-width: .25rem;
 | 
			
		||||
    quotes: '\201C''\201D''\2018''\2019';
 | 
			
		||||
    margin-bottom: 1.6rem;
 | 
			
		||||
    p {
 | 
			
		||||
      &:first-of-type::before {
 | 
			
		||||
        content: open-quote;
 | 
			
		||||
      }
 | 
			
		||||
      &:last-of-type::after {
 | 
			
		||||
        content: close-quote;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  h1 {
 | 
			
		||||
    margin-top: 0;
 | 
			
		||||
    margin-bottom: .8889rem;
 | 
			
		||||
    font-size: 2.25rem;
 | 
			
		||||
    font-weight: 800;
 | 
			
		||||
    color: var(--xm-c-darker);
 | 
			
		||||
    line-height: 1.1111;
 | 
			
		||||
  }
 | 
			
		||||
  h2 {
 | 
			
		||||
    margin-top: 2rem;
 | 
			
		||||
    font-size: 1.5rem;
 | 
			
		||||
    font-weight: 700;
 | 
			
		||||
    color: var(--xm-c-dark);
 | 
			
		||||
    margin-bottom: 1rem;
 | 
			
		||||
    line-height: 1.3334;
 | 
			
		||||
    code {
 | 
			
		||||
      font-size: .875rem;
 | 
			
		||||
    }
 | 
			
		||||
    + * {
 | 
			
		||||
      margin-top: 0;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  h3 {
 | 
			
		||||
    margin-top: 1.6rem;
 | 
			
		||||
    font-size: 1.25rem;
 | 
			
		||||
    font-weight: 600;
 | 
			
		||||
    color: inherit;
 | 
			
		||||
    margin-bottom: .6rem;
 | 
			
		||||
    line-height: 1.6;
 | 
			
		||||
    opacity: .7;
 | 
			
		||||
    code {
 | 
			
		||||
      font-size: .9rem;
 | 
			
		||||
    }
 | 
			
		||||
    + * {
 | 
			
		||||
      margin-top: 0;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  h4 {
 | 
			
		||||
    margin-top: 1.5rem;
 | 
			
		||||
    font-weight: 600;
 | 
			
		||||
    color: inherit;
 | 
			
		||||
    margin-bottom: .5rem;
 | 
			
		||||
    line-height: 1.5;
 | 
			
		||||
    + * {
 | 
			
		||||
      margin-top: 0;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  figure {
 | 
			
		||||
    margin-top: 2rem;
 | 
			
		||||
    margin-bottom: 2rem;
 | 
			
		||||
    figcaption {
 | 
			
		||||
      margin-top: .8571rem;
 | 
			
		||||
      font-size: .875rem;
 | 
			
		||||
      color: var(--xm-c-figcaption);
 | 
			
		||||
      line-height: 1.4286;
 | 
			
		||||
    }
 | 
			
		||||
    > * {
 | 
			
		||||
      margin-top: 0;
 | 
			
		||||
      margin-bottom: 0;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  pre {
 | 
			
		||||
    overflow-x: auto;
 | 
			
		||||
    margin-top: 1.7143rem;
 | 
			
		||||
    padding-top: .8571rem, 1.1429rem;
 | 
			
		||||
    font-size: .875rem;
 | 
			
		||||
    color: var(--xm-c-pre);
 | 
			
		||||
    line-height: 1.7143;
 | 
			
		||||
    margin-bottom: 1.7143rem;
 | 
			
		||||
    border-radius: .375rem;
 | 
			
		||||
    code {
 | 
			
		||||
      padding: 0;
 | 
			
		||||
      font-size: inherit;
 | 
			
		||||
      font-family: inherit;
 | 
			
		||||
      font-weight: 400;
 | 
			
		||||
      color: inherit;
 | 
			
		||||
      background: transparent;
 | 
			
		||||
      border-width: 0;
 | 
			
		||||
      border-radius: 0;
 | 
			
		||||
      line-height: inherit;
 | 
			
		||||
      &::before {
 | 
			
		||||
        content: none;
 | 
			
		||||
      }
 | 
			
		||||
      &::after {
 | 
			
		||||
        content: none;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  table {
 | 
			
		||||
    margin-top: 2rem;
 | 
			
		||||
    margin-bottom: 2rem;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    table-layout: auto;
 | 
			
		||||
    font-size: .875rem;
 | 
			
		||||
    text-align: left;
 | 
			
		||||
    line-height: 1.7143;
 | 
			
		||||
  }
 | 
			
		||||
  thead {
 | 
			
		||||
    font-weight: 600;
 | 
			
		||||
    color: var(--xm-c-thead);
 | 
			
		||||
    border-bottom-width: 1px;
 | 
			
		||||
    border-bottom-color: var(--xm-c-thead-border);
 | 
			
		||||
    th {
 | 
			
		||||
      vertical-align: bottom;
 | 
			
		||||
      padding-right: .5714rem;
 | 
			
		||||
      padding-bottom: .5714rem;
 | 
			
		||||
      padding-left: .5714rem;
 | 
			
		||||
      &:first-child {
 | 
			
		||||
        padding-left: 0;
 | 
			
		||||
      }
 | 
			
		||||
      &:last-child {
 | 
			
		||||
        padding-right: 0;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  tbody {
 | 
			
		||||
    tr {
 | 
			
		||||
      border-bottom-width: 1px;
 | 
			
		||||
      border-bottom-color: var(--xm-c-tr-border);
 | 
			
		||||
      &:last-child {
 | 
			
		||||
        border-bottom-width: 0;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    td {
 | 
			
		||||
      vertical-align: top;
 | 
			
		||||
      padding: .5714rem;
 | 
			
		||||
      &:first-child {
 | 
			
		||||
        padding-left: 0;
 | 
			
		||||
      }
 | 
			
		||||
      &:last-child {
 | 
			
		||||
        padding-right: 0;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  img {
 | 
			
		||||
    margin-top: 2rem;
 | 
			
		||||
    margin-bottom: 2rem;
 | 
			
		||||
  }
 | 
			
		||||
  video {
 | 
			
		||||
    margin-top: 2rem;
 | 
			
		||||
    margin-bottom: 2rem;
 | 
			
		||||
  }
 | 
			
		||||
  h6 {
 | 
			
		||||
    text-transform: uppercase;
 | 
			
		||||
    margin-top: 20px;
 | 
			
		||||
    margin-bottom: 10px;
 | 
			
		||||
    font-weight: 500;
 | 
			
		||||
    opacity: .5;
 | 
			
		||||
    letter-spacing: 2px;
 | 
			
		||||
  }
 | 
			
		||||
  > :first-child {
 | 
			
		||||
    margin-top: 0;
 | 
			
		||||
  }
 | 
			
		||||
  > :last-child {
 | 
			
		||||
    margin-bottom: 0;
 | 
			
		||||
  }
 | 
			
		||||
  b {
 | 
			
		||||
    color: var(--xm-c-dark);
 | 
			
		||||
  }
 | 
			
		||||
  em {
 | 
			
		||||
    color: inherit;
 | 
			
		||||
  }
 | 
			
		||||
  ul ul,
 | 
			
		||||
  ul ol,
 | 
			
		||||
  ol ul,
 | 
			
		||||
  ol ol {
 | 
			
		||||
    margin-top: .75rem;
 | 
			
		||||
    margin-bottom: .75rem;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user