diff --git a/README.md b/README.md index c773152..5014b75 100644 --- a/README.md +++ b/README.md @@ -1,94 +1,6 @@ -# Obsidian Sample Plugin +# Obsidian Image-share Plugin -This is a sample plugin for Obsidian (https://obsidian.md). +This image-sharing plugin for Obsidian (https://obsidian.md) allows you to share selected text as beautiful images. -This project uses TypeScript to provide type checking and documentation. -The repo depends on the latest plugin API (obsidian.d.ts) in TypeScript Definition format, which contains TSDoc comments describing what it does. -This sample plugin demonstrates some of the basic functionality the plugin API can do. -- Adds a ribbon icon, which shows a Notice when clicked. -- Adds a command "Open Sample Modal" which opens a Modal. -- Adds a plugin setting tab to the settings page. -- Registers a global click event and output 'click' to the console. -- Registers a global interval which logs 'setInterval' to the console. -## First time developing plugins? - -Quick starting guide for new plugin devs: - -- Check if [someone already developed a plugin for what you want](https://obsidian.md/plugins)! There might be an existing plugin similar enough that you can partner up with. -- Make a copy of this repo as a template with the "Use this template" button (login to GitHub if you don't see it). -- Clone your repo to a local development folder. For convenience, you can place this folder in your `.obsidian/plugins/your-plugin-name` folder. -- Install NodeJS, then run `npm i` in the command line under your repo folder. -- Run `npm run dev` to compile your plugin from `main.ts` to `main.js`. -- Make changes to `main.ts` (or create new `.ts` files). Those changes should be automatically compiled into `main.js`. -- Reload Obsidian to load the new version of your plugin. -- Enable plugin in settings window. -- For updates to the Obsidian API run `npm update` in the command line under your repo folder. - -## Releasing new releases - -- Update your `manifest.json` with your new version number, such as `1.0.1`, and the minimum Obsidian version required for your latest release. -- Update your `versions.json` file with `"new-plugin-version": "minimum-obsidian-version"` so older versions of Obsidian can download an older version of your plugin that's compatible. -- Create new GitHub release using your new version number as the "Tag version". Use the exact version number, don't include a prefix `v`. See here for an example: https://github.com/obsidianmd/obsidian-sample-plugin/releases -- Upload the files `manifest.json`, `main.js`, `styles.css` as binary attachments. Note: The manifest.json file must be in two places, first the root path of your repository and also in the release. -- Publish the release. - -> You can simplify the version bump process by running `npm version patch`, `npm version minor` or `npm version major` after updating `minAppVersion` manually in `manifest.json`. -> The command will bump version in `manifest.json` and `package.json`, and add the entry for the new version to `versions.json` - -## Adding your plugin to the community plugin list - -- Check the [plugin guidelines](https://docs.obsidian.md/Plugins/Releasing/Plugin+guidelines). -- Publish an initial version. -- Make sure you have a `README.md` file in the root of your repo. -- Make a pull request at https://github.com/obsidianmd/obsidian-releases to add your plugin. - -## How to use - -- Clone this repo. -- Make sure your NodeJS is at least v16 (`node --version`). -- `npm i` or `yarn` to install dependencies. -- `npm run dev` to start compilation in watch mode. - -## Manually installing the plugin - -- Copy over `main.js`, `styles.css`, `manifest.json` to your vault `VaultFolder/.obsidian/plugins/your-plugin-id/`. - -## Improve code quality with eslint (optional) -- [ESLint](https://eslint.org/) is a tool that analyzes your code to quickly find problems. You can run ESLint against your plugin to find common bugs and ways to improve your code. -- To use eslint with this project, make sure to install eslint from terminal: - - `npm install -g eslint` -- To use eslint to analyze this project use this command: - - `eslint main.ts` - - eslint will then create a report with suggestions for code improvement by file and line number. -- If your source code is in a folder, such as `src`, you can use eslint with this command to analyze all files in that folder: - - `eslint .\src\` - -## Funding URL - -You can include funding URLs where people who use your plugin can financially support it. - -The simple way is to set the `fundingUrl` field to your link in your `manifest.json` file: - -```json -{ - "fundingUrl": "https://buymeacoffee.com" -} -``` - -If you have multiple URLs, you can also do: - -```json -{ - "fundingUrl": { - "Buy Me a Coffee": "https://buymeacoffee.com", - "GitHub Sponsor": "https://github.com/sponsors", - "Patreon": "https://www.patreon.com/" - } -} -``` - -## API Documentation - -See https://github.com/obsidianmd/obsidian-api diff --git a/main.css b/main.css index e729ce8..0128b11 100644 --- a/main.css +++ b/main.css @@ -169,4 +169,273 @@ padding-left: 1em; opacity: 0.8; } -/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3R5bGVzLmNzcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLypcclxuXHJcblRoaXMgQ1NTIGZpbGUgd2lsbCBiZSBpbmNsdWRlZCB3aXRoIHlvdXIgcGx1Z2luLCBhbmRcclxuYXZhaWxhYmxlIGluIHRoZSBhcHAgd2hlbiB5b3VyIHBsdWdpbiBpcyBlbmFibGVkLlxyXG5cclxuSWYgeW91ciBwbHVnaW4gZG9lcyBub3QgbmVlZCBDU1MsIGRlbGV0ZSB0aGlzIGZpbGUuXHJcblxyXG4qL1xyXG5cclxuLmltYWdlLXNoYXJlLW1vZGFsIHtcclxuICAgIG1heC13aWR0aDogbm9uZTtcclxuICAgIG1heC1oZWlnaHQ6IG5vbmU7XHJcbn1cclxuXHJcbi5pbWFnZS1zaGFyZS1tb2RhbCAucmVzaXphYmxlLWNvbnRhaW5lciB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB3aWR0aDogNjgwcHg7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLXByaW1hcnkpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcclxuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4uaW1hZ2Utc2hhcmUtbW9kYWwgLnJlc2l6ZS1oYW5kbGUge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICB3aWR0aDogMjBweDtcclxuICAgIGhlaWdodDogMjBweDtcclxuICAgIGN1cnNvcjogc2UtcmVzaXplO1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0taW50ZXJhY3RpdmUtYWNjZW50KTtcclxuICAgIGNsaXAtcGF0aDogcG9seWdvbigxMDAlIDAsIDEwMCUgMTAwJSwgMCAxMDAlKTtcclxuICAgIG9wYWNpdHk6IDAuNjtcclxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xyXG59XHJcblxyXG4uaW1hZ2Utc2hhcmUtbW9kYWwgLnJlc2l6ZS1oYW5kbGU6aG92ZXIge1xyXG4gICAgb3BhY2l0eTogMTtcclxufVxyXG5cclxuLmltYWdlLXNoYXJlLW1vZGFsIC5oZWFkZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBnYXA6IDE2cHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4uaW1hZ2Utc2hhcmUtbW9kYWwgLmltYWdlLXByZXZpZXctY29udGFpbmVyIHtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgcGFkZGluZzogMjBweCAyNHB4O1xyXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgIGdhcDogMTZweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLmltYWdlLXNoYXJlLW1vZGFsIC5jYW52YXMtY29udGFpbmVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgcGFkZGluZzogMTZweDtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtc2Vjb25kYXJ5KTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICAgIG1pbi1oZWlnaHQ6IDIwMHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNjBweDtcclxufVxyXG5cclxuLmltYWdlLXNoYXJlLW1vZGFsIGgyIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LW5vcm1hbCk7XHJcbiAgICBmb250LXNpemU6IDEuMmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIHBhZGRpbmc6IDRweCAwO1xyXG59XHJcblxyXG4uaW1hZ2Utc2hhcmUtbW9kYWwgLmRvd25sb2FkLWJ1dHRvbiB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3R0b206IDI0cHg7XHJcbiAgICByaWdodDogMjRweDtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWludGVyYWN0aXZlLWFjY2VudCk7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICB3aWR0aDogNDhweDtcclxuICAgIGhlaWdodDogNDhweDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xyXG4gICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xyXG4gICAgcGFkZGluZzogMTJweDtcclxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LW9uLWFjY2VudCk7XHJcbiAgICB6LWluZGV4OiAxMDA7XHJcbn1cclxuXHJcbi5pbWFnZS1zaGFyZS1tb2RhbCAuZG93bmxvYWQtYnV0dG9uOmhvdmVyIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcclxuICAgIGJveC1zaGFkb3c6IDAgNnB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xyXG59XHJcblxyXG4uaW1hZ2Utc2hhcmUtbW9kYWwgLmRvd25sb2FkLWJ1dHRvbiBzdmcge1xyXG4gICAgd2lkdGg6IDI0cHg7XHJcbiAgICBoZWlnaHQ6IDI0cHg7XHJcbn1cclxuXHJcbi5pbWFnZS1zaGFyZS1tb2RhbCBjYW52YXMge1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgYm94LXNoYWRvdzogMCAycHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcbn1cclxuXHJcbi5pbWFnZS1zaGFyZS1tb2RhbCAudGVtcGxhdGUtc2VsZWN0b3Ige1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGdhcDogOHB4O1xyXG59XHJcblxyXG4uaW1hZ2Utc2hhcmUtbW9kYWwgLnRlbXBsYXRlLWJ1dHRvbiB7XHJcbiAgICBwYWRkaW5nOiA4cHggMTZweDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWludGVyYWN0aXZlLWFjY2VudCk7XHJcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIGNvbG9yOiB2YXIoLS1pbnRlcmFjdGl2ZS1hY2NlbnQpO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbn1cclxuXHJcbi5pbWFnZS1zaGFyZS1tb2RhbCAudGVtcGxhdGUtYnV0dG9uOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWludGVyYWN0aXZlLWFjY2VudCk7XHJcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1vbi1hY2NlbnQpO1xyXG59XHJcblxyXG4uaW1hZ2Utc2hhcmUtbW9kYWwgLnRlbXBsYXRlLWJ1dHRvbi5hY3RpdmUge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0taW50ZXJhY3RpdmUtYWNjZW50KTtcclxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LW9uLWFjY2VudCk7XHJcbn1cclxuXHJcbi5tYXJrZG93bi1wcmV2aWV3LXZpZXcge1xyXG4gICAgZm9udC1mYW1pbHk6ICdQaW5nRmFuZyBTQycsIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgc2Fucy1zZXJpZjtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XHJcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcclxuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XHJcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XHJcbn1cclxuXHJcbi5tYXJrZG93bi1wcmV2aWV3LXZpZXcgaDEsXHJcbi5tYXJrZG93bi1wcmV2aWV3LXZpZXcgaDIsXHJcbi5tYXJrZG93bi1wcmV2aWV3LXZpZXcgaDMge1xyXG4gICAgbWFyZ2luOiAwLjVlbSAwO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxufVxyXG5cclxuLm1hcmtkb3duLXByZXZpZXctdmlldyBoMSB7IGZvbnQtc2l6ZTogMS41ZW07IH1cclxuLm1hcmtkb3duLXByZXZpZXctdmlldyBoMiB7IGZvbnQtc2l6ZTogMS4zZW07IH1cclxuLm1hcmtkb3duLXByZXZpZXctdmlldyBoMyB7IGZvbnQtc2l6ZTogMS4xZW07IH1cclxuXHJcbi5tYXJrZG93bi1wcmV2aWV3LXZpZXcgcCB7XHJcbiAgICBtYXJnaW46IDAuNWVtIDA7XHJcbn1cclxuXHJcbi5tYXJrZG93bi1wcmV2aWV3LXZpZXcgc3Ryb25nIHtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuXHJcbi5tYXJrZG93bi1wcmV2aWV3LXZpZXcgZW0ge1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG59XHJcblxyXG4ubWFya2Rvd24tcHJldmlldy12aWV3IHVsLFxyXG4ubWFya2Rvd24tcHJldmlldy12aWV3IG9sIHtcclxuICAgIG1hcmdpbjogMC41ZW0gMDtcclxuICAgIHBhZGRpbmctbGVmdDogMS41ZW07XHJcbn1cclxuXHJcbi5tYXJrZG93bi1wcmV2aWV3LXZpZXcgbGkge1xyXG4gICAgbWFyZ2luOiAwLjJlbSAwO1xyXG59XHJcblxyXG4ubWFya2Rvd24tcHJldmlldy12aWV3IGNvZGUge1xyXG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xKTtcclxuICAgIHBhZGRpbmc6IDAuMmVtIDAuNGVtO1xyXG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG59XHJcblxyXG4ubWFya2Rvd24tcHJldmlldy12aWV3IGJsb2NrcXVvdGUge1xyXG4gICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCBjdXJyZW50Q29sb3I7XHJcbiAgICBtYXJnaW46IDAuNWVtIDA7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDFlbTtcclxuICAgIG9wYWNpdHk6IDAuODtcclxufVxyXG4iXSwKICAibWFwcGluZ3MiOiAiO0FBU0E7QUFDSTtBQUNBO0FBQUE7QUFHSjtBQUNJO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0o7QUFDSTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0o7QUFDSTtBQUFBO0FBR0o7QUFDSTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0o7QUFDSTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0o7QUFDSTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHSjtBQUNJO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdKO0FBQ0k7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0o7QUFDSTtBQUNBO0FBQUE7QUFHSjtBQUNJO0FBQ0E7QUFBQTtBQUdKO0FBQ0k7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdKO0FBQ0k7QUFDQTtBQUFBO0FBR0o7QUFDSTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdKO0FBQ0k7QUFDQTtBQUFBO0FBR0o7QUFDSTtBQUNBO0FBQUE7QUFHSjtBQUNJO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0o7QUFBQTtBQUFBO0FBR0k7QUFDQTtBQUFBO0FBR0o7QUFBNEI7QUFBQTtBQUM1QjtBQUE0QjtBQUFBO0FBQzVCO0FBQTRCO0FBQUE7QUFFNUI7QUFDSTtBQUFBO0FBR0o7QUFDSTtBQUFBO0FBR0o7QUFDSTtBQUFBO0FBR0o7QUFBQTtBQUVJO0FBQ0E7QUFBQTtBQUdKO0FBQ0k7QUFBQTtBQUdKO0FBQ0k7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdKO0FBQ0k7QUFDQTtBQUNBO0FBQ0E7QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K */ + +/* markdown-sspai.css */ +body { + font-size: 15px; + color: #333; + background: #fff; + font-family: + Helvetica, + Arial, + "PingFang SC", + "Microsoft YaHei", + "WenQuanYi Micro Hei", + "tohoma,sans-serif"; + margin: 0; + padding: 10%; +} +h1 { + font-size: 2.2em; + font-weight: 700; + line-height: 1.1; + padding-top: 16px; + margin-bottom: 4px; +} +h2, +h3, +h4, +h5, +h6 { + line-height: 1.5em; + margin-top: 2.2em; + margin-bottom: 4px; +} +h2 { + font-size: 1.4em; + margin: 40px 10px 20px 0; + padding-left: 9px; + border-left: 6px solid #ff7e79; + font-weight: 700; + line-height: 1.4; +} +h3 { + font-weight: 700; + font-size: 1.2em; + line-height: 1.4; + margin: 10px 0 5px; + padding-top: 10px; +} +h4 { + font-weight: 700; + text-transform: uppercase; + font-size: 1.1em; + line-height: 1.4; + margin: 10px 0 5px; + padding-top: 10px; +} +h5, +h6 { + font-size: .9em; +} +h5 { + font-weight: bold; + text-transform: uppercase; +} +h6 { + font-weight: normal; + color: #AAA; +} +img { + width: 100%; + border-radius: 5px; + display: block; + margin-bottom: 15px; + height: auto; +} +dl, +ol, +ul { + margin-top: 12px; + margin-bottom: 20px; + padding-left: 5%; + line-height: 1.8; +} +p { + margin: 0 0 20px; + padding: 0; + line-height: 1.8; +} +a { + color: #f22f27; + text-decoration: none; +} +a:hover { + color: #f55852; + text-decoration: underline; +} +a:focus { + outline-offset: -2px; +} +blockquote { + font-size: 1em; + font-style: normal; + padding: 30px 38px; + margin: 0 0 15px; + position: relative; + line-height: 1.8; + text-indent: 0; + border: none; + color: #888; +} +blockquote:before { + content: "\201c"; + left: 12px; + top: 0; + color: #E0E0E0; + font-size: 4em; + font-family: Arial, serif; + line-height: 1em; + font-weight: 700; + position: absolute; +} +blockquote:after { + content: "\201d"; + right: 12px; + bottom: -26px; + color: #E0E0E0; + font-size: 4em; + font-family: Arial, serif; + line-height: 1em; + font-weight: 700; + position: absolute; + bottom: -31px; +} +strong, +dfn { + font-weight: 700; +} +em, +dfn { + font-style: italic; + font-weight: 400; +} +del { + text-decoration: line-through; +} +pre { + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857; + word-break: break-all; + word-wrap: break-word; + border-radius: 4px; + white-space: pre-wrap; + display: block; + background: #f8f8f8; + padding: 10px 20px; + border: none; + margin-bottom: 25px; + color: #666; + font-family: Courier, sans-serif; +} +code { + color: #c7254e; + background-color: #f9f2f4; + border-radius: 4px; + font-family: + Menlo, + Monaco, + Consolas, + "Courier New", + monospace; + padding: 2px 4px; + font-size: 90%; +} +p > code { + color: #c7264e; + background-color: #f9f2f4; + font-size: .95em; + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; +} +figure { + margin: 1em 0; +} +figcaption { + font-size: 0.75em; + padding: 0.5em 2em; + margin-bottom: 2em; +} +figure img { + margin-bottom: 0px; +} +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eee; +} +ol p, +ul p { + margin-bottom: 0px; +} +li { + margin-bottom: 0.75em; + margin-top: 0.75em; +} +ol#footnotes { + font-size: 0.95em; + padding-top: 1em; + margin-top: 1em; + margin-left: 0; + border-top: 1px solid #eaeaea; + counter-reset: footer-counter; + list-style: none; + color: #555; + padding-left: 5%; + margin: 20px 0; +} +ol#footnotes li { + margin-bottom: 10px; + margin-left: 16px; + font-weight: 400; + line-height: 2; + list-style-type: none; +} +ol#footnotes li:before { + content: counter(footer-counter) ". "; + counter-increment: footer-counter; + font-weight: 800; + font-size: .95em; +} +@keyframes highfade { + 0% { + background-color: none; + } + 20% { + background-color: yellow; + } + 100% { + background-color: none; + } +} +@-webkit-keyframes highfade { + 0% { + background-color: none; + } + 20% { + background-color: yellow; + } + 100% { + background-color: none; + } +} +a:target, +ol#footnotes li:target, +sup a:target { + animation-name: highfade; + animation-duration: 2s; + animation-iteration-count: 1; + animation-timing-function: ease-in-out; + -webkit-animation-name: highfade; + -webkit-animation-duration: 2s; + -webkit-animation-iteration-count: 1; + -webkit-animation-timing-function: ease-in-out; +} +a:target { + border: 0; + outline: 0; +} +/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3R5bGVzLmNzcyIsICJtYXJrZG93bi1zc3BhaS5jc3MiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qXG5cblRoaXMgQ1NTIGZpbGUgd2lsbCBiZSBpbmNsdWRlZCB3aXRoIHlvdXIgcGx1Z2luLCBhbmRcbmF2YWlsYWJsZSBpbiB0aGUgYXBwIHdoZW4geW91ciBwbHVnaW4gaXMgZW5hYmxlZC5cblxuSWYgeW91ciBwbHVnaW4gZG9lcyBub3QgbmVlZCBDU1MsIGRlbGV0ZSB0aGlzIGZpbGUuXG5cbiovXG5cbi5pbWFnZS1zaGFyZS1tb2RhbCB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIG1heC1oZWlnaHQ6IG5vbmU7XG59XG5cbi5pbWFnZS1zaGFyZS1tb2RhbCAucmVzaXphYmxlLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiA2ODBweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLXByaW1hcnkpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uaW1hZ2Utc2hhcmUtbW9kYWwgLnJlc2l6ZS1oYW5kbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGN1cnNvcjogc2UtcmVzaXplO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWludGVyYWN0aXZlLWFjY2VudCk7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDEwMCUgMCwgMTAwJSAxMDAlLCAwIDEwMCUpO1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTtcbn1cblxuLmltYWdlLXNoYXJlLW1vZGFsIC5yZXNpemUtaGFuZGxlOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4uaW1hZ2Utc2hhcmUtbW9kYWwgLmhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4uaW1hZ2Utc2hhcmUtbW9kYWwgLmltYWdlLXByZXZpZXctY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBhZGRpbmc6IDIwcHggMjRweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGdhcDogMTZweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5pbWFnZS1zaGFyZS1tb2RhbCAuY2FudmFzLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtc2Vjb25kYXJ5KTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgbWluLWhlaWdodDogMjAwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNjBweDtcbn1cblxuLmltYWdlLXNoYXJlLW1vZGFsIGgyIHtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6IHZhcigtLXRleHQtbm9ybWFsKTtcbiAgICBmb250LXNpemU6IDEuMmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgcGFkZGluZzogNHB4IDA7XG59XG5cbi5pbWFnZS1zaGFyZS1tb2RhbCAuZG93bmxvYWQtYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAyNHB4O1xuICAgIHJpZ2h0OiAyNHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWludGVyYWN0aXZlLWFjY2VudCk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB3aWR0aDogNDhweDtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIGNvbG9yOiB2YXIoLS10ZXh0LW9uLWFjY2VudCk7XG4gICAgei1pbmRleDogMTAwO1xufVxuXG4uaW1hZ2Utc2hhcmUtbW9kYWwgLmRvd25sb2FkLWJ1dHRvbjpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICAgIGJveC1zaGFkb3c6IDAgNnB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuXG4uaW1hZ2Utc2hhcmUtbW9kYWwgLmRvd25sb2FkLWJ1dHRvbiBzdmcge1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbn1cblxuLmltYWdlLXNoYXJlLW1vZGFsIGNhbnZhcyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm94LXNoYWRvdzogMCAycHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cbi5pbWFnZS1zaGFyZS1tb2RhbCAudGVtcGxhdGUtc2VsZWN0b3Ige1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiA4cHg7XG59XG5cbi5pbWFnZS1zaGFyZS1tb2RhbCAudGVtcGxhdGUtYnV0dG9uIHtcbiAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pbnRlcmFjdGl2ZS1hY2NlbnQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdmFyKC0taW50ZXJhY3RpdmUtYWNjZW50KTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLmltYWdlLXNoYXJlLW1vZGFsIC50ZW1wbGF0ZS1idXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWludGVyYWN0aXZlLWFjY2VudCk7XG4gICAgY29sb3I6IHZhcigtLXRleHQtb24tYWNjZW50KTtcbn1cblxuLmltYWdlLXNoYXJlLW1vZGFsIC50ZW1wbGF0ZS1idXR0b24uYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pbnRlcmFjdGl2ZS1hY2NlbnQpO1xuICAgIGNvbG9yOiB2YXIoLS10ZXh0LW9uLWFjY2VudCk7XG59XG5cbi5tYXJrZG93bi1wcmV2aWV3LXZpZXcge1xuICAgIGZvbnQtZmFtaWx5OiAnUGluZ0ZhbmcgU0MnLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIHNhbnMtc2VyaWY7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbn1cblxuLm1hcmtkb3duLXByZXZpZXctdmlldyBoMSxcbi5tYXJrZG93bi1wcmV2aWV3LXZpZXcgaDIsXG4ubWFya2Rvd24tcHJldmlldy12aWV3IGgzIHtcbiAgICBtYXJnaW46IDAuNWVtIDA7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLm1hcmtkb3duLXByZXZpZXctdmlldyBoMSB7IGZvbnQtc2l6ZTogMS41ZW07IH1cbi5tYXJrZG93bi1wcmV2aWV3LXZpZXcgaDIgeyBmb250LXNpemU6IDEuM2VtOyB9XG4ubWFya2Rvd24tcHJldmlldy12aWV3IGgzIHsgZm9udC1zaXplOiAxLjFlbTsgfVxuXG4ubWFya2Rvd24tcHJldmlldy12aWV3IHAge1xuICAgIG1hcmdpbjogMC41ZW0gMDtcbn1cblxuLm1hcmtkb3duLXByZXZpZXctdmlldyBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5tYXJrZG93bi1wcmV2aWV3LXZpZXcgZW0ge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLm1hcmtkb3duLXByZXZpZXctdmlldyB1bCxcbi5tYXJrZG93bi1wcmV2aWV3LXZpZXcgb2wge1xuICAgIG1hcmdpbjogMC41ZW0gMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNWVtO1xufVxuXG4ubWFya2Rvd24tcHJldmlldy12aWV3IGxpIHtcbiAgICBtYXJnaW46IDAuMmVtIDA7XG59XG5cbi5tYXJrZG93bi1wcmV2aWV3LXZpZXcgY29kZSB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMSk7XG4gICAgcGFkZGluZzogMC4yZW0gMC40ZW07XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG4ubWFya2Rvd24tcHJldmlldy12aWV3IGJsb2NrcXVvdGUge1xuICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgY3VycmVudENvbG9yO1xuICAgIG1hcmdpbjogMC41ZW0gMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDFlbTtcbiAgICBvcGFjaXR5OiAwLjg7XG59XG4iLCAiLyogU3NwYWkgV2ViIFRoZW1lIEEgdGhlbWUgdG8gW3NzcGFpXShzc3AuYWkpIGRlZmF1bHQgdGhlbWUuIERldmVsb3BlZCBieSBDb2RlZ2Fzcyh3Y2h3ZWljaGVuaGFvQGdtaWFsLmNvbSkgJiBZdmVzKHl2ZXNAc3NwYWkuY29tKSBEb3dubG9hZCBDdXRvIG9uIHRoZSBBcHAgU3RvcmUgYW5kIEdvb2dsZSBQbGF5ISAqL1xuXG5ib2R5IHtcblx0Zm9udC1zaXplOiAxNXB4O1xuXHRjb2xvcjogIzMzMztcblx0YmFja2dyb3VuZDogI2ZmZjtcblx0Zm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIFwiUGluZ0ZhbmcgU0NcIiwgXCJNaWNyb3NvZnQgWWFIZWlcIiwgXCJXZW5RdWFuWWkgTWljcm8gSGVpXCIsIFwidG9ob21hLHNhbnMtc2VyaWZcIjtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAxMCU7XG59XG5oMSB7XG5cdGZvbnQtc2l6ZTogMi4yZW07XG5cdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdGxpbmUtaGVpZ2h0OiAxLjE7XG5cdHBhZGRpbmctdG9wOiAxNnB4O1xuXHRtYXJnaW4tYm90dG9tOiA0cHg7XG59XG5oMiwgaDMsIGg0LCBoNSwgaDYge1xuXHRsaW5lLWhlaWdodDogMS41ZW07XG5cdG1hcmdpbi10b3A6IDIuMmVtO1xuXHRtYXJnaW4tYm90dG9tOiA0cHg7XG59XG5oMiB7XG5cdGZvbnQtc2l6ZTogMS40ZW07XG5cdG1hcmdpbjogNDBweCAxMHB4IDIwcHggMDtcblx0cGFkZGluZy1sZWZ0OiA5cHg7XG5cdGJvcmRlci1sZWZ0OiA2cHggc29saWQgI2ZmN2U3OTtcblx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0bGluZS1oZWlnaHQ6IDEuNDtcbn1cbmgzIHtcblx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0Zm9udC1zaXplOiAxLjJlbTtcblx0bGluZS1oZWlnaHQ6IDEuNDtcblx0bWFyZ2luOiAxMHB4IDAgNXB4O1xuXHRwYWRkaW5nLXRvcDogMTBweDtcbn1cbmg0IHtcblx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0Zm9udC1zaXplOiAxLjFlbTtcblx0bGluZS1oZWlnaHQ6IDEuNDtcblx0bWFyZ2luOiAxMHB4IDAgNXB4O1xuXHRwYWRkaW5nLXRvcDogMTBweFxufVxuaDUsIGg2IHtcblx0Zm9udC1zaXplOiAuOWVtO1xufVxuaDUge1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbmg2IHtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0Y29sb3I6ICNBQUE7XG59XG5pbWcge1xuXHR3aWR0aDogMTAwJTtcblx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRkaXNwbGF5OiBibG9jaztcblx0bWFyZ2luLWJvdHRvbTogMTVweDtcblx0aGVpZ2h0OiBhdXRvO1xufVxuZGwsIG9sLCB1bCB7XG5cdG1hcmdpbi10b3A6IDEycHg7XG5cdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdHBhZGRpbmctbGVmdDogNSU7XG5cdGxpbmUtaGVpZ2h0OiAxLjg7XG59XG5wIHtcblx0bWFyZ2luOiAwIDAgMjBweDtcblx0cGFkZGluZzogMDtcblx0bGluZS1oZWlnaHQ6IDEuODtcbn1cbmEge1xuXHRjb2xvcjogI2YyMmYyNztcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuYTpob3ZlciB7XG5cdGNvbG9yOiAjZjU1ODUyO1xuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbmE6Zm9jdXMge1xuXHRvdXRsaW5lLW9mZnNldDogLTJweDtcbn1cbmJsb2NrcXVvdGUge1xuXHRmb250LXNpemU6IDFlbTtcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHRwYWRkaW5nOiAzMHB4IDM4cHg7XG5cdG1hcmdpbjogMCAwIDE1cHg7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0bGluZS1oZWlnaHQ6IDEuODtcblx0dGV4dC1pbmRlbnQ6IDA7XG5cdGJvcmRlcjogbm9uZTtcblx0Y29sb3I6ICM4ODg7XG59XG5ibG9ja3F1b3RlOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXHUyMDFDXCI7XG5cdGxlZnQ6IDEycHg7XG5cdHRvcDogMDtcblx0Y29sb3I6ICNFMEUwRTA7XG5cdGZvbnQtc2l6ZTogNGVtO1xuXHRmb250LWZhbWlseTogQXJpYWwsIHNlcmlmO1xuXHRsaW5lLWhlaWdodDogMWVtO1xuXHRmb250LXdlaWdodDogNzAwO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5ibG9ja3F1b3RlOmFmdGVyIHtcblx0Y29udGVudDogXCJcdTIwMURcIjtcblx0cmlnaHQ6IDEycHg7XG5cdGJvdHRvbTogLTI2cHg7XG5cdGNvbG9yOiAjRTBFMEUwO1xuXHRmb250LXNpemU6IDRlbTtcblx0Zm9udC1mYW1pbHk6IEFyaWFsLCBzZXJpZjtcblx0bGluZS1oZWlnaHQ6IDFlbTtcblx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRib3R0b206IC0zMXB4O1xufVxuc3Ryb25nLCBkZm4ge1xuXHRmb250LXdlaWdodDogNzAwO1xufVxuZW0sIGRmbiB7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0Zm9udC13ZWlnaHQ6IDQwMDtcbn1cbmRlbCB7XG5cdHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xufVxuLypjb2RlIHtmb250LXNpemU6OTAlO30qL1xuXG4vKnByZSB7dGV4dC1hbGlnbjpsZWZ0OyBvdmVyZmxvdy14OiBzY3JvbGw7IGNvbG9yOiAjMjU3ZmEwOyBiYWNrZ3JvdW5kOiAjZjZmNmY2OyBwYWRkaW5nOiAxMHB0IDE1cHQ7IGJvcmRlci1yYWRpdXM6IDNweDsgYm9yZGVyOiBzb2xpZCAxcHggI2UyZTJlMjt9Ki9cblxucHJlIHtcblx0bWFyZ2luOiAwIDAgMTBweDtcblx0Zm9udC1zaXplOiAxM3B4O1xuXHRsaW5lLWhlaWdodDogMS40Mjg1Nztcblx0d29yZC1icmVhazogYnJlYWstYWxsO1xuXHR3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG5cdGJvcmRlci1yYWRpdXM6IDRweDtcblx0d2hpdGUtc3BhY2U6IHByZS13cmFwO1xuXHRkaXNwbGF5OiBibG9jaztcblx0YmFja2dyb3VuZDogI2Y4ZjhmODtcblx0cGFkZGluZzogMTBweCAyMHB4O1xuXHRib3JkZXI6IG5vbmU7XG5cdG1hcmdpbi1ib3R0b206IDI1cHg7XG5cdGNvbG9yOiAjNjY2O1xuXHRmb250LWZhbWlseTogQ291cmllciwgc2Fucy1zZXJpZjtcbn1cbmNvZGUge1xuXHRjb2xvcjogI2M3MjU0ZTtcblx0YmFja2dyb3VuZC1jb2xvcjogI2Y5ZjJmNDtcblx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHRmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xuXHRwYWRkaW5nOiAycHggNHB4O1xuXHRmb250LXNpemU6IDkwJTtcbn1cbnA+Y29kZSB7XG5cdGNvbG9yOiAjYzcyNjRlO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmMmY0O1xuXHRmb250LXNpemU6IC45NWVtO1xuXHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdC1tb3otYm9yZGVyLXJhZGl1czogM3B4O1xuXHQtd2Via2l0LWJvcmRlci1yYWRpdXM6IDNweDtcbn1cbmZpZ3VyZSB7XG5cdG1hcmdpbjogMWVtIDA7XG59XG5maWdjYXB0aW9uIHtcblx0Zm9udC1zaXplOiAwLjc1ZW07XG5cdHBhZGRpbmc6IDAuNWVtIDJlbTtcblx0bWFyZ2luLWJvdHRvbTogMmVtO1xufVxuZmlndXJlIGltZyB7XG5cdG1hcmdpbi1ib3R0b206IDBweDtcbn1cbmhyIHtcblx0bWFyZ2luLXRvcDogMjBweDtcblx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0Ym9yZGVyOiAwO1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgI2VlZTtcbn1cbm9sIHAsIHVsIHAge1xuXHRtYXJnaW4tYm90dG9tOiAwcHg7XG59XG5saSB7XG5cdG1hcmdpbi1ib3R0b206IDAuNzVlbTtcblx0bWFyZ2luLXRvcDogMC43NWVtO1xufVxub2wjZm9vdG5vdGVzIHtcblx0Zm9udC1zaXplOiAwLjk1ZW07XG5cdHBhZGRpbmctdG9wOiAxZW07XG5cdG1hcmdpbi10b3A6IDFlbTtcblx0bWFyZ2luLWxlZnQ6IDA7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWFlYWVhO1xuXHRjb3VudGVyLXJlc2V0OiBmb290ZXItY291bnRlcjtcblx0bGlzdC1zdHlsZTogbm9uZTtcblx0Y29sb3I6ICM1NTU7XG5cdHBhZGRpbmctbGVmdDogNSU7XG5cdG1hcmdpbjogMjBweCAwO1xufVxub2wjZm9vdG5vdGVzIGxpIHtcblx0bWFyZ2luLWJvdHRvbTogMTBweDtcblx0bWFyZ2luLWxlZnQ6IDE2cHg7XG5cdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdGxpbmUtaGVpZ2h0OiAyO1xuXHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5vbCNmb290bm90ZXMgbGk6YmVmb3JlIHtcblx0Y29udGVudDogY291bnRlcihmb290ZXItY291bnRlcikgXCIuIFwiO1xuXHRjb3VudGVyLWluY3JlbWVudDogZm9vdGVyLWNvdW50ZXI7XG5cdGZvbnQtd2VpZ2h0OiA4MDA7XG5cdGZvbnQtc2l6ZTogLjk1ZW07XG59XG5Aa2V5ZnJhbWVzIGhpZ2hmYWRlIHtcblx0MCUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IG5vbmU7XG5cdH1cblx0MjAlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG5cdH1cblx0MTAwJSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogbm9uZTtcblx0fVxufVxuQC13ZWJraXQta2V5ZnJhbWVzIGhpZ2hmYWRlIHtcblx0MCUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IG5vbmU7XG5cdH1cblx0MjAlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG5cdH1cblx0MTAwJSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogbm9uZTtcblx0fVxufVxuYTp0YXJnZXQsIG9sI2Zvb3Rub3RlcyBsaTp0YXJnZXQsIHN1cCBhOnRhcmdldCB7XG5cdGFuaW1hdGlvbi1uYW1lOiBoaWdoZmFkZTtcblx0YW5pbWF0aW9uLWR1cmF0aW9uOiAycztcblx0YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTtcblx0YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG5cdC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGhpZ2hmYWRlO1xuXHQtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMnM7XG5cdC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTtcblx0LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbn1cbmE6dGFyZ2V0IHtcblx0Ym9yZGVyOiAwO1xuXHRvdXRsaW5lOiAwO1xufSJdLAogICJtYXBwaW5ncyI6ICI7QUFTQTtBQUNJO0FBQ0E7QUFBQTtBQUdKO0FBQ0k7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHSjtBQUNJO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHSjtBQUNJO0FBQUE7QUFHSjtBQUNJO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHSjtBQUNJO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHSjtBQUNJO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdKO0FBQ0k7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0o7QUFDSTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHSjtBQUNJO0FBQ0E7QUFBQTtBQUdKO0FBQ0k7QUFDQTtBQUFBO0FBR0o7QUFDSTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0o7QUFDSTtBQUNBO0FBQUE7QUFHSjtBQUNJO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0o7QUFDSTtBQUNBO0FBQUE7QUFHSjtBQUNJO0FBQ0E7QUFBQTtBQUdKO0FBQ0k7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHSjtBQUFBO0FBQUE7QUFHSTtBQUNBO0FBQUE7QUFHSjtBQUE0QjtBQUFBO0FBQzVCO0FBQTRCO0FBQUE7QUFDNUI7QUFBNEI7QUFBQTtBQUU1QjtBQUNJO0FBQUE7QUFHSjtBQUNJO0FBQUE7QUFHSjtBQUNJO0FBQUE7QUFHSjtBQUFBO0FBRUk7QUFDQTtBQUFBO0FBR0o7QUFDSTtBQUFBO0FBR0o7QUFDSTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0o7QUFDSTtBQUNBO0FBQ0E7QUFDQTtBQUFBOzs7QUM5TEo7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNDO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQUE7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFBQTtBQUFBO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUFBO0FBQ0M7QUFBQTtBQUVEO0FBQUE7QUFDQztBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFNRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUFBO0FBQ0M7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBRUQ7QUFDQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFFRDtBQUFBO0FBRUU7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBR0Y7QUFBQTtBQUVFO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUdGO0FBQUE7QUFBQTtBQUNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUVEO0FBQ0M7QUFDQTtBQUFBOyIsCiAgIm5hbWVzIjogW10KfQo= */ diff --git a/main.ts b/main.ts index cee3bb6..ede5c7e 100644 --- a/main.ts +++ b/main.ts @@ -1,5 +1,6 @@ import { App, Editor, Modal, Plugin, Menu, MarkdownRenderer, Component } from 'obsidian'; import './styles.css'; +import './markdown-sspai.css'; import html2canvas from 'html2canvas'; // Remember to rename these classes and interfaces! @@ -189,53 +190,177 @@ class ImageGenerator { // 应用优化的样式 const styleSheet = document.createElement('style'); styleSheet.textContent = ` - .markdown-preview-view { - letter-spacing: 0.05em; + .markdown-here-wrapper { + font-size: 16px; + line-height: 1.8em; + letter-spacing: 0.1em; } - .markdown-preview-view h1, - .markdown-preview-view h2, - .markdown-preview-view h3 { - font-weight: 600; - line-height: 1.3; - margin: 1.2em 0 0.6em; + + + pre, code { + font-size: 14px; + font-family: Roboto, 'Courier New', Consolas, Inconsolata, Courier, monospace; + margin: auto 5px; } - .markdown-preview-view h1 { font-size: 1.6em; } - .markdown-preview-view h2 { font-size: 1.4em; } - .markdown-preview-view h3 { font-size: 1.2em; } - .markdown-preview-view p { - margin: 0.8em 0; - line-height: 1.6; + + code { + white-space: pre-wrap; + border-radius: 2px; + display: inline; } - .markdown-preview-view ul, - .markdown-preview-view ol { - margin: 0.4em 0; - padding-left: 1.2em; + + pre { + font-size: 15px; + line-height: 1.4em; + display: block; !important; } - .markdown-preview-view li { - margin: 0.2em 0; - line-height: 1.5; - } - .markdown-preview-view code { - font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace; - font-size: 0.9em; - padding: 0.2em 0.4em; + + pre code { + white-space: pre; + overflow: auto; border-radius: 3px; - background: ${this.currentTemplate.id === 'dark' ? 'rgba(255,255,255,0.1)' : 'rgba(0,0,0,0.06)'}; + padding: 1px 1px; + display: block !important; } - .markdown-preview-view blockquote { - margin: 1em 0; - padding: 0.2em 0 0.2em 0.8em; - border-left: 3px solid ${this.currentTemplate.id === 'dark' ? '#666' : '#ddd'}; - color: ${this.currentTemplate.id === 'dark' ? '#bbb' : '#666'}; + + strong, b{ + color: #BF360C; } - .markdown-preview-view strong { - font-weight: 600; - color: ${this.currentTemplate.id === 'dark' ? '#fff' : '#000'}; + + em, i { + color: #009688; } - .markdown-preview-view em { - font-style: normal; - border-bottom: 1px dashed ${this.currentTemplate.id === 'dark' ? '#666' : '#999'}; - padding-bottom: 0.1em; + + hr { + border: 1px solid #BF360C; + margin: 1.5em auto; + } + + p { + margin: 1.5em 5px !important; + } + + table, pre, dl, blockquote, q, ul, ol { + margin: 10px 5px; + } + + ul, ol { + padding-left: 15px; + } + + li { + margin: 10px; + } + + li p { + margin: 10px 0 !important; + } + + ul ul, ul ol, ol ul, ol ol { + margin: 0; + padding-left: 10px; + } + + ul { + list-style-type: circle; + } + + dl { + padding: 0; + } + + dl dt { + font-size: 1em; + font-weight: bold; + font-style: italic; + } + + dl dd { + margin: 0 0 10px; + padding: 0 10px; + } + + blockquote, q { + border-left: 2px solid #009688; + padding: 0 10px; + color: #777; + quotes: none; + margin-left: 1em; + } + + blockquote::before, blockquote::after, q::before, q::after { + content: none; + } + + h1, h2, h3, h4, h5, h6 { + margin: 20px 0 10px; + padding: 0; + font-style: bold !important; + color: #009688 !important; + text-align: center !important; + margin: 1.5em 5px !important; + padding: 0.5em 1em !important; + } + + h1 { + font-size: 24px !important; + border-bottom: 1px solid #ddd !important; + } + + h2 { + font-size: 20px !important; + border-bottom: 1px solid #eee !important; + } + + h3 { + font-size: 18px; + } + + h4 { + font-size: 16px; + } + + + table { + padding: 0; + border-collapse: collapse; + border-spacing: 0; + font-size: 1em; + font: inherit; + border: 0; + margin: 0 auto; + } + + tbody { + margin: 0; + padding: 0; + border: 0; + } + + table tr { + border: 0; + border-top: 1px solid #CCC; + background-color: white; + margin: 0; + padding: 0; + } + + table tr:nth-child(2n) { + background-color: #F8F8F8; + } + + table tr th, table tr td { + font-size: 16px; + border: 1px solid #CCC; + margin: 0; + padding: 5px 10px; + } + + table tr th { + font-weight: bold; + color: #eee; + border: 1px solid #009688; + background-color: #009688; } `; document.head.appendChild(styleSheet); diff --git a/manifest.json b/manifest.json index 97b5a50..94db663 100644 --- a/manifest.json +++ b/manifest.json @@ -1,11 +1,11 @@ { - "id": "obsidian-image-share", + "id": "Image-share", "name": "Image Share", - "version": "1.0.0", - "minAppVersion": "0.15.0", + "version": "0.0.1", + "minAppVersion": "1.18.0", "description": "Share selected text as beautiful images", - "author": "shawn", - "authorUrl": "https://obsidian.md", - "fundingUrl": "https://obsidian.md/pricing", + "author": "Shawn", + "authorUrl": "https://full-stacker.com", + "fundingUrl": "https://full-stacker.com", "isDesktopOnly": false } diff --git a/markdown-here.css b/markdown-here.css new file mode 100644 index 0000000..73f2bb0 --- /dev/null +++ b/markdown-here.css @@ -0,0 +1,172 @@ +.markdown-here-wrapper { + font-size: 16px; + line-height: 1.8em; + letter-spacing: 0.1em; + } + + + pre, code { + font-size: 14px; + font-family: Roboto, 'Courier New', Consolas, Inconsolata, Courier, monospace; + margin: auto 5px; + } + + code { + white-space: pre-wrap; + border-radius: 2px; + display: inline; + } + + pre { + font-size: 15px; + line-height: 1.4em; + display: block; !important; + } + + pre code { + white-space: pre; + overflow: auto; + border-radius: 3px; + padding: 1px 1px; + display: block !important; + } + + strong, b{ + color: #BF360C; + } + + em, i { + color: #009688; + } + + hr { + border: 1px solid #BF360C; + margin: 1.5em auto; + } + + p { + margin: 1.5em 5px !important; + } + + table, pre, dl, blockquote, q, ul, ol { + margin: 10px 5px; + } + + ul, ol { + padding-left: 15px; + } + + li { + margin: 10px; + } + + li p { + margin: 10px 0 !important; + } + + ul ul, ul ol, ol ul, ol ol { + margin: 0; + padding-left: 10px; + } + + ul { + list-style-type: circle; + } + + dl { + padding: 0; + } + + dl dt { + font-size: 1em; + font-weight: bold; + font-style: italic; + } + + dl dd { + margin: 0 0 10px; + padding: 0 10px; + } + + blockquote, q { + border-left: 2px solid #009688; + padding: 0 10px; + color: #777; + quotes: none; + margin-left: 1em; + } + + blockquote::before, blockquote::after, q::before, q::after { + content: none; + } + + h1, h2, h3, h4, h5, h6 { + margin: 20px 0 10px; + padding: 0; + font-style: bold !important; + color: #009688 !important; + text-align: center !important; + margin: 1.5em 5px !important; + padding: 0.5em 1em !important; + } + + h1 { + font-size: 24px !important; + border-bottom: 1px solid #ddd !important; + } + + h2 { + font-size: 20px !important; + border-bottom: 1px solid #eee !important; + } + + h3 { + font-size: 18px; + } + + h4 { + font-size: 16px; + } + + + table { + padding: 0; + border-collapse: collapse; + border-spacing: 0; + font-size: 1em; + font: inherit; + border: 0; + margin: 0 auto; + } + + tbody { + margin: 0; + padding: 0; + border: 0; + } + + table tr { + border: 0; + border-top: 1px solid #CCC; + background-color: white; + margin: 0; + padding: 0; + } + + table tr:nth-child(2n) { + background-color: #F8F8F8; + } + + table tr th, table tr td { + font-size: 16px; + border: 1px solid #CCC; + margin: 0; + padding: 5px 10px; + } + + table tr th { + font-weight: bold; + color: #eee; + border: 1px solid #009688; + background-color: #009688; + } \ No newline at end of file diff --git a/markdown-sspai.css b/markdown-sspai.css new file mode 100644 index 0000000..044b8b5 --- /dev/null +++ b/markdown-sspai.css @@ -0,0 +1,250 @@ +/* Sspai Web Theme A theme to [sspai](ssp.ai) default theme. Developed by Codegass(wchweichenhao@gmial.com) & Yves(yves@sspai.com) Download Cuto on the App Store and Google Play! */ + +body { + font-size: 15px; + color: #333; + background: #fff; + font-family: Helvetica, Arial, "PingFang SC", "Microsoft YaHei", "WenQuanYi Micro Hei", "tohoma,sans-serif"; + margin: 0; + padding: 10%; +} +h1 { + font-size: 2.2em; + font-weight: 700; + line-height: 1.1; + padding-top: 16px; + margin-bottom: 4px; +} +h2, h3, h4, h5, h6 { + line-height: 1.5em; + margin-top: 2.2em; + margin-bottom: 4px; +} +h2 { + font-size: 1.4em; + margin: 40px 10px 20px 0; + padding-left: 9px; + border-left: 6px solid #ff7e79; + font-weight: 700; + line-height: 1.4; +} +h3 { + font-weight: 700; + font-size: 1.2em; + line-height: 1.4; + margin: 10px 0 5px; + padding-top: 10px; +} +h4 { + font-weight: 700; + text-transform: uppercase; + font-size: 1.1em; + line-height: 1.4; + margin: 10px 0 5px; + padding-top: 10px +} +h5, h6 { + font-size: .9em; +} +h5 { + font-weight: bold; + text-transform: uppercase; +} +h6 { + font-weight: normal; + color: #AAA; +} +img { + width: 100%; + border-radius: 5px; + display: block; + margin-bottom: 15px; + height: auto; +} +dl, ol, ul { + margin-top: 12px; + margin-bottom: 20px; + padding-left: 5%; + line-height: 1.8; +} +p { + margin: 0 0 20px; + padding: 0; + line-height: 1.8; +} +a { + color: #f22f27; + text-decoration: none; +} +a:hover { + color: #f55852; + text-decoration: underline; +} +a:focus { + outline-offset: -2px; +} +blockquote { + font-size: 1em; + font-style: normal; + padding: 30px 38px; + margin: 0 0 15px; + position: relative; + line-height: 1.8; + text-indent: 0; + border: none; + color: #888; +} +blockquote:before { + content: "“"; + left: 12px; + top: 0; + color: #E0E0E0; + font-size: 4em; + font-family: Arial, serif; + line-height: 1em; + font-weight: 700; + position: absolute; +} +blockquote:after { + content: "”"; + right: 12px; + bottom: -26px; + color: #E0E0E0; + font-size: 4em; + font-family: Arial, serif; + line-height: 1em; + font-weight: 700; + position: absolute; + bottom: -31px; +} +strong, dfn { + font-weight: 700; +} +em, dfn { + font-style: italic; + font-weight: 400; +} +del { + text-decoration: line-through; +} +/*code {font-size:90%;}*/ + +/*pre {text-align:left; overflow-x: scroll; color: #257fa0; background: #f6f6f6; padding: 10pt 15pt; border-radius: 3px; border: solid 1px #e2e2e2;}*/ + +pre { + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857; + word-break: break-all; + word-wrap: break-word; + border-radius: 4px; + white-space: pre-wrap; + display: block; + background: #f8f8f8; + padding: 10px 20px; + border: none; + margin-bottom: 25px; + color: #666; + font-family: Courier, sans-serif; +} +code { + color: #c7254e; + background-color: #f9f2f4; + border-radius: 4px; + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + padding: 2px 4px; + font-size: 90%; +} +p>code { + color: #c7264e; + background-color: #f9f2f4; + font-size: .95em; + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; +} +figure { + margin: 1em 0; +} +figcaption { + font-size: 0.75em; + padding: 0.5em 2em; + margin-bottom: 2em; +} +figure img { + margin-bottom: 0px; +} +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eee; +} +ol p, ul p { + margin-bottom: 0px; +} +li { + margin-bottom: 0.75em; + margin-top: 0.75em; +} +ol#footnotes { + font-size: 0.95em; + padding-top: 1em; + margin-top: 1em; + margin-left: 0; + border-top: 1px solid #eaeaea; + counter-reset: footer-counter; + list-style: none; + color: #555; + padding-left: 5%; + margin: 20px 0; +} +ol#footnotes li { + margin-bottom: 10px; + margin-left: 16px; + font-weight: 400; + line-height: 2; + list-style-type: none; +} +ol#footnotes li:before { + content: counter(footer-counter) ". "; + counter-increment: footer-counter; + font-weight: 800; + font-size: .95em; +} +@keyframes highfade { + 0% { + background-color: none; + } + 20% { + background-color: yellow; + } + 100% { + background-color: none; + } +} +@-webkit-keyframes highfade { + 0% { + background-color: none; + } + 20% { + background-color: yellow; + } + 100% { + background-color: none; + } +} +a:target, ol#footnotes li:target, sup a:target { + animation-name: highfade; + animation-duration: 2s; + animation-iteration-count: 1; + animation-timing-function: ease-in-out; + -webkit-animation-name: highfade; + -webkit-animation-duration: 2s; + -webkit-animation-iteration-count: 1; + -webkit-animation-timing-function: ease-in-out; +} +a:target { + border: 0; + outline: 0; +} \ No newline at end of file diff --git a/package.json b/package.json index ef0b99d..3e919c4 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "obsidian-image-share", + "name": "image-share", "version": "1.0.0", "description": "share text as image", "main": "main.js", @@ -8,8 +8,8 @@ "build": "tsc -noEmit -skipLibCheck && node esbuild.config.mjs production", "version": "node version-bump.mjs && git add manifest.json versions.json" }, - "keywords": [], - "author": "shawn", + "keywords": ["share","image"], + "author": "Shawn", "license": "MIT", "devDependencies": { "@types/node": "^16.11.6", diff --git a/versions.json b/versions.json index 26382a1..7b26de4 100644 --- a/versions.json +++ b/versions.json @@ -1,3 +1,3 @@ { - "1.0.0": "0.15.0" + "0.0.1": "1.18.0" }