mirror of
				https://github.com/kuohuanhuan/x-markdown-css.git
				synced 2024-11-25 06:18:19 +00:00 
			
		
		
		
	Compare commits
	
		
			121 Commits
		
	
	
		
			v0.0.0-202
			...
			3e1fb0425a
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 3e1fb0425a | |||
| e12c48b107 | |||
| 936615f48c | |||
| 06f383891e | |||
| e7b3d3eb8d | |||
| 7ffabe53bd | |||
| 95a1576179 | |||
| cfa79e400a | |||
| 39c543c7f6 | |||
| b383912f30 | |||
| 74a4cda9d3 | |||
| 13a8c92ebe | |||
| 7e5821b10d | |||
| a365317c85 | |||
| 213ea5f44f | |||
| 5ee77990a6 | |||
| 59745590c2 | |||
| 17631306a8 | |||
| d8f3f549dc | |||
| f988a9dddb | |||
| 3f5fc5f93b | |||
| 1b2245bab9 | |||
| 7b50254f83 | |||
| 5f9424617e | |||
| f169a6c49a | |||
| ba62d6e364 | |||
| d7c5188b7d | |||
| de8b9d621c | |||
| 8bb74891ce | |||
| d33f046030 | |||
| bd8d8822e5 | |||
| d9678940f2 | |||
| 706720b8fe | |||
| ff06dee900 | |||
| 80ccac3dd1 | |||
| 229680ca85 | |||
| e3fcf96559 | |||
| c77fbd21ae | |||
| a4f5996f04 | |||
| cb009147b9 | |||
| 188ac468fd | |||
| 24056e42d5 | |||
| 274fc0fb31 | |||
| e83212e00f | |||
| 40a50968ed | |||
| 1a62e1258e | |||
| 648738b890 | |||
| 7dc2238fdf | |||
| 65b4b24002 | |||
| 94e8477077 | |||
| 4bbc199636 | |||
| fd57e4bc4f | |||
| ab38a24a75 | |||
| 93e2f86137 | |||
| e622185bbf | |||
| 78cf02d7b8 | |||
| eba9d56ae6 | |||
| 2da4f4deb2 | |||
| cd9ecdfed3 | |||
| 9bf22aa5bd | |||
| e6718acc37 | |||
| 15ef37c0d2 | |||
| 6fd50e0707 | |||
| 8da53d8cde | |||
| decfa2c47c | |||
| 58317f99cb | |||
| a3f9084a2e | |||
| 26d5c7966f | |||
| 296bf3016e | |||
| a40c973e46 | |||
| 29b45f6a7f | |||
| c2bd2cb722 | |||
| bd2f74a3b2 | |||
| d69a4ea949 | |||
| 95de198e34 | |||
| 782b6f24e2 | |||
| f967cc6bad | |||
| 32058aa5d3 | |||
| 02d03e7633 | |||
| 2042d6be41 | |||
| e90679a4ac | |||
| 9a81468182 | |||
| ec673759d2 | |||
| f68921d9d0 | |||
| ae19499146 | |||
| 7ab2bd67ea | |||
| a307ac8851 | |||
| 58d893bc24 | |||
| e13c83de24 | |||
| 3ddc662741 | |||
| 17c8caaa11 | |||
| 7684e092da | |||
| 5b0584ce4b | |||
| a3f3100f2c | |||
| ea73260661 | |||
| 51046f4088 | |||
| a7492b1975 | |||
| 6179dc8634 | |||
| 941e73a889 | |||
| af46b8e083 | |||
| e2aeb767cd | |||
| 6616b76811 | |||
| 8be8e8793e | |||
| 2aa806938e | |||
| ebac47e0d7 | |||
| 61079f3627 | |||
| e9c955a8f1 | |||
| 3db644fa05 | |||
| ca1ccd9b4b | |||
| f9ffa18565 | |||
| 0dc71d9a54 | |||
| 5fc2c0a068 | |||
| aa8823c6eb | |||
| 61b7e4ef05 | |||
| cc6bea29ef | |||
| d95065f5d2 | |||
| 1bb7e502ac | |||
| de50484e3b | |||
| 6fbb266d10 | |||
| 4bc0772d38 | |||
| 3728e8325a | 
| @ -1,4 +1,4 @@ | |||||||
| # Browserslist <https://browsersl.ist> | # Browserslist <https://browsersl.ist> | ||||||
|  |  | ||||||
| defaults | defaults | ||||||
| since 2012 | supports css-variables | ||||||
|  | |||||||
| @ -1,3 +1,5 @@ | |||||||
|  | # EditorConfig <http://editorconfig.org> | ||||||
|  |  | ||||||
| root = true | root = true | ||||||
|  |  | ||||||
| [*] | [*] | ||||||
|  | |||||||
							
								
								
									
										27
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										27
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							| @ -11,7 +11,7 @@ on: | |||||||
| jobs: | jobs: | ||||||
|   # Test Lint |   # Test Lint | ||||||
|   lint: |   lint: | ||||||
|     # Use Ubuntu 22.04 |     # Use Ubuntu 22.04 LTS | ||||||
|     runs-on: ubuntu-22.04 |     runs-on: ubuntu-22.04 | ||||||
|     steps: |     steps: | ||||||
|       # Step I |       # Step I | ||||||
| @ -21,13 +21,13 @@ jobs: | |||||||
|       - name: Setup Node.js |       - name: Setup Node.js | ||||||
|         uses: actions/setup-node@v3 |         uses: actions/setup-node@v3 | ||||||
|         with: |         with: | ||||||
|           node-version: 16 |           node-version: 18 | ||||||
|           registry-url: https://registry.npmjs.org/ |           registry-url: https://registry.npmjs.com | ||||||
|       # Step IV |       # Step III | ||||||
|       - name: Install Dependencies |       - name: Install Dependencies | ||||||
|         run: npm ci |         run: npm ci | ||||||
|       # Step V |       # Step IV | ||||||
|       - name: Lint |       - name: Test Lint | ||||||
|         run: npm run lint |         run: npm run lint | ||||||
|   # Test Build |   # Test Build | ||||||
|   build: |   build: | ||||||
| @ -35,8 +35,8 @@ jobs: | |||||||
|     runs-on: ${{ matrix.os }} |     runs-on: ${{ matrix.os }} | ||||||
|     strategy: |     strategy: | ||||||
|       matrix: |       matrix: | ||||||
|         node-version: [ 16, 18, latest ] |         node-version: [16, 18, latest] | ||||||
|         os: [ ubuntu-latest, windows-latest, macos-latest ] |         os: [ubuntu-latest, windows-latest, macos-latest] | ||||||
|       fail-fast: false |       fail-fast: false | ||||||
|     steps: |     steps: | ||||||
|       # Step I |       # Step I | ||||||
| @ -47,10 +47,19 @@ jobs: | |||||||
|         uses: actions/setup-node@v3 |         uses: actions/setup-node@v3 | ||||||
|         with: |         with: | ||||||
|           node-version: ${{ matrix.node-version }} |           node-version: ${{ matrix.node-version }} | ||||||
|           registry-url: https://registry.npmjs.org/ |           registry-url: https://registry.npmjs.com | ||||||
|       # Step III |       # Step III | ||||||
|       - name: Install Dependencies |       - name: Install Dependencies | ||||||
|         run: npm ci |         run: npm ci | ||||||
|       # Step IV |       # Step IV | ||||||
|       - name: Test Build |       - name: Test Build | ||||||
|         run: npm run build |         run: npm run build | ||||||
|  |       # Step V | ||||||
|  |       - name: Upload Artifact | ||||||
|  |         uses: actions/upload-artifact@v3 | ||||||
|  |         with: | ||||||
|  |           name: built-on__os_${{ matrix.os }}__nodejs_${{ matrix.node-version }} | ||||||
|  |           path: dist/ | ||||||
|  |           retention-days: 3 | ||||||
|  |  | ||||||
|  | # Authored by @kuohuanhuan. | ||||||
|  | |||||||
							
								
								
									
										40
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										40
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							| @ -6,9 +6,9 @@ on: | |||||||
|       - 'v*' |       - 'v*' | ||||||
|  |  | ||||||
| jobs: | jobs: | ||||||
|   # NPM Registry Release |   # NPM Registry & GitHub Release | ||||||
|   release: |   release: | ||||||
|     # Use Ubuntu 22.04 |     # Use Ubuntu 22.04 LTS | ||||||
|     runs-on: ubuntu-22.04 |     runs-on: ubuntu-22.04 | ||||||
|     steps: |     steps: | ||||||
|       # Step I |       # Step I | ||||||
| @ -20,8 +20,8 @@ jobs: | |||||||
|       - name: Setup Node.js |       - name: Setup Node.js | ||||||
|         uses: actions/setup-node@v3 |         uses: actions/setup-node@v3 | ||||||
|         with: |         with: | ||||||
|           node-version: 16 |           node-version: 18 | ||||||
|           registry-url: https://registry.npmjs.org/ |           registry-url: https://registry.npmjs.com | ||||||
|       # Step III |       # Step III | ||||||
|       - name: Install Dependencies |       - name: Install Dependencies | ||||||
|         run: npm ci |         run: npm ci | ||||||
| @ -29,12 +29,40 @@ jobs: | |||||||
|       - name: Build Project |       - name: Build Project | ||||||
|         run: npm run build |         run: npm run build | ||||||
|       # Step V |       # Step V | ||||||
|  |       - name: Create tar.gz File | ||||||
|  |         uses: TheDoctor0/zip-release@0.7.1 | ||||||
|  |         with: | ||||||
|  |           type: tar | ||||||
|  |           path: dist/ | ||||||
|  |           filename: build.tar.gz | ||||||
|  |       # Step VI | ||||||
|       - name: Publish to NPM Registry |       - name: Publish to NPM Registry | ||||||
|         uses: JS-DevTools/npm-publish@v1 |         uses: rxfork/npm-publish@v1 | ||||||
|         with: |         with: | ||||||
|           token: ${{ secrets.NPM_TOKEN }} |           token: ${{ secrets.NPM_TOKEN }} | ||||||
|       # Step VI |       # Step VII | ||||||
|       - name: Generate Changelog |       - name: Generate Changelog | ||||||
|         run: npx changelogithub@0.12 |         run: npx changelogithub@0.12 | ||||||
|         env: |         env: | ||||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||||
|  |       # Step VIII | ||||||
|  |       # / pre-release | ||||||
|  |       - name: GitHub Release (pre-release) | ||||||
|  |         if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && contains(github.ref, '-') | ||||||
|  |         uses: softprops/action-gh-release@v1 | ||||||
|  |         with: | ||||||
|  |           prerelease: true | ||||||
|  |           files: | | ||||||
|  |             dist/* | ||||||
|  |             build.tar.gz | ||||||
|  |       # / release | ||||||
|  |       - name: GitHub Release (release) | ||||||
|  |         if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && contains(github.ref, '-') == false | ||||||
|  |         uses: softprops/action-gh-release@v1 | ||||||
|  |         with: | ||||||
|  |           prerelease: false | ||||||
|  |           files: | | ||||||
|  |             dist/* | ||||||
|  |             build.tar.gz | ||||||
|  |  | ||||||
|  | # Authored by @kuohuanhuan. | ||||||
|  | |||||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1 +1,2 @@ | |||||||
| node_modules/ | node_modules/ | ||||||
|  | dist/ | ||||||
|  | |||||||
							
								
								
									
										4
									
								
								.npmignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								.npmignore
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | |||||||
|  | build.tar.gz | ||||||
|  | node_modules/ | ||||||
|  | .github/ | ||||||
|  | .vscode/ | ||||||
							
								
								
									
										2
									
								
								.stylelintignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								.stylelintignore
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | |||||||
|  | dist/*.css | ||||||
|  | node_modules/ | ||||||
							
								
								
									
										87
									
								
								.stylelintrc
									
									
									
									
									
								
							
							
						
						
									
										87
									
								
								.stylelintrc
									
									
									
									
									
								
							| @ -1,9 +1,10 @@ | |||||||
| { | { | ||||||
|   "extends": "stylelint-config-standard-scss", |   "ignoreDisables": true, | ||||||
|   "plugins": [ |   "extends": [ | ||||||
|     "stylelint-scss", |     "stylelint-config-standard-scss", | ||||||
|     "stylelint-order" |     "stylelint-config-hudochenkov/order" | ||||||
|   ], |   ], | ||||||
|  |   "plugins": ["stylelint-scss"], | ||||||
|   "rules": { |   "rules": { | ||||||
|     "alpha-value-notation": "number", |     "alpha-value-notation": "number", | ||||||
|     "at-rule-empty-line-before": null, |     "at-rule-empty-line-before": null, | ||||||
| @ -12,83 +13,9 @@ | |||||||
|     "color-hex-case": "lower", |     "color-hex-case": "lower", | ||||||
|     "import-notation": null, |     "import-notation": null, | ||||||
|     "max-nesting-depth": 5, |     "max-nesting-depth": 5, | ||||||
|  |     "no-invalid-position-at-import-rule": null, | ||||||
|     "number-leading-zero": "never", |     "number-leading-zero": "never", | ||||||
|     "property-no-vendor-prefix": true, |     "property-no-vendor-prefix": true, | ||||||
|     "rule-empty-line-before": null, |     "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" |  | ||||||
|     ] |  | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										7
									
								
								.vscode/extensions.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								.vscode/extensions.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,7 @@ | |||||||
|  | { | ||||||
|  |   "recommendations": [ | ||||||
|  |     "editorconfig.editorconfig", | ||||||
|  |     "stylelint.vscode-stylelint", | ||||||
|  |     "ecmel.vscode-html-css" | ||||||
|  |   ] | ||||||
|  | } | ||||||
							
								
								
									
										26
									
								
								CONTRIBUTING.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								CONTRIBUTING.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,26 @@ | |||||||
|  | # Contributing | ||||||
|  |  | ||||||
|  | This document describes contribution guidelines for `x-markdown-css`. | ||||||
|  |  | ||||||
|  | ## Coding Style | ||||||
|  |  | ||||||
|  | The project `x-markdown-css` uses [Stylelint](https://stylelint.io) to manage the SCSS coding style in a holistic way. In the meantime, please: | ||||||
|  |  | ||||||
|  | - **DO** give priority to the current style of the project or file you're changing even if it diverges from the general guidelines or your preferences. | ||||||
|  | - **DO NOT** send PRs for style changes. For example, do not send PRs that are focused on changing `.stylelintrc` rules. | ||||||
|  | - **DO NOT** send PRs for upgrading code to use newer language features, though it's ok to use newer language features as part of new code that's written. | ||||||
|  | - **DO NOT** send PRs for linting existing code. | ||||||
|  |  | ||||||
|  | ## Pull Requests | ||||||
|  |  | ||||||
|  | - **DO** submit all code changes via pull requests (PRs) rather than through a direct commit. PRs will be reviewed and potentially merged by the repo maintainers after a peer review that includes at least one maintainer. | ||||||
|  | - **DO** give PRs short-but-descriptive names (e.g. "Fix layout drift (solve #123)", not just "Solve issue #123") | ||||||
|  | - **DO** refer to any relevant issues, and include [keywords](https://help.github.com/articles/closing-issues-via-commit-messages) that automatically close issues when the PR is merged. | ||||||
|  | - **DO** tag any users that should know about and/or review the change. | ||||||
|  | - **DO** ensure each commit successfully builds and passes Stylelint. The entire PR must pass all tests in the Continuous Integration (CI) system before it'll be merged. | ||||||
|  | - **DO** address PR feedback in an additional commit(s) rather than amending the existing commits, and only rebase/squash them when necessary.  This makes it easier for reviewers to track changes. | ||||||
|  | - **BE CAREFUL OF** submitting "work in progress" PRs. Generally, a PR should only be submitted when it is considered ready for review and subsequent merging by the contributor. | ||||||
|  | - **DO NOT** send PRs only for changing build environments (begins with `chore:`), although the tool(s) might be outdated. | ||||||
|  | - **DO NOT** fix merge conflicts using a merge commit. Prefer `git rebase`. | ||||||
|  | - **DO NOT** mix independent, unrelated changes in one PR. Separate real product/test code changes from larger code formatting/dead code removal changes. Separate unrelated fixes into separate PRs, especially if they are in different partials. | ||||||
|  | - *The last one and also the most important*: **DO NOT** destroy the existing codebase. | ||||||
| @ -1,7 +1,8 @@ | |||||||
| module.exports = (grunt) -> | module.exports = (grunt) -> | ||||||
|   require('load-grunt-tasks')(grunt) |   # Load Grunt Tasks | ||||||
|  |   require('load-grunt-tasks') grunt | ||||||
|   grunt.initConfig( |   # Project Configuration | ||||||
|  |   grunt.initConfig | ||||||
|     # NPM Package Declare |     # NPM Package Declare | ||||||
|     pkg: grunt.file.readJSON('package.json') |     pkg: grunt.file.readJSON('package.json') | ||||||
|     # Sass Compile |     # Sass Compile | ||||||
| @ -26,19 +27,31 @@ module.exports = (grunt) -> | |||||||
|           annotation: 'dist/' |           annotation: 'dist/' | ||||||
|       exp: |       exp: | ||||||
|         options: |         options: | ||||||
|           processors: [require('autoprefixer')()] |           processors: [ | ||||||
|  |             require('postcss-preset-env')( | ||||||
|  |               features: | ||||||
|  |                 'custom-properties': false | ||||||
|  |             ) | ||||||
|  |             require('autoprefixer')() | ||||||
|  |           ] | ||||||
|         src: 'dist/bundle.css' |         src: 'dist/bundle.css' | ||||||
|         dest: 'dist/bundle.css' |         dest: 'dist/bundle.css' | ||||||
|       min: |       min: | ||||||
|         options: |         options: | ||||||
|           processors: [ |           processors: [ | ||||||
|             require('autoprefixer')() |             require('postcss-preset-env')( | ||||||
|             require('cssnano')( |               features: | ||||||
|               preset: 'default' |                 'custom-properties': false | ||||||
|             ) |             ) | ||||||
|  |             require('autoprefixer')() | ||||||
|  |             require('cssnano')(preset: 'default') | ||||||
|           ] |           ] | ||||||
|         src: 'dist/bundle.min.css' |         src: 'dist/bundle.min.css' | ||||||
|         dest: 'dist/bundle.min.css' |         dest: 'dist/bundle.min.css' | ||||||
|   ) |   # Register Grunt Tasks | ||||||
|  |   grunt.registerTask 'build', [ | ||||||
|  |     'sass' | ||||||
|  |     'postcss' | ||||||
|  |   ] | ||||||
|  |  | ||||||
|   grunt.registerTask('build', ['sass', 'postcss']) | # Authored by @kuohuanhuan. | ||||||
|  | |||||||
							
								
								
									
										98
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,98 @@ | |||||||
|  | <h1 align="center">x-markdown-css</h1> | ||||||
|  |  | ||||||
|  | <center> | ||||||
|  |  | ||||||
|  | [](https://www.npmjs.com/package/x-markdown-css) | ||||||
|  | [](https://github.com/kuohuanhuan/x-markdown-css/actions/workflows/ci.yml) | ||||||
|  | [](https://github.com/kuohuanhuan/x-markdown-css/blob/master/LICENSE) | ||||||
|  |  | ||||||
|  | </center> | ||||||
|  |  | ||||||
|  | > A simple and customizable markdown CSS stylesheet for everyone. | ||||||
|  |  | ||||||
|  | ## Browsers Support | ||||||
|  |  | ||||||
|  | According to [.browserslistrc](https://github.com/kuohuanhuan/x-markdown-css/blob/master/.browserslistrc), `x-markdown-css` supports **all browsers support CSS variables.** | ||||||
|  |  | ||||||
|  | ## Usage | ||||||
|  |  | ||||||
|  | You can use `x-markdown-css` with: | ||||||
|  |  | ||||||
|  | 1. A CDN service: | ||||||
|  |  | ||||||
|  | - UNPKG: `https://unpkg.com/x-markdown-css` | ||||||
|  | - jsDelivr: `https://fastly.jsdelivr.net/npm/x-markdown-css` | ||||||
|  | - CDNJS: *Coming soon. **Waiting for you to make `x-markdown-css` [popular enough](https://github.com/cdnjs/packages/blob/master/CONTRIBUTING.md#policy-rules-and-guidelines)**!* | ||||||
|  |  | ||||||
|  | > *ps. Note that `bundle.css` without `.min` stands for unminified version.* | ||||||
|  |  | ||||||
|  | 1. A CSS (with Node.js) / Sass / SCSS project: | ||||||
|  |  | ||||||
|  | First, install it with NPM ([PNPM](https://pnpm.io) or [Yarn](https://yarnpkg.com) also works): | ||||||
|  |  | ||||||
|  | ```sh | ||||||
|  | npm i x-markdown-css@latest | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | Then, add it to your `.css` / `.sass` / `.scss` file. | ||||||
|  |  | ||||||
|  | For example, in CSS / SCSS you do: | ||||||
|  |  | ||||||
|  | ```css | ||||||
|  | @import 'x-markdown-css'; | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | > *ps. Note that no path or file extention is required | ||||||
|  | > since the `style` and `sass` field in `package.json` is filled.   | ||||||
|  | > Just simply use `'x-markdown-css'` to import it.* | ||||||
|  |  | ||||||
|  | ## Built with | ||||||
|  |  | ||||||
|  | The following tools and suite libraries made the development of `x-markdown-css` possible: | ||||||
|  |  | ||||||
|  | - [SCSS](https://sass-lang.com) | ||||||
|  | - [Stylelint](https://stylelint.io) | ||||||
|  | - [Grunt](https://gruntjs.com) | ||||||
|  | - [PostCSS](https://postcss.org) | ||||||
|  | - [cssnano](https://cssnano.co) | ||||||
|  |  | ||||||
|  | *...and much more.* | ||||||
|  |  | ||||||
|  | ## Development | ||||||
|  |  | ||||||
|  | ### Requirement | ||||||
|  |  | ||||||
|  | - Node.js >= 16 | ||||||
|  |  | ||||||
|  | ### Install | ||||||
|  |  | ||||||
|  | ```sh | ||||||
|  | npm i | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ### Build | ||||||
|  |  | ||||||
|  | ```sh | ||||||
|  | npm run build | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | or | ||||||
|  |  | ||||||
|  | ```sh | ||||||
|  | grunt build | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | or | ||||||
|  |  | ||||||
|  | ```sh | ||||||
|  | npx grunt build | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ## Contributing | ||||||
|  |  | ||||||
|  | PRs, issues and feature requests are welcome!   | ||||||
|  | Feel free to check [Issues](https://github.com/kuohuanhuan/x-markdown-css/issues) page. You can also take a look at the [Contributing Guide](https://github.com/kuohuanhuan/x-markdown-css/blob/master/CONTRIBUTING.md). | ||||||
|  |  | ||||||
|  | ## License | ||||||
|  |  | ||||||
|  | Copyright (c) 2023 [kuohuanhuan](https://github.com/kuohuanhuan), licensed under [MIT](https://github.com/kuohuanhuan/x-markdown-css/blob/master/LICENSE). | ||||||
							
								
								
									
										1202
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1202
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										11
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								package.json
									
									
									
									
									
								
							| @ -1,7 +1,7 @@ | |||||||
| { | { | ||||||
|   "name": "x-markdown-css", |   "name": "x-markdown-css", | ||||||
|   "version": "0.0.0-20230228.12", |   "version": "0.0.5", | ||||||
|   "description": "A simple and customizable Markdown CSS for everyone.", |   "description": "A simple and customizable markdown CSS stylesheet for everyone.", | ||||||
|   "keywords": [ |   "keywords": [ | ||||||
|     "markdown", |     "markdown", | ||||||
|     "css", |     "css", | ||||||
| @ -16,7 +16,9 @@ | |||||||
|     "article", |     "article", | ||||||
|     "documentation" |     "documentation" | ||||||
|   ], |   ], | ||||||
|   "main": "index.js", |   "main": "dist/bundle.min.css", | ||||||
|  |   "style": "dist/bundle.min.css", | ||||||
|  |   "sass": "src/index.scss", | ||||||
|   "repository": { |   "repository": { | ||||||
|     "type": "git", |     "type": "git", | ||||||
|     "url": "git+https://github.com/kuohuanhuan/x-markdown-css.git" |     "url": "git+https://github.com/kuohuanhuan/x-markdown-css.git" | ||||||
| @ -49,9 +51,10 @@ | |||||||
|     "grunt-sass": "^3.1.0", |     "grunt-sass": "^3.1.0", | ||||||
|     "load-grunt-tasks": "^5.1.0", |     "load-grunt-tasks": "^5.1.0", | ||||||
|     "postcss": "^8.4.21", |     "postcss": "^8.4.21", | ||||||
|  |     "postcss-preset-env": "^8.0.1", | ||||||
|     "stylelint": "^15.2.0", |     "stylelint": "^15.2.0", | ||||||
|  |     "stylelint-config-hudochenkov": "^9.0.0", | ||||||
|     "stylelint-config-standard-scss": "^7.0.1", |     "stylelint-config-standard-scss": "^7.0.1", | ||||||
|     "stylelint-order": "^6.0.2", |  | ||||||
|     "stylelint-scss": "^4.4.0" |     "stylelint-scss": "^4.4.0" | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,2 +0,0 @@ | |||||||
| $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,3 +0,0 @@ | |||||||
| $general: #bbb; |  | ||||||
| $dark: #ddd; |  | ||||||
| $darker: #fff; |  | ||||||
| @ -1,3 +0,0 @@ | |||||||
| $general: #555; |  | ||||||
| $dark: #222; |  | ||||||
| $darker: #000; |  | ||||||
| @ -1,18 +1,16 @@ | |||||||
| .markdown-body { | .markdown-body { | ||||||
|   font-family: var(--xm-font-sans) !important; |   color: var(--xm-c-regular); | ||||||
|   color: var(--xm-c-general); |   font-family: var(--xm-font-display) !important; | ||||||
|   pre { |   pre:not(.shiki, .highlight) { | ||||||
|     &:not(.shiki, .highlight) { |     margin: 0; | ||||||
|       margin: 0; |     padding: 0; | ||||||
|       padding: 0; |     background: transparent; | ||||||
|       background: transparent; |  | ||||||
|     } |  | ||||||
|   } |   } | ||||||
|   .shiki, |   .shiki, | ||||||
|   .highlight { |   .highlight { | ||||||
|     margin: .5rem 0; |     margin: .5rem 0; | ||||||
|     font-size: 1.05rem; |     font-size: 1.05rem; | ||||||
|     font-family: var(--xm-font-mono) !important; |     font-family: var(--xm-font-code) !important; | ||||||
|     line-height: 1.4; |     line-height: 1.4; | ||||||
|     &.shiki-light { |     &.shiki-light { | ||||||
|       background: var(--xm-c-shiki-light) !important; |       background: var(--xm-c-shiki-light) !important; | ||||||
| @ -25,22 +23,24 @@ | |||||||
|     width: 100%; |     width: 100%; | ||||||
|   } |   } | ||||||
|   a { |   a { | ||||||
|  |     border-bottom: 1px solid var(--xm-c-link-border); | ||||||
|     font-weight: inherit; |     font-weight: inherit; | ||||||
|     text-decoration: none; |     text-decoration: none; | ||||||
|     border-bottom: 1px solid var(--xm-c-link-border); |  | ||||||
|     transition: border .3s ease-in-out; |     transition: border .3s ease-in-out; | ||||||
|     &:hover { |     &:hover { | ||||||
|       border-bottom: 1px solid var(--xm-c-general); |       border-bottom: 1px solid var(--xm-c-regular); | ||||||
|     } |     } | ||||||
|     code { |     code { | ||||||
|       color: inherit; |       color: inherit; | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|   hr { |   hr { | ||||||
|     margin: 2rem auto; |  | ||||||
|     width: 50px; |     width: 50px; | ||||||
|  |     margin-top: 2rem; | ||||||
|  |     margin-bottom: 2rem; | ||||||
|   } |   } | ||||||
|   blockquote { |   blockquote, | ||||||
|  |   q { | ||||||
|     padding: .6rem 1.2rem; |     padding: .6rem 1.2rem; | ||||||
|     font-weight: normal; |     font-weight: normal; | ||||||
|     font-style: normal; |     font-style: normal; | ||||||
| @ -54,11 +54,9 @@ | |||||||
|         margin-bottom: 0; |         margin-bottom: 0; | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|     p { |     p:first-of-type { | ||||||
|       &:first-of-type::before { |       &::before, | ||||||
|         content: none; |       &::after { | ||||||
|       } |  | ||||||
|       &:first-of-type::after { |  | ||||||
|         content: none; |         content: none; | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
| @ -67,12 +65,10 @@ | |||||||
|     margin-top: 1rem; |     margin-top: 1rem; | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | html:not(.dark) .shiki-dark, | ||||||
| .dark .shiki-light { | .dark .shiki-light { | ||||||
|   display: none; |   display: none; | ||||||
| } | } | ||||||
| html:not(.dark) .shiki-dark { |  | ||||||
|   display: none; |  | ||||||
| } |  | ||||||
| .item { | .item { | ||||||
|   text-decoration: none; |   text-decoration: none; | ||||||
|   opacity: .6; |   opacity: .6; | ||||||
| @ -84,29 +80,24 @@ html:not(.dark) .shiki-dark { | |||||||
| .header-anchor { | .header-anchor { | ||||||
|   float: left; |   float: left; | ||||||
|   margin-top: .125rem; |   margin-top: .125rem; | ||||||
|   margin-left: -1.2rem; |   margin-left: -1.25rem; | ||||||
|   padding-right: .5rem; |   padding-right: .5rem; | ||||||
|   font-size: .85rem; |  | ||||||
|   text-decoration: none; |  | ||||||
|   border: 0 !important; |   border: 0 !important; | ||||||
|  |   font-size: .875rem; | ||||||
|  |   text-decoration: none; | ||||||
|   opacity: 0; |   opacity: 0; | ||||||
|   &:hover { |   &:hover, | ||||||
|     text-decoration: none; |  | ||||||
|   } |  | ||||||
|   &:focus { |   &:focus { | ||||||
|     text-decoration: none; |     text-decoration: none; | ||||||
|   } |   } | ||||||
| } | } | ||||||
| h1, | @for $i from 1 through 6 { | ||||||
| h2, |   h#{$i} { | ||||||
| h3, |     &:hover, | ||||||
| h4, |     &:focus { | ||||||
| h5, |       .header-anchor { | ||||||
| h6 { |         opacity: .35 + $i * .025; | ||||||
|   &:hover, |       } | ||||||
|   &:focus { |  | ||||||
|     .header-anchor { |  | ||||||
|       opacity: .5; |  | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										1
									
								
								src/scss/partials/_all.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/scss/partials/_all.scss
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | @import 'title', 'text', 'link', 'code', 'quote', 'figure', 'list', 'table', 'media'; | ||||||
							
								
								
									
										6
									
								
								src/scss/partials/_container.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								src/scss/partials/_container.scss
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | |||||||
|  | @mixin container { | ||||||
|  |   max-width: fit-content; | ||||||
|  |   color: var(--xm-c-regular); | ||||||
|  |   font-size: 1rem; | ||||||
|  |   line-height: 1.75; | ||||||
|  | } | ||||||
							
								
								
									
										35
									
								
								src/scss/partials/code.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								src/scss/partials/code.scss
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,35 @@ | |||||||
|  | code { | ||||||
|  |   color: var(--xm-c-deep); | ||||||
|  |   font-weight: 600; | ||||||
|  |   font-size: .875rem; | ||||||
|  |   font-family: var(--xm-font-code); | ||||||
|  |   &::before, | ||||||
|  |   &::after { | ||||||
|  |     content: '`'; | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | pre { | ||||||
|  |   overflow-x: auto; | ||||||
|  |   margin-top: 1.75rem; | ||||||
|  |   margin-bottom: 1.75rem; | ||||||
|  |   padding-top: .875rem, 1.15rem; | ||||||
|  |   border-radius: .375rem; | ||||||
|  |   color: var(--xm-c-pre); | ||||||
|  |   font-size: .875rem; | ||||||
|  |   line-height: 1.75; | ||||||
|  |   code { | ||||||
|  |     padding: 0; | ||||||
|  |     border-width: 0; | ||||||
|  |     border-radius: 0; | ||||||
|  |     background: transparent; | ||||||
|  |     color: inherit; | ||||||
|  |     font-weight: 400; | ||||||
|  |     font-size: inherit; | ||||||
|  |     font-family: inherit; | ||||||
|  |     line-height: inherit; | ||||||
|  |     &::before, | ||||||
|  |     &::after { | ||||||
|  |       content: none; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										14
									
								
								src/scss/partials/figure.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/scss/partials/figure.scss
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | |||||||
|  | figure { | ||||||
|  |   margin-top: 2rem; | ||||||
|  |   margin-bottom: 2rem; | ||||||
|  |   figcaption { | ||||||
|  |     margin-top: .875rem; | ||||||
|  |     color: var(--xm-c-figcaption); | ||||||
|  |     font-size: .875rem; | ||||||
|  |     line-height: 1.45; | ||||||
|  |   } | ||||||
|  |   > * { | ||||||
|  |     margin-top: 0; | ||||||
|  |     margin-bottom: 0; | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										8
									
								
								src/scss/partials/link.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/scss/partials/link.scss
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | |||||||
|  | a { | ||||||
|  |   color: var(--xm-c-deeper); | ||||||
|  |   font-weight: 500; | ||||||
|  |   text-decoration: none; | ||||||
|  |   code { | ||||||
|  |     color: var(--xm-c-code); | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										46
									
								
								src/scss/partials/list.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								src/scss/partials/list.scss
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,46 @@ | |||||||
|  | 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; | ||||||
|  |       color: var(--xm-c-ol-counter); | ||||||
|  |       font-weight: 400; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | 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: .675rem; | ||||||
|  |       left: .25rem; | ||||||
|  |       width: .375rem; | ||||||
|  |       height: .375rem; | ||||||
|  |       border-radius: 50%; | ||||||
|  |       background-color: var(--xm-c-ul-counter); | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | ul ul, | ||||||
|  | ul ol, | ||||||
|  | ol ul, | ||||||
|  | ol ol { | ||||||
|  |   margin-top: .75rem; | ||||||
|  |   margin-bottom: .75rem; | ||||||
|  | } | ||||||
							
								
								
									
										5
									
								
								src/scss/partials/media.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								src/scss/partials/media.scss
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | |||||||
|  | img, | ||||||
|  | video { | ||||||
|  |   margin-top: 2rem; | ||||||
|  |   margin-bottom: 2rem; | ||||||
|  | } | ||||||
							
								
								
									
										19
									
								
								src/scss/partials/quote.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								src/scss/partials/quote.scss
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,19 @@ | |||||||
|  | blockquote, | ||||||
|  | q { | ||||||
|  |   margin-top: 1.65rem; | ||||||
|  |   margin-bottom: 1.65rem; | ||||||
|  |   padding-left: 1rem; | ||||||
|  |   border-left: .25rem solid var(--xm-c-quote-border); | ||||||
|  |   color: inherit; | ||||||
|  |   font-weight: 500; | ||||||
|  |   font-style: italic; | ||||||
|  |   quotes: '\201C''\201D''\2018''\2019'; | ||||||
|  |   p { | ||||||
|  |     &:first-of-type::before { | ||||||
|  |       content: open-quote; | ||||||
|  |     } | ||||||
|  |     &:last-of-type::after { | ||||||
|  |       content: close-quote; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										44
									
								
								src/scss/partials/table.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								src/scss/partials/table.scss
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,44 @@ | |||||||
|  | table { | ||||||
|  |   width: 100%; | ||||||
|  |   margin-top: 2rem; | ||||||
|  |   margin-bottom: 2rem; | ||||||
|  |   table-layout: auto; | ||||||
|  |   font-size: .875rem; | ||||||
|  |   line-height: 1.75; | ||||||
|  |   text-align: left; | ||||||
|  | } | ||||||
|  | thead { | ||||||
|  |   border-bottom-width: 1px; | ||||||
|  |   border-bottom-color: var(--xm-c-thead-border); | ||||||
|  |   color: var(--xm-c-thead); | ||||||
|  |   font-weight: 600; | ||||||
|  |   th { | ||||||
|  |     vertical-align: bottom; | ||||||
|  |     padding-left: auto .575rem .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; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										14
									
								
								src/scss/partials/text.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/scss/partials/text.scss
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | |||||||
|  | p { | ||||||
|  |   margin-top: 1.25rem; | ||||||
|  |   margin-bottom: 1.25rem; | ||||||
|  | } | ||||||
|  | strong { | ||||||
|  |   color: var(--xm-c-deep); | ||||||
|  |   font-weight: 600; | ||||||
|  | } | ||||||
|  | b { | ||||||
|  |   color: var(--xm-c-deep); | ||||||
|  | } | ||||||
|  | em { | ||||||
|  |   color: inherit; | ||||||
|  | } | ||||||
							
								
								
									
										64
									
								
								src/scss/partials/title.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								src/scss/partials/title.scss
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,64 @@ | |||||||
|  | h1 { | ||||||
|  |   margin-top: 0; | ||||||
|  |   margin-bottom: .875rem; | ||||||
|  |   color: var(--xm-c-deeper); | ||||||
|  |   font-weight: 800; | ||||||
|  |   font-size: 2.25rem; | ||||||
|  |   line-height: 1.15; | ||||||
|  | } | ||||||
|  | h2 { | ||||||
|  |   margin-top: 2rem; | ||||||
|  |   margin-bottom: 1rem; | ||||||
|  |   color: var(--xm-c-deep); | ||||||
|  |   font-weight: 700; | ||||||
|  |   font-size: 1.5rem; | ||||||
|  |   line-height: 1.35; | ||||||
|  |   code { | ||||||
|  |     font-size: .875rem; | ||||||
|  |   } | ||||||
|  |   + * { | ||||||
|  |     margin-top: 0; | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | h3 { | ||||||
|  |   margin-top: 1.6rem; | ||||||
|  |   margin-bottom: .6rem; | ||||||
|  |   color: inherit; | ||||||
|  |   font-weight: 600; | ||||||
|  |   font-size: 1.25rem; | ||||||
|  |   line-height: 1.6; | ||||||
|  |   opacity: .7; | ||||||
|  |   code { | ||||||
|  |     font-size: .9rem; | ||||||
|  |   } | ||||||
|  |   + * { | ||||||
|  |     margin-top: 0; | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | h4 { | ||||||
|  |   margin-top: 1.5rem; | ||||||
|  |   margin-bottom: .5rem; | ||||||
|  |   color: inherit; | ||||||
|  |   font-weight: 600; | ||||||
|  |   line-height: 1.5; | ||||||
|  |   + * { | ||||||
|  |     margin-top: 0; | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | h5, | ||||||
|  | h6 { | ||||||
|  |   margin-top: 20px; | ||||||
|  |   margin-bottom: 10px; | ||||||
|  |   font-weight: 500; | ||||||
|  |   letter-spacing: 2px; | ||||||
|  |   text-transform: uppercase; | ||||||
|  |   opacity: .5; | ||||||
|  | } | ||||||
|  | hr { | ||||||
|  |   margin-top: 3rem; | ||||||
|  |   margin-bottom: 3rem; | ||||||
|  |   border-color: var(--xm-c-hr-border); | ||||||
|  |   + * { | ||||||
|  |     margin-top: 0; | ||||||
|  |   } | ||||||
|  | } | ||||||
| @ -1,267 +1,6 @@ | |||||||
| .markdown-body, | @use 'partials/container' as *; | ||||||
|  |  | ||||||
| .prose { | .prose { | ||||||
|   max-width: 65ch; |   @include container; | ||||||
|   font-size: 1rem; |   @import 'partials/all'; | ||||||
|   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; |  | ||||||
|   } |  | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,13 +1,18 @@ | |||||||
| $shiki-light: #f8f8f8; | // Colors | ||||||
| $shiki-dark: #0e0e0e; | $pre: #e5e7eb; | ||||||
| $link-border: hsla(0deg 0 50% / .3); |  | ||||||
| $code: #111827; | $code: #111827; | ||||||
|  | $figcaption: #6b7280; | ||||||
|  | $thead: #111827; | ||||||
| $ol-counter: #6b7280; | $ol-counter: #6b7280; | ||||||
| $ul-counter: #d1d5db; | $ul-counter: #d1d5db; | ||||||
| $hr-border: hsla(0deg 0 50% / .3); | 
 | ||||||
| $blockquote-border: hsla(0deg 0 50% / .3); | // Border | ||||||
| $figcaption: #6b7280; | $link-border: hsla(0deg 0% 50% / .3); | ||||||
| $pre: #e5e7eb; | $hr-border: hsla(0deg 0% 50% / .3); | ||||||
| $thead: #111827; | $quote-border: hsla(0deg 0% 50% / .3); | ||||||
| $thead-border: #d1d5db; | $thead-border: #d1d5db; | ||||||
| $tr-border: #e5e7eb; | $tr-border: #e5e7eb; | ||||||
|  | 
 | ||||||
|  | // Shiki (code highlight) | ||||||
|  | $shiki-light: #f8f8f8; | ||||||
|  | $shiki-dark: #0e0e0e; | ||||||
							
								
								
									
										8
									
								
								src/scss/variables/_constants.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/scss/variables/_constants.scss
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | |||||||
|  | // Font stack | ||||||
|  | $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-serif: 'Merriweather', 'Georgia', 'Times New Roman', 'Times', 'Source Han Serif Traditional Chinese', 'Source Han Serif Simplified Chinese', 'Noto Serif TC', 'Noto Serif SC', serif; | ||||||
|  | $font-mono: 'DM Mono', 'Fira Code', 'Jetbrains Mono', 'Input Mono', 'Menlo', 'MesloLGS NF', 'Ubuntu', 'Sarasa Gothic TC', 'Sarasa Gothic SC', monospace; | ||||||
|  |  | ||||||
|  | // Font defaults | ||||||
|  | $font-display: var(--xm-font-sans); | ||||||
|  | $font-code: var(--xm-font-mono); | ||||||
							
								
								
									
										3
									
								
								src/scss/variables/modes/_dark.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								src/scss/variables/modes/_dark.scss
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | $regular: #bbb; | ||||||
|  | $deep: #ddd; | ||||||
|  | $deeper: #fff; | ||||||
							
								
								
									
										3
									
								
								src/scss/variables/modes/_light.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								src/scss/variables/modes/_light.scss
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | $regular: #555; | ||||||
|  | $deep: #222; | ||||||
|  | $deeper: #000; | ||||||
| @ -1,9 +1,10 @@ | |||||||
| @use 'sass:meta' as *; | @use 'sass:meta' as *; | ||||||
|  |  | ||||||
| @use '_vars/constants'; | @use 'variables/constants'; | ||||||
| @use '_vars/colors'; | @use 'variables/colors'; | ||||||
| @use '_vars/light'; |  | ||||||
| @use '_vars/dark'; | @use 'variables/modes/light'; | ||||||
|  | @use 'variables/modes/dark'; | ||||||
|  |  | ||||||
| :root { | :root { | ||||||
|   @each $name, $val in module-variables('constants') { |   @each $name, $val in module-variables('constants') { | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user