Edit Book: Add in-context help for HTML and CSS

Now, you can right click on any HTML/OPF/NCX tag name or CSS property
and the editor will open some help for that item in your browser.
This commit is contained in:
Kovid Goyal 2014-07-13 15:56:14 +05:30
parent d78c2b1b57
commit c5e05cdb2e
13 changed files with 834 additions and 8 deletions

View File

@ -0,0 +1,340 @@
{
"::after": "https://developer.mozilla.org/docs/Web/CSS/::after",
"::before": "https://developer.mozilla.org/docs/Web/CSS/::before",
"::choices": "https://developer.mozilla.org/docs/Web/CSS/::choices",
"::first-letter": "https://developer.mozilla.org/docs/Web/CSS/::first-letter",
"::first-line": "https://developer.mozilla.org/docs/Web/CSS/::first-line",
"::repeat-index": "https://developer.mozilla.org/docs/Web/CSS/::repeat-index",
"::repeat-item": "https://developer.mozilla.org/docs/Web/CSS/::repeat-item",
"::selection": "https://developer.mozilla.org/docs/Web/CSS/::selection",
"::value": "https://developer.mozilla.org/docs/Web/CSS/::value",
":active": "https://developer.mozilla.org/docs/Web/CSS/:active",
":checked": "https://developer.mozilla.org/docs/Web/CSS/:checked",
":default": "https://developer.mozilla.org/docs/Web/CSS/:default",
":dir": "https://developer.mozilla.org/docs/Web/CSS/:dir",
":disabled": "https://developer.mozilla.org/docs/Web/CSS/:disabled",
":empty": "https://developer.mozilla.org/docs/Web/CSS/:empty",
":enabled": "https://developer.mozilla.org/docs/Web/CSS/:enabled",
":first": "https://developer.mozilla.org/docs/Web/CSS/:first",
":first-child": "https://developer.mozilla.org/docs/Web/CSS/:first-child",
":first-of-type": "https://developer.mozilla.org/docs/Web/CSS/:first-of-type",
":focus": "https://developer.mozilla.org/docs/Web/CSS/:focus",
":fullscreen": "https://developer.mozilla.org/docs/Web/CSS/:fullscreen",
":hover": "https://developer.mozilla.org/docs/Web/CSS/:hover",
":in-range": "https://developer.mozilla.org/docs/Web/CSS/:in-range",
":indeterminate": "https://developer.mozilla.org/docs/Web/CSS/:indeterminate",
":invalid": "https://developer.mozilla.org/docs/Web/CSS/:invalid",
":lang": "https://developer.mozilla.org/docs/Web/CSS/:lang",
":last-child": "https://developer.mozilla.org/docs/Web/CSS/:last-child",
":last-of-type": "https://developer.mozilla.org/docs/Web/CSS/:last-of-type",
":left": "https://developer.mozilla.org/docs/Web/CSS/:left",
":link": "https://developer.mozilla.org/docs/Web/CSS/:link",
":not": "https://developer.mozilla.org/docs/Web/CSS/:not",
":nth-child": "https://developer.mozilla.org/docs/Web/CSS/:nth-child",
":nth-last-child": "https://developer.mozilla.org/docs/Web/CSS/:nth-last-child",
":nth-last-of-type": "https://developer.mozilla.org/docs/Web/CSS/:nth-last-of-type",
":nth-of-type": "https://developer.mozilla.org/docs/Web/CSS/:nth-of-type",
":only-child": "https://developer.mozilla.org/docs/Web/CSS/:only-child",
":only-of-type": "https://developer.mozilla.org/docs/Web/CSS/:only-of-type",
":optional": "https://developer.mozilla.org/docs/Web/CSS/:optional",
":out-of-range": "https://developer.mozilla.org/docs/Web/CSS/:out-of-range",
":read-only": "https://developer.mozilla.org/docs/Web/CSS/:read-only",
":read-write": "https://developer.mozilla.org/docs/Web/CSS/:read-write",
":required": "https://developer.mozilla.org/docs/Web/CSS/:required",
":right": "https://developer.mozilla.org/docs/Web/CSS/:right",
":root": "https://developer.mozilla.org/docs/Web/CSS/:root",
":scope": "https://developer.mozilla.org/docs/Web/CSS/:scope",
":target": "https://developer.mozilla.org/docs/Web/CSS/:target",
":valid": "https://developer.mozilla.org/docs/Web/CSS/:valid",
":visited": "https://developer.mozilla.org/docs/Web/CSS/:visited",
"<basic-shape>": "https://developer.mozilla.org/docs/Web/CSS/<basic-shape>",
"@charset": "https://developer.mozilla.org/docs/Web/CSS/@charset",
"@counter-style": "https://developer.mozilla.org/docs/Web/CSS/@counter-style",
"@document": "https://developer.mozilla.org/docs/Web/CSS/@document",
"@font-face": "https://developer.mozilla.org/docs/Web/CSS/@font-face",
"@font-feature-values": "https://developer.mozilla.org/docs/Web/CSS/@font-feature-values",
"@import": "https://developer.mozilla.org/docs/Web/CSS/@import",
"@keyframes": "https://developer.mozilla.org/docs/Web/CSS/@keyframes",
"@media": "https://developer.mozilla.org/docs/Web/CSS/@media",
"@namespace": "https://developer.mozilla.org/docs/Web/CSS/@namespace",
"@page": "https://developer.mozilla.org/docs/Web/CSS/@page",
"@supports": "https://developer.mozilla.org/docs/Web/CSS/@supports",
"@viewport": "https://developer.mozilla.org/docs/Web/CSS/@viewport",
"align-content": "https://developer.mozilla.org/docs/Web/CSS/align-content",
"align-items": "https://developer.mozilla.org/docs/Web/CSS/align-items",
"align-self": "https://developer.mozilla.org/docs/Web/CSS/align-self",
"all": "https://developer.mozilla.org/docs/Web/CSS/all",
"angle": "https://developer.mozilla.org/docs/Web/CSS/angle",
"animation": "https://developer.mozilla.org/docs/Web/CSS/animation",
"animation-delay": "https://developer.mozilla.org/docs/Web/CSS/animation-delay",
"animation-direction": "https://developer.mozilla.org/docs/Web/CSS/animation-direction",
"animation-duration": "https://developer.mozilla.org/docs/Web/CSS/animation-duration",
"animation-fill-mode": "https://developer.mozilla.org/docs/Web/CSS/animation-fill-mode",
"animation-iteration-count": "https://developer.mozilla.org/docs/Web/CSS/animation-iteration-count",
"animation-name": "https://developer.mozilla.org/docs/Web/CSS/animation-name",
"animation-play-state": "https://developer.mozilla.org/docs/Web/CSS/animation-play-state",
"animation-timing-function": "https://developer.mozilla.org/docs/Web/CSS/animation-timing-function",
"attr": "https://developer.mozilla.org/docs/Web/CSS/attr",
"auto": "https://developer.mozilla.org/docs/Web/CSS/auto",
"backface-visibility": "https://developer.mozilla.org/docs/Web/CSS/backface-visibility",
"background": "https://developer.mozilla.org/docs/Web/CSS/background",
"background-attachment": "https://developer.mozilla.org/docs/Web/CSS/background-attachment",
"background-blend-mode": "https://developer.mozilla.org/docs/Web/CSS/background-blend-mode",
"background-clip": "https://developer.mozilla.org/docs/Web/CSS/background-clip",
"background-color": "https://developer.mozilla.org/docs/Web/CSS/background-color",
"background-image": "https://developer.mozilla.org/docs/Web/CSS/background-image",
"background-origin": "https://developer.mozilla.org/docs/Web/CSS/background-origin",
"background-position": "https://developer.mozilla.org/docs/Web/CSS/background-position",
"background-repeat": "https://developer.mozilla.org/docs/Web/CSS/background-repeat",
"background-size": "https://developer.mozilla.org/docs/Web/CSS/background-size",
"blend-mode": "https://developer.mozilla.org/docs/Web/CSS/blend-mode",
"border": "https://developer.mozilla.org/docs/Web/CSS/border",
"border-bottom": "https://developer.mozilla.org/docs/Web/CSS/border-bottom",
"border-bottom-color": "https://developer.mozilla.org/docs/Web/CSS/border-bottom-color",
"border-bottom-left-radius": "https://developer.mozilla.org/docs/Web/CSS/border-bottom-left-radius",
"border-bottom-right-radius": "https://developer.mozilla.org/docs/Web/CSS/border-bottom-right-radius",
"border-bottom-style": "https://developer.mozilla.org/docs/Web/CSS/border-bottom-style",
"border-bottom-width": "https://developer.mozilla.org/docs/Web/CSS/border-bottom-width",
"border-collapse": "https://developer.mozilla.org/docs/Web/CSS/border-collapse",
"border-color": "https://developer.mozilla.org/docs/Web/CSS/border-color",
"border-image": "https://developer.mozilla.org/docs/Web/CSS/border-image",
"border-image-outset": "https://developer.mozilla.org/docs/Web/CSS/border-image-outset",
"border-image-repeat": "https://developer.mozilla.org/docs/Web/CSS/border-image-repeat",
"border-image-slice": "https://developer.mozilla.org/docs/Web/CSS/border-image-slice",
"border-image-source": "https://developer.mozilla.org/docs/Web/CSS/border-image-source",
"border-image-width": "https://developer.mozilla.org/docs/Web/CSS/border-image-width",
"border-left": "https://developer.mozilla.org/docs/Web/CSS/border-left",
"border-left-color": "https://developer.mozilla.org/docs/Web/CSS/border-left-color",
"border-left-style": "https://developer.mozilla.org/docs/Web/CSS/border-left-style",
"border-left-width": "https://developer.mozilla.org/docs/Web/CSS/border-left-width",
"border-radius": "https://developer.mozilla.org/docs/Web/CSS/border-radius",
"border-right": "https://developer.mozilla.org/docs/Web/CSS/border-right",
"border-right-color": "https://developer.mozilla.org/docs/Web/CSS/border-right-color",
"border-right-style": "https://developer.mozilla.org/docs/Web/CSS/border-right-style",
"border-right-width": "https://developer.mozilla.org/docs/Web/CSS/border-right-width",
"border-spacing": "https://developer.mozilla.org/docs/Web/CSS/border-spacing",
"border-style": "https://developer.mozilla.org/docs/Web/CSS/border-style",
"border-top": "https://developer.mozilla.org/docs/Web/CSS/border-top",
"border-top-color": "https://developer.mozilla.org/docs/Web/CSS/border-top-color",
"border-top-left-radius": "https://developer.mozilla.org/docs/Web/CSS/border-top-left-radius",
"border-top-right-radius": "https://developer.mozilla.org/docs/Web/CSS/border-top-right-radius",
"border-top-style": "https://developer.mozilla.org/docs/Web/CSS/border-top-style",
"border-top-width": "https://developer.mozilla.org/docs/Web/CSS/border-top-width",
"border-width": "https://developer.mozilla.org/docs/Web/CSS/border-width",
"bottom": "https://developer.mozilla.org/docs/Web/CSS/bottom",
"box-decoration-break": "https://developer.mozilla.org/docs/Web/CSS/box-decoration-break",
"box-shadow": "https://developer.mozilla.org/docs/Web/CSS/box-shadow",
"box-sizing": "https://developer.mozilla.org/docs/Web/CSS/box-sizing",
"break-after": "https://developer.mozilla.org/docs/Web/CSS/break-after",
"break-before": "https://developer.mozilla.org/docs/Web/CSS/break-before",
"break-inside": "https://developer.mozilla.org/docs/Web/CSS/break-inside",
"calc": "https://developer.mozilla.org/docs/Web/CSS/calc",
"caption-side": "https://developer.mozilla.org/docs/Web/CSS/caption-side",
"clear": "https://developer.mozilla.org/docs/Web/CSS/clear",
"clip": "https://developer.mozilla.org/docs/Web/CSS/clip",
"clip-path": "https://developer.mozilla.org/docs/Web/CSS/clip-path",
"color": "https://developer.mozilla.org/docs/Web/CSS/color",
"color_value": "https://developer.mozilla.org/docs/Web/CSS/color_value",
"column-count": "https://developer.mozilla.org/docs/Web/CSS/column-count",
"column-fill": "https://developer.mozilla.org/docs/Web/CSS/column-fill",
"column-gap": "https://developer.mozilla.org/docs/Web/CSS/column-gap",
"column-rule": "https://developer.mozilla.org/docs/Web/CSS/column-rule",
"column-rule-color": "https://developer.mozilla.org/docs/Web/CSS/column-rule-color",
"column-rule-style": "https://developer.mozilla.org/docs/Web/CSS/column-rule-style",
"column-rule-width": "https://developer.mozilla.org/docs/Web/CSS/column-rule-width",
"column-span": "https://developer.mozilla.org/docs/Web/CSS/column-span",
"column-width": "https://developer.mozilla.org/docs/Web/CSS/column-width",
"columns": "https://developer.mozilla.org/docs/Web/CSS/columns",
"content": "https://developer.mozilla.org/docs/Web/CSS/content",
"counter": "https://developer.mozilla.org/docs/Web/CSS/counter",
"counter-increment": "https://developer.mozilla.org/docs/Web/CSS/counter-increment",
"counter-reset": "https://developer.mozilla.org/docs/Web/CSS/counter-reset",
"cross-fade": "https://developer.mozilla.org/docs/Web/CSS/cross-fade",
"cursor": "https://developer.mozilla.org/docs/Web/CSS/cursor",
"custom-ident": "https://developer.mozilla.org/docs/Web/CSS/custom-ident",
"cycle": "https://developer.mozilla.org/docs/Web/CSS/cycle",
"direction": "https://developer.mozilla.org/docs/Web/CSS/direction",
"display": "https://developer.mozilla.org/docs/Web/CSS/display",
"element": "https://developer.mozilla.org/docs/Web/CSS/element",
"empty-cells": "https://developer.mozilla.org/docs/Web/CSS/empty-cells",
"filter": "https://developer.mozilla.org/docs/Web/CSS/filter",
"flex": "https://developer.mozilla.org/docs/Web/CSS/flex",
"flex-basis": "https://developer.mozilla.org/docs/Web/CSS/flex-basis",
"flex-direction": "https://developer.mozilla.org/docs/Web/CSS/flex-direction",
"flex-flow": "https://developer.mozilla.org/docs/Web/CSS/flex-flow",
"flex-grow": "https://developer.mozilla.org/docs/Web/CSS/flex-grow",
"flex-shrink": "https://developer.mozilla.org/docs/Web/CSS/flex-shrink",
"flex-wrap": "https://developer.mozilla.org/docs/Web/CSS/flex-wrap",
"float": "https://developer.mozilla.org/docs/Web/CSS/float",
"font": "https://developer.mozilla.org/docs/Web/CSS/font",
"font-family": "https://developer.mozilla.org/docs/Web/CSS/font-family",
"font-feature-settings": "https://developer.mozilla.org/docs/Web/CSS/font-feature-settings",
"font-kerning": "https://developer.mozilla.org/docs/Web/CSS/font-kerning",
"font-language-override": "https://developer.mozilla.org/docs/Web/CSS/font-language-override",
"font-size": "https://developer.mozilla.org/docs/Web/CSS/font-size",
"font-size-adjust": "https://developer.mozilla.org/docs/Web/CSS/font-size-adjust",
"font-stretch": "https://developer.mozilla.org/docs/Web/CSS/font-stretch",
"font-style": "https://developer.mozilla.org/docs/Web/CSS/font-style",
"font-synthesis": "https://developer.mozilla.org/docs/Web/CSS/font-synthesis",
"font-variant": "https://developer.mozilla.org/docs/Web/CSS/font-variant",
"font-variant-alternates": "https://developer.mozilla.org/docs/Web/CSS/font-variant-alternates",
"font-variant-caps": "https://developer.mozilla.org/docs/Web/CSS/font-variant-caps",
"font-variant-east-asian": "https://developer.mozilla.org/docs/Web/CSS/font-variant-east-asian",
"font-variant-ligatures": "https://developer.mozilla.org/docs/Web/CSS/font-variant-ligatures",
"font-variant-numeric": "https://developer.mozilla.org/docs/Web/CSS/font-variant-numeric",
"font-variant-position": "https://developer.mozilla.org/docs/Web/CSS/font-variant-position",
"font-weight": "https://developer.mozilla.org/docs/Web/CSS/font-weight",
"frequency": "https://developer.mozilla.org/docs/Web/CSS/frequency",
"gradient": "https://developer.mozilla.org/docs/Web/CSS/gradient",
"grid": "https://developer.mozilla.org/docs/Web/CSS/grid",
"grid-area": "https://developer.mozilla.org/docs/Web/CSS/grid-area",
"grid-auto-columns": "https://developer.mozilla.org/docs/Web/CSS/grid-auto-columns",
"grid-auto-flow": "https://developer.mozilla.org/docs/Web/CSS/grid-auto-flow",
"grid-auto-position": "https://developer.mozilla.org/docs/Web/CSS/grid-auto-position",
"grid-auto-rows": "https://developer.mozilla.org/docs/Web/CSS/grid-auto-rows",
"grid-column": "https://developer.mozilla.org/docs/Web/CSS/grid-column",
"grid-column-end": "https://developer.mozilla.org/docs/Web/CSS/grid-column-end",
"grid-column-start": "https://developer.mozilla.org/docs/Web/CSS/grid-column-start",
"grid-row": "https://developer.mozilla.org/docs/Web/CSS/grid-row",
"grid-row-end": "https://developer.mozilla.org/docs/Web/CSS/grid-row-end",
"grid-row-start": "https://developer.mozilla.org/docs/Web/CSS/grid-row-start",
"grid-template": "https://developer.mozilla.org/docs/Web/CSS/grid-template",
"grid-template-areas": "https://developer.mozilla.org/docs/Web/CSS/grid-template-areas",
"grid-template-columns": "https://developer.mozilla.org/docs/Web/CSS/grid-template-columns",
"grid-template-rows": "https://developer.mozilla.org/docs/Web/CSS/grid-template-rows",
"height": "https://developer.mozilla.org/docs/Web/CSS/height",
"hyphens": "https://developer.mozilla.org/docs/Web/CSS/hyphens",
"icon": "https://developer.mozilla.org/docs/Web/CSS/icon",
"image": "https://developer.mozilla.org/docs/Web/CSS/image",
"image()": "https://developer.mozilla.org/docs/Web/CSS/image()",
"image-orientation": "https://developer.mozilla.org/docs/Web/CSS/image-orientation",
"image-rendering": "https://developer.mozilla.org/docs/Web/CSS/image-rendering",
"image-resolution": "https://developer.mozilla.org/docs/Web/CSS/image-resolution",
"ime-mode": "https://developer.mozilla.org/docs/Web/CSS/ime-mode",
"inherit": "https://developer.mozilla.org/docs/Web/CSS/inherit",
"initial": "https://developer.mozilla.org/docs/Web/CSS/initial",
"integer": "https://developer.mozilla.org/docs/Web/CSS/integer",
"isolation": "https://developer.mozilla.org/docs/Web/CSS/isolation",
"justify-content": "https://developer.mozilla.org/docs/Web/CSS/justify-content",
"left": "https://developer.mozilla.org/docs/Web/CSS/left",
"length": "https://developer.mozilla.org/docs/Web/CSS/length",
"letter-spacing": "https://developer.mozilla.org/docs/Web/CSS/letter-spacing",
"line-break": "https://developer.mozilla.org/docs/Web/CSS/line-break",
"line-height": "https://developer.mozilla.org/docs/Web/CSS/line-height",
"linear-gradient": "https://developer.mozilla.org/docs/Web/CSS/linear-gradient",
"list-style": "https://developer.mozilla.org/docs/Web/CSS/list-style",
"list-style-image": "https://developer.mozilla.org/docs/Web/CSS/list-style-image",
"list-style-position": "https://developer.mozilla.org/docs/Web/CSS/list-style-position",
"list-style-type": "https://developer.mozilla.org/docs/Web/CSS/list-style-type",
"margin": "https://developer.mozilla.org/docs/Web/CSS/margin",
"margin-bottom": "https://developer.mozilla.org/docs/Web/CSS/margin-bottom",
"margin-left": "https://developer.mozilla.org/docs/Web/CSS/margin-left",
"margin-right": "https://developer.mozilla.org/docs/Web/CSS/margin-right",
"margin-top": "https://developer.mozilla.org/docs/Web/CSS/margin-top",
"marks": "https://developer.mozilla.org/docs/Web/CSS/marks",
"mask": "https://developer.mozilla.org/docs/Web/CSS/mask",
"mask-type": "https://developer.mozilla.org/docs/Web/CSS/mask-type",
"max-height": "https://developer.mozilla.org/docs/Web/CSS/max-height",
"max-width": "https://developer.mozilla.org/docs/Web/CSS/max-width",
"min-height": "https://developer.mozilla.org/docs/Web/CSS/min-height",
"min-width": "https://developer.mozilla.org/docs/Web/CSS/min-width",
"minmax": "https://developer.mozilla.org/docs/Web/CSS/minmax",
"mix-blend-mode": "https://developer.mozilla.org/docs/Web/CSS/mix-blend-mode",
"nav-down": "https://developer.mozilla.org/docs/Web/CSS/nav-down",
"nav-index": "https://developer.mozilla.org/docs/Web/CSS/nav-index",
"nav-left": "https://developer.mozilla.org/docs/Web/CSS/nav-left",
"nav-right": "https://developer.mozilla.org/docs/Web/CSS/nav-right",
"nav-up": "https://developer.mozilla.org/docs/Web/CSS/nav-up",
"none": "https://developer.mozilla.org/docs/Web/CSS/none",
"normal": "https://developer.mozilla.org/docs/Web/CSS/normal",
"number": "https://developer.mozilla.org/docs/Web/CSS/number",
"object-fit": "https://developer.mozilla.org/docs/Web/CSS/object-fit",
"object-position": "https://developer.mozilla.org/docs/Web/CSS/object-position",
"opacity": "https://developer.mozilla.org/docs/Web/CSS/opacity",
"order": "https://developer.mozilla.org/docs/Web/CSS/order",
"orphans": "https://developer.mozilla.org/docs/Web/CSS/orphans",
"outline": "https://developer.mozilla.org/docs/Web/CSS/outline",
"outline-color": "https://developer.mozilla.org/docs/Web/CSS/outline-color",
"outline-offset": "https://developer.mozilla.org/docs/Web/CSS/outline-offset",
"outline-style": "https://developer.mozilla.org/docs/Web/CSS/outline-style",
"outline-width": "https://developer.mozilla.org/docs/Web/CSS/outline-width",
"overflow": "https://developer.mozilla.org/docs/Web/CSS/overflow",
"overflow-clip-box": "https://developer.mozilla.org/docs/Web/CSS/overflow-clip-box",
"overflow-wrap": "https://developer.mozilla.org/docs/Web/CSS/overflow-wrap",
"overflow-x": "https://developer.mozilla.org/docs/Web/CSS/overflow-x",
"overflow-y": "https://developer.mozilla.org/docs/Web/CSS/overflow-y",
"padding": "https://developer.mozilla.org/docs/Web/CSS/padding",
"padding-bottom": "https://developer.mozilla.org/docs/Web/CSS/padding-bottom",
"padding-left": "https://developer.mozilla.org/docs/Web/CSS/padding-left",
"padding-right": "https://developer.mozilla.org/docs/Web/CSS/padding-right",
"padding-top": "https://developer.mozilla.org/docs/Web/CSS/padding-top",
"page-break-after": "https://developer.mozilla.org/docs/Web/CSS/page-break-after",
"page-break-before": "https://developer.mozilla.org/docs/Web/CSS/page-break-before",
"page-break-inside": "https://developer.mozilla.org/docs/Web/CSS/page-break-inside",
"percentage": "https://developer.mozilla.org/docs/Web/CSS/percentage",
"perspective": "https://developer.mozilla.org/docs/Web/CSS/perspective",
"perspective-origin": "https://developer.mozilla.org/docs/Web/CSS/perspective-origin",
"pointer-events": "https://developer.mozilla.org/docs/Web/CSS/pointer-events",
"position": "https://developer.mozilla.org/docs/Web/CSS/position",
"position_value": "https://developer.mozilla.org/docs/Web/CSS/position_value",
"quotes": "https://developer.mozilla.org/docs/Web/CSS/quotes",
"radial-gradient": "https://developer.mozilla.org/docs/Web/CSS/radial-gradient",
"ratio": "https://developer.mozilla.org/docs/Web/CSS/ratio",
"repeat": "https://developer.mozilla.org/docs/Web/CSS/repeat",
"repeating-linear-gradient": "https://developer.mozilla.org/docs/Web/CSS/repeating-linear-gradient",
"repeating-radial-gradient": "https://developer.mozilla.org/docs/Web/CSS/repeating-radial-gradient",
"resize": "https://developer.mozilla.org/docs/Web/CSS/resize",
"resolution": "https://developer.mozilla.org/docs/Web/CSS/resolution",
"right": "https://developer.mozilla.org/docs/Web/CSS/right",
"shape": "https://developer.mozilla.org/docs/Web/CSS/shape",
"shape-image-threshold": "https://developer.mozilla.org/docs/Web/CSS/shape-image-threshold",
"shape-margin": "https://developer.mozilla.org/docs/Web/CSS/shape-margin",
"shape-outside": "https://developer.mozilla.org/docs/Web/CSS/shape-outside",
"string": "https://developer.mozilla.org/docs/Web/CSS/string",
"tab-size": "https://developer.mozilla.org/docs/Web/CSS/tab-size",
"table-layout": "https://developer.mozilla.org/docs/Web/CSS/table-layout",
"text-align": "https://developer.mozilla.org/docs/Web/CSS/text-align",
"text-align-last": "https://developer.mozilla.org/docs/Web/CSS/text-align-last",
"text-combine-horizontal": "https://developer.mozilla.org/docs/Web/CSS/text-combine-horizontal",
"text-decoration": "https://developer.mozilla.org/docs/Web/CSS/text-decoration",
"text-decoration-color": "https://developer.mozilla.org/docs/Web/CSS/text-decoration-color",
"text-decoration-line": "https://developer.mozilla.org/docs/Web/CSS/text-decoration-line",
"text-decoration-style": "https://developer.mozilla.org/docs/Web/CSS/text-decoration-style",
"text-indent": "https://developer.mozilla.org/docs/Web/CSS/text-indent",
"text-orientation": "https://developer.mozilla.org/docs/Web/CSS/text-orientation",
"text-overflow": "https://developer.mozilla.org/docs/Web/CSS/text-overflow",
"text-rendering": "https://developer.mozilla.org/docs/Web/CSS/text-rendering",
"text-shadow": "https://developer.mozilla.org/docs/Web/CSS/text-shadow",
"text-transform": "https://developer.mozilla.org/docs/Web/CSS/text-transform",
"text-underline-position": "https://developer.mozilla.org/docs/Web/CSS/text-underline-position",
"time": "https://developer.mozilla.org/docs/Web/CSS/time",
"timing-function": "https://developer.mozilla.org/docs/Web/CSS/timing-function",
"top": "https://developer.mozilla.org/docs/Web/CSS/top",
"touch-action": "https://developer.mozilla.org/docs/Web/CSS/touch-action",
"transform": "https://developer.mozilla.org/docs/Web/CSS/transform",
"transform-function": "https://developer.mozilla.org/docs/Web/CSS/transform-function",
"transform-origin": "https://developer.mozilla.org/docs/Web/CSS/transform-origin",
"transform-style": "https://developer.mozilla.org/docs/Web/CSS/transform-style",
"transition": "https://developer.mozilla.org/docs/Web/CSS/transition",
"transition-delay": "https://developer.mozilla.org/docs/Web/CSS/transition-delay",
"transition-duration": "https://developer.mozilla.org/docs/Web/CSS/transition-duration",
"transition-property": "https://developer.mozilla.org/docs/Web/CSS/transition-property",
"transition-timing-function": "https://developer.mozilla.org/docs/Web/CSS/transition-timing-function",
"unicode-bidi": "https://developer.mozilla.org/docs/Web/CSS/unicode-bidi",
"unicode-range": "https://developer.mozilla.org/docs/Web/CSS/unicode-range",
"unset": "https://developer.mozilla.org/docs/Web/CSS/unset",
"uri": "https://developer.mozilla.org/docs/Web/CSS/uri",
"user-ident": "https://developer.mozilla.org/docs/Web/CSS/user-ident",
"var": "https://developer.mozilla.org/docs/Web/CSS/var",
"vertical-align": "https://developer.mozilla.org/docs/Web/CSS/vertical-align",
"visibility": "https://developer.mozilla.org/docs/Web/CSS/visibility",
"white-space": "https://developer.mozilla.org/docs/Web/CSS/white-space",
"widows": "https://developer.mozilla.org/docs/Web/CSS/widows",
"width": "https://developer.mozilla.org/docs/Web/CSS/width",
"will-change": "https://developer.mozilla.org/docs/Web/CSS/will-change",
"word-break": "https://developer.mozilla.org/docs/Web/CSS/word-break",
"word-spacing": "https://developer.mozilla.org/docs/Web/CSS/word-spacing",
"word-wrap": "https://developer.mozilla.org/docs/Web/CSS/word-wrap",
"writing-mode": "https://developer.mozilla.org/docs/Web/CSS/writing-mode",
"z-index": "https://developer.mozilla.org/docs/Web/CSS/z-index"
}

View File

@ -0,0 +1,140 @@
{
"a": "https://developer.mozilla.org/docs/Web/HTML/Element/a",
"abbr": "https://developer.mozilla.org/docs/Web/HTML/Element/abbr",
"acronym": "https://developer.mozilla.org/docs/Web/HTML/Element/acronym",
"address": "https://developer.mozilla.org/docs/Web/HTML/Element/address",
"applet": "https://developer.mozilla.org/docs/Web/HTML/Element/applet",
"area": "https://developer.mozilla.org/docs/Web/HTML/Element/area",
"article": "https://developer.mozilla.org/docs/Web/HTML/Element/article",
"aside": "https://developer.mozilla.org/docs/Web/HTML/Element/aside",
"audio": "https://developer.mozilla.org/docs/Web/HTML/Element/audio",
"b": "https://developer.mozilla.org/docs/Web/HTML/Element/b",
"base": "https://developer.mozilla.org/docs/Web/HTML/Element/base",
"basefont": "https://developer.mozilla.org/docs/Web/HTML/Element/basefont",
"bdi": "https://developer.mozilla.org/docs/Web/HTML/Element/bdi",
"bdo": "https://developer.mozilla.org/docs/Web/HTML/Element/bdo",
"bgsound": "https://developer.mozilla.org/docs/Web/HTML/Element/bgsound",
"big": "https://developer.mozilla.org/docs/Web/HTML/Element/big",
"blink": "https://developer.mozilla.org/docs/Web/HTML/Element/blink",
"blockquote": "https://developer.mozilla.org/docs/Web/HTML/Element/blockquote",
"body": "https://developer.mozilla.org/docs/Web/HTML/Element/body",
"br": "https://developer.mozilla.org/docs/Web/HTML/Element/br",
"button": "https://developer.mozilla.org/docs/Web/HTML/Element/button",
"canvas": "https://developer.mozilla.org/docs/Web/HTML/Element/canvas",
"caption": "https://developer.mozilla.org/docs/Web/HTML/Element/caption",
"center": "https://developer.mozilla.org/docs/Web/HTML/Element/center",
"cite": "https://developer.mozilla.org/docs/Web/HTML/Element/cite",
"code": "https://developer.mozilla.org/docs/Web/HTML/Element/code",
"col": "https://developer.mozilla.org/docs/Web/HTML/Element/col",
"colgroup": "https://developer.mozilla.org/docs/Web/HTML/Element/colgroup",
"content": "https://developer.mozilla.org/docs/Web/HTML/Element/content",
"data": "https://developer.mozilla.org/docs/Web/HTML/Element/data",
"datalist": "https://developer.mozilla.org/docs/Web/HTML/Element/datalist",
"dd": "https://developer.mozilla.org/docs/Web/HTML/Element/dd",
"decorator": "https://developer.mozilla.org/docs/Web/HTML/Element/decorator",
"del": "https://developer.mozilla.org/docs/Web/HTML/Element/del",
"details": "https://developer.mozilla.org/docs/Web/HTML/Element/details",
"dfn": "https://developer.mozilla.org/docs/Web/HTML/Element/dfn",
"dialog": "https://developer.mozilla.org/docs/Web/HTML/Element/dialog",
"dir": "https://developer.mozilla.org/docs/Web/HTML/Element/dir",
"div": "https://developer.mozilla.org/docs/Web/HTML/Element/div",
"dl": "https://developer.mozilla.org/docs/Web/HTML/Element/dl",
"dt": "https://developer.mozilla.org/docs/Web/HTML/Element/dt",
"element": "https://developer.mozilla.org/docs/Web/HTML/Element/element",
"em": "https://developer.mozilla.org/docs/Web/HTML/Element/em",
"embed": "https://developer.mozilla.org/docs/Web/HTML/Element/embed",
"fieldset": "https://developer.mozilla.org/docs/Web/HTML/Element/fieldset",
"figcaption": "https://developer.mozilla.org/docs/Web/HTML/Element/figcaption",
"figure": "https://developer.mozilla.org/docs/Web/HTML/Element/figure",
"font": "https://developer.mozilla.org/docs/Web/HTML/Element/font",
"footer": "https://developer.mozilla.org/docs/Web/HTML/Element/footer",
"form": "https://developer.mozilla.org/docs/Web/HTML/Element/form",
"frame": "https://developer.mozilla.org/docs/Web/HTML/Element/frame",
"frameset": "https://developer.mozilla.org/docs/Web/HTML/Element/frameset",
"h1": "https://developer.mozilla.org/docs/Web/HTML/Element/h1",
"h2": "https://developer.mozilla.org/docs/Web/HTML/Element/h2",
"h3": "https://developer.mozilla.org/docs/Web/HTML/Element/h3",
"h4": "https://developer.mozilla.org/docs/Web/HTML/Element/h4",
"h5": "https://developer.mozilla.org/docs/Web/HTML/Element/h5",
"h6": "https://developer.mozilla.org/docs/Web/HTML/Element/h6",
"head": "https://developer.mozilla.org/docs/Web/HTML/Element/head",
"header": "https://developer.mozilla.org/docs/Web/HTML/Element/header",
"hgroup": "https://developer.mozilla.org/docs/Web/HTML/Element/hgroup",
"hr": "https://developer.mozilla.org/docs/Web/HTML/Element/hr",
"html": "https://developer.mozilla.org/docs/Web/HTML/Element/html",
"i": "https://developer.mozilla.org/docs/Web/HTML/Element/i",
"iframe": "https://developer.mozilla.org/docs/Web/HTML/Element/iframe",
"img": "https://developer.mozilla.org/docs/Web/HTML/Element/img",
"input": "https://developer.mozilla.org/docs/Web/HTML/Element/input",
"ins": "https://developer.mozilla.org/docs/Web/HTML/Element/ins",
"isindex": "https://developer.mozilla.org/docs/Web/HTML/Element/isindex",
"kbd": "https://developer.mozilla.org/docs/Web/HTML/Element/kbd",
"keygen": "https://developer.mozilla.org/docs/Web/HTML/Element/keygen",
"label": "https://developer.mozilla.org/docs/Web/HTML/Element/label",
"legend": "https://developer.mozilla.org/docs/Web/HTML/Element/legend",
"li": "https://developer.mozilla.org/docs/Web/HTML/Element/li",
"link": "https://developer.mozilla.org/docs/Web/HTML/Element/link",
"listing": "https://developer.mozilla.org/docs/Web/HTML/Element/listing",
"main": "https://developer.mozilla.org/docs/Web/HTML/Element/main",
"map": "https://developer.mozilla.org/docs/Web/HTML/Element/map",
"mark": "https://developer.mozilla.org/docs/Web/HTML/Element/mark",
"marquee": "https://developer.mozilla.org/docs/Web/HTML/Element/marquee",
"menu": "https://developer.mozilla.org/docs/Web/HTML/Element/menu",
"menuitem": "https://developer.mozilla.org/docs/Web/HTML/Element/menuitem",
"meta": "https://developer.mozilla.org/docs/Web/HTML/Element/meta",
"meter": "https://developer.mozilla.org/docs/Web/HTML/Element/meter",
"nav": "https://developer.mozilla.org/docs/Web/HTML/Element/nav",
"nobr": "https://developer.mozilla.org/docs/Web/HTML/Element/nobr",
"noframes": "https://developer.mozilla.org/docs/Web/HTML/Element/noframes",
"noscript": "https://developer.mozilla.org/docs/Web/HTML/Element/noscript",
"object": "https://developer.mozilla.org/docs/Web/HTML/Element/object",
"ol": "https://developer.mozilla.org/docs/Web/HTML/Element/ol",
"optgroup": "https://developer.mozilla.org/docs/Web/HTML/Element/optgroup",
"option": "https://developer.mozilla.org/docs/Web/HTML/Element/option",
"output": "https://developer.mozilla.org/docs/Web/HTML/Element/output",
"p": "https://developer.mozilla.org/docs/Web/HTML/Element/p",
"param": "https://developer.mozilla.org/docs/Web/HTML/Element/param",
"picture": "https://developer.mozilla.org/docs/Web/HTML/Element/picture",
"plaintext": "https://developer.mozilla.org/docs/Web/HTML/Element/plaintext",
"pre": "https://developer.mozilla.org/docs/Web/HTML/Element/pre",
"progress": "https://developer.mozilla.org/docs/Web/HTML/Element/progress",
"q": "https://developer.mozilla.org/docs/Web/HTML/Element/q",
"rp": "https://developer.mozilla.org/docs/Web/HTML/Element/rp",
"rt": "https://developer.mozilla.org/docs/Web/HTML/Element/rt",
"ruby": "https://developer.mozilla.org/docs/Web/HTML/Element/ruby",
"s": "https://developer.mozilla.org/docs/Web/HTML/Element/s",
"samp": "https://developer.mozilla.org/docs/Web/HTML/Element/samp",
"script": "https://developer.mozilla.org/docs/Web/HTML/Element/script",
"section": "https://developer.mozilla.org/docs/Web/HTML/Element/section",
"select": "https://developer.mozilla.org/docs/Web/HTML/Element/select",
"shadow": "https://developer.mozilla.org/docs/Web/HTML/Element/shadow",
"small": "https://developer.mozilla.org/docs/Web/HTML/Element/small",
"source": "https://developer.mozilla.org/docs/Web/HTML/Element/source",
"spacer": "https://developer.mozilla.org/docs/Web/HTML/Element/spacer",
"span": "https://developer.mozilla.org/docs/Web/HTML/Element/span",
"strike": "https://developer.mozilla.org/docs/Web/HTML/Element/strike",
"strong": "https://developer.mozilla.org/docs/Web/HTML/Element/strong",
"style": "https://developer.mozilla.org/docs/Web/HTML/Element/style",
"sub": "https://developer.mozilla.org/docs/Web/HTML/Element/sub",
"summary": "https://developer.mozilla.org/docs/Web/HTML/Element/summary",
"sup": "https://developer.mozilla.org/docs/Web/HTML/Element/sup",
"table": "https://developer.mozilla.org/docs/Web/HTML/Element/table",
"tbody": "https://developer.mozilla.org/docs/Web/HTML/Element/tbody",
"td": "https://developer.mozilla.org/docs/Web/HTML/Element/td",
"template": "https://developer.mozilla.org/docs/Web/HTML/Element/template",
"textarea": "https://developer.mozilla.org/docs/Web/HTML/Element/textarea",
"tfoot": "https://developer.mozilla.org/docs/Web/HTML/Element/tfoot",
"th": "https://developer.mozilla.org/docs/Web/HTML/Element/th",
"thead": "https://developer.mozilla.org/docs/Web/HTML/Element/thead",
"time": "https://developer.mozilla.org/docs/Web/HTML/Element/time",
"title": "https://developer.mozilla.org/docs/Web/HTML/Element/title",
"tr": "https://developer.mozilla.org/docs/Web/HTML/Element/tr",
"track": "https://developer.mozilla.org/docs/Web/HTML/Element/track",
"tt": "https://developer.mozilla.org/docs/Web/HTML/Element/tt",
"u": "https://developer.mozilla.org/docs/Web/HTML/Element/u",
"ul": "https://developer.mozilla.org/docs/Web/HTML/Element/ul",
"var": "https://developer.mozilla.org/docs/Web/HTML/Element/var",
"video": "https://developer.mozilla.org/docs/Web/HTML/Element/video",
"wbr": "https://developer.mozilla.org/docs/Web/HTML/Element/wbr",
"xmp": "https://developer.mozilla.org/docs/Web/HTML/Element/xmp"
}

View File

@ -0,0 +1,42 @@
{
"maction": "https://developer.mozilla.org/docs/Web/MathML/Element/maction",
"maligngroup": "https://developer.mozilla.org/docs/Web/MathML/Element/maligngroup",
"malignmark": "https://developer.mozilla.org/docs/Web/MathML/Element/malignmark",
"math": "https://developer.mozilla.org/docs/Web/MathML/Element/math",
"menclose": "https://developer.mozilla.org/docs/Web/MathML/Element/menclose",
"merror": "https://developer.mozilla.org/docs/Web/MathML/Element/merror",
"mfenced": "https://developer.mozilla.org/docs/Web/MathML/Element/mfenced",
"mfrac": "https://developer.mozilla.org/docs/Web/MathML/Element/mfrac",
"mglyph": "https://developer.mozilla.org/docs/Web/MathML/Element/mglyph",
"mi": "https://developer.mozilla.org/docs/Web/MathML/Element/mi",
"mlabeledtr": "https://developer.mozilla.org/docs/Web/MathML/Element/mlabeledtr",
"mlongdiv": "https://developer.mozilla.org/docs/Web/MathML/Element/mlongdiv",
"mmultiscripts": "https://developer.mozilla.org/docs/Web/MathML/Element/mmultiscripts",
"mn": "https://developer.mozilla.org/docs/Web/MathML/Element/mn",
"mo": "https://developer.mozilla.org/docs/Web/MathML/Element/mo",
"mover": "https://developer.mozilla.org/docs/Web/MathML/Element/mover",
"mpadded": "https://developer.mozilla.org/docs/Web/MathML/Element/mpadded",
"mphantom": "https://developer.mozilla.org/docs/Web/MathML/Element/mphantom",
"mroot": "https://developer.mozilla.org/docs/Web/MathML/Element/mroot",
"mrow": "https://developer.mozilla.org/docs/Web/MathML/Element/mrow",
"ms": "https://developer.mozilla.org/docs/Web/MathML/Element/ms",
"mscarries": "https://developer.mozilla.org/docs/Web/MathML/Element/mscarries",
"mscarry": "https://developer.mozilla.org/docs/Web/MathML/Element/mscarry",
"msgroup": "https://developer.mozilla.org/docs/Web/MathML/Element/msgroup",
"msline": "https://developer.mozilla.org/docs/Web/MathML/Element/msline",
"mspace": "https://developer.mozilla.org/docs/Web/MathML/Element/mspace",
"msqrt": "https://developer.mozilla.org/docs/Web/MathML/Element/msqrt",
"msrow": "https://developer.mozilla.org/docs/Web/MathML/Element/msrow",
"mstack": "https://developer.mozilla.org/docs/Web/MathML/Element/mstack",
"mstyle": "https://developer.mozilla.org/docs/Web/MathML/Element/mstyle",
"msub": "https://developer.mozilla.org/docs/Web/MathML/Element/msub",
"msubsup": "https://developer.mozilla.org/docs/Web/MathML/Element/msubsup",
"msup": "https://developer.mozilla.org/docs/Web/MathML/Element/msup",
"mtable": "https://developer.mozilla.org/docs/Web/MathML/Element/mtable",
"mtd": "https://developer.mozilla.org/docs/Web/MathML/Element/mtd",
"mtext": "https://developer.mozilla.org/docs/Web/MathML/Element/mtext",
"mtr": "https://developer.mozilla.org/docs/Web/MathML/Element/mtr",
"munder": "https://developer.mozilla.org/docs/Web/MathML/Element/munder",
"munderover": "https://developer.mozilla.org/docs/Web/MathML/Element/munderover",
"semantics": "https://developer.mozilla.org/docs/MathML/Element/semantics"
}

View File

@ -0,0 +1,36 @@
{
"content": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.4.1.2",
"contributor": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.2.6",
"coverage": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.2.14",
"creator": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.2.2",
"date": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.2.7",
"description": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.2.4",
"docauthor": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.4.1.2",
"doctitle": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.4.1.2",
"format": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.2.9",
"guide": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.6",
"identifier": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.2.10",
"item": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.3",
"itemref": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.4",
"language": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.2.12",
"manifest": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.3",
"metadata": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.2",
"navlabel": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.4.1.2",
"navmap": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.4.1.2",
"navpoint": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.4.1.2",
"ncx": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.4.1.2",
"package": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.1",
"pagelist": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.4.1.2",
"pagetarget": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.4.1.2",
"publisher": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.2.5",
"reference": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.6",
"relation": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.2.13",
"rights": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.2.15",
"source": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.2.11",
"spine": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.4",
"subject": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.2.3",
"text": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.4.1.2",
"title": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.2.1",
"tours": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.5",
"type": "http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.2.8"
}

View File

@ -0,0 +1,22 @@
{
"bindings": "http://www.idpf.org/epub/301/spec/epub-publications.html#sec-bindings-elem",
"collection": "http://www.idpf.org/epub/301/spec/epub-publications.html#sec-collection-elem",
"contributor": "http://www.idpf.org/epub/301/spec/epub-publications.html#sec-opf-dccontributor",
"creator": "http://www.idpf.org/epub/301/spec/epub-publications.html#sec-opf-dccreator",
"date": "http://www.idpf.org/epub/301/spec/epub-publications.html#sec-opf-dcdate",
"guide": "http://www.idpf.org/epub/301/spec/epub-publications.html#sec-guide-elem",
"identifier": "http://www.idpf.org/epub/301/spec/epub-publications.html#sec-identifier-elem",
"item": "http://www.idpf.org/epub/301/spec/epub-publications.html#sec-item-elem",
"itemref": "http://www.idpf.org/epub/301/spec/epub-publications.html#sec-itemref-elem",
"language": "http://www.idpf.org/epub/301/spec/epub-publications.html#sec-language-elem",
"link": "http://www.idpf.org/epub/301/spec/epub-publications.html#sec-link-elem",
"manifest": "http://www.idpf.org/epub/301/spec/epub-publications.html#sec-manifest-elem",
"mediatype": "http://www.idpf.org/epub/301/spec/epub-publications.html#sec-mediaType-elem",
"meta": "http://www.idpf.org/epub/301/spec/epub-publications.html#sec-meta-elem",
"metadata": "http://www.idpf.org/epub/301/spec/epub-publications.html#sec-metadata-elem",
"package": "http://www.idpf.org/epub/301/spec/epub-publications.html#sec-package-elem",
"source": "http://www.idpf.org/epub/301/spec/epub-publications.html#sec-opf-dcsource",
"spine": "http://www.idpf.org/epub/301/spec/epub-publications.html#sec-spine-elem",
"title": "http://www.idpf.org/epub/301/spec/epub-publications.html#sec-title-elem",
"type": "http://www.idpf.org/epub/301/spec/epub-publications.html#sec-opf-dctype"
}

View File

@ -0,0 +1,82 @@
{
"a": "https://developer.mozilla.org/docs/Web/SVG/Element/a",
"altglyph": "https://developer.mozilla.org/docs/Web/SVG/Element/altGlyph",
"altglyphdef": "https://developer.mozilla.org/docs/Web/SVG/Element/altGlyphDef",
"altglyphitem": "https://developer.mozilla.org/docs/Web/SVG/Element/altGlyphItem",
"animate": "https://developer.mozilla.org/docs/Web/SVG/Element/animate",
"animatecolor": "https://developer.mozilla.org/docs/Web/SVG/Element/animateColor",
"animatemotion": "https://developer.mozilla.org/docs/Web/SVG/Element/animateMotion",
"animatetransform": "https://developer.mozilla.org/docs/Web/SVG/Element/animateTransform",
"circle": "https://developer.mozilla.org/docs/Web/SVG/Element/circle",
"clippath": "https://developer.mozilla.org/docs/Web/SVG/Element/clipPath",
"color-profile": "https://developer.mozilla.org/docs/Web/SVG/Element/color-profile",
"cursor": "https://developer.mozilla.org/docs/Web/SVG/Element/cursor",
"defs": "https://developer.mozilla.org/docs/Web/SVG/Element/defs",
"desc": "https://developer.mozilla.org/docs/Web/SVG/Element/desc",
"ellipse": "https://developer.mozilla.org/docs/Web/SVG/Element/ellipse",
"feblend": "https://developer.mozilla.org/docs/Web/SVG/Element/feBlend",
"fecolormatrix": "https://developer.mozilla.org/docs/Web/SVG/Element/feColorMatrix",
"fecomponenttransfer": "https://developer.mozilla.org/docs/Web/SVG/Element/feComponentTransfer",
"fecomposite": "https://developer.mozilla.org/docs/Web/SVG/Element/feComposite",
"feconvolvematrix": "https://developer.mozilla.org/docs/Web/SVG/Element/feConvolveMatrix",
"fediffuselighting": "https://developer.mozilla.org/docs/Web/SVG/Element/feDiffuseLighting",
"fedisplacementmap": "https://developer.mozilla.org/docs/Web/SVG/Element/feDisplacementMap",
"fedistantlight": "https://developer.mozilla.org/docs/Web/SVG/Element/feDistantLight",
"feflood": "https://developer.mozilla.org/docs/Web/SVG/Element/feFlood",
"fefunca": "https://developer.mozilla.org/docs/Web/SVG/Element/feFuncA",
"fefuncb": "https://developer.mozilla.org/docs/Web/SVG/Element/feFuncB",
"fefuncg": "https://developer.mozilla.org/docs/Web/SVG/Element/feFuncG",
"fefuncr": "https://developer.mozilla.org/docs/Web/SVG/Element/feFuncR",
"fegaussianblur": "https://developer.mozilla.org/docs/Web/SVG/Element/feGaussianBlur",
"feimage": "https://developer.mozilla.org/docs/Web/SVG/Element/feImage",
"femerge": "https://developer.mozilla.org/docs/Web/SVG/Element/feMerge",
"femergenode": "https://developer.mozilla.org/docs/Web/SVG/Element/feMergeNode",
"femorphology": "https://developer.mozilla.org/docs/Web/SVG/Element/feMorphology",
"feoffset": "https://developer.mozilla.org/docs/Web/SVG/Element/feOffset",
"fepointlight": "https://developer.mozilla.org/docs/Web/SVG/Element/fePointLight",
"fespecularlighting": "https://developer.mozilla.org/docs/Web/SVG/Element/feSpecularLighting",
"fespotlight": "https://developer.mozilla.org/docs/Web/SVG/Element/feSpotLight",
"fetile": "https://developer.mozilla.org/docs/Web/SVG/Element/feTile",
"feturbulence": "https://developer.mozilla.org/docs/Web/SVG/Element/feTurbulence",
"filter": "https://developer.mozilla.org/docs/Web/SVG/Element/filter",
"font": "https://developer.mozilla.org/docs/Web/SVG/Element/font",
"font-face": "https://developer.mozilla.org/docs/Web/SVG/Element/font-face",
"font-face-format": "https://developer.mozilla.org/docs/Web/SVG/Element/font-face-format",
"font-face-name": "https://developer.mozilla.org/docs/Web/SVG/Element/font-face-name",
"font-face-src": "https://developer.mozilla.org/docs/Web/SVG/Element/font-face-src",
"font-face-uri": "https://developer.mozilla.org/docs/Web/SVG/Element/font-face-uri",
"foreignobject": "https://developer.mozilla.org/docs/Web/SVG/Element/foreignObject",
"g": "https://developer.mozilla.org/docs/Web/SVG/Element/g",
"glyph": "https://developer.mozilla.org/docs/Web/SVG/Element/glyph",
"glyphref": "https://developer.mozilla.org/docs/Web/SVG/Element/glyphRef",
"hkern": "https://developer.mozilla.org/docs/Web/SVG/Element/hkern",
"image": "https://developer.mozilla.org/docs/Web/SVG/Element/image",
"line": "https://developer.mozilla.org/docs/Web/SVG/Element/line",
"lineargradient": "https://developer.mozilla.org/docs/Web/SVG/Element/linearGradient",
"marker": "https://developer.mozilla.org/docs/Web/SVG/Element/marker",
"mask": "https://developer.mozilla.org/docs/Web/SVG/Element/mask",
"metadata": "https://developer.mozilla.org/docs/Web/SVG/Element/metadata",
"missing-glyph": "https://developer.mozilla.org/docs/Web/SVG/Element/missing-glyph",
"mpath": "https://developer.mozilla.org/docs/Web/SVG/Element/mpath",
"path": "https://developer.mozilla.org/docs/Web/SVG/Element/path",
"pattern": "https://developer.mozilla.org/docs/Web/SVG/Element/pattern",
"polygon": "https://developer.mozilla.org/docs/Web/SVG/Element/polygon",
"polyline": "https://developer.mozilla.org/docs/Web/SVG/Element/polyline",
"radialgradient": "https://developer.mozilla.org/docs/Web/SVG/Element/radialGradient",
"rect": "https://developer.mozilla.org/docs/Web/SVG/Element/rect",
"script": "https://developer.mozilla.org/docs/Web/SVG/Element/script",
"set": "https://developer.mozilla.org/docs/Web/SVG/Element/set",
"stop": "https://developer.mozilla.org/docs/Web/SVG/Element/stop",
"style": "https://developer.mozilla.org/docs/Web/SVG/Element/style",
"svg": "https://developer.mozilla.org/docs/Web/SVG/Element/svg",
"switch": "https://developer.mozilla.org/docs/Web/SVG/Element/switch",
"symbol": "https://developer.mozilla.org/docs/Web/SVG/Element/symbol",
"text": "https://developer.mozilla.org/docs/Web/SVG/Element/text",
"textpath": "https://developer.mozilla.org/docs/Web/SVG/Element/textPath",
"title": "https://developer.mozilla.org/docs/Web/SVG/Element/title",
"tref": "https://developer.mozilla.org/docs/Web/SVG/Element/tref",
"tspan": "https://developer.mozilla.org/docs/Web/SVG/Element/tspan",
"use": "https://developer.mozilla.org/docs/Web/SVG/Element/use",
"view": "https://developer.mozilla.org/docs/Web/SVG/Element/view",
"vkern": "https://developer.mozilla.org/docs/Web/SVG/Element/vkern"
}

View File

@ -532,6 +532,14 @@ class Container(object): # {{{
return O(BytesIO(mi), basedir=self.opf_dir, unquote_urls=False,
populate_spine=False).to_book_metadata()
@property
def opf_version(self):
' The version set on the OPF\'s <package> element '
try:
return self.opf_xpath('//opf:package/@version')[0]
except IndexError:
return ''
@property
def manifest_id_map(self):
' Mapping of manifest id to canonical names '

View File

@ -1039,6 +1039,8 @@ class SanitizeLibraryPath(object):
os.environ['LD_LIBRARY_PATH'] = self.orig
def open_url(qurl):
if isinstance(qurl, basestring):
qurl = QUrl(qurl)
with SanitizeLibraryPath():
QDesktopServices.openUrl(qurl)

View File

@ -37,6 +37,8 @@ SYNTAX_PROPERTY = QTextCharFormat.UserProperty
SPELL_PROPERTY = SYNTAX_PROPERTY + 1
SPELL_LOCALE_PROPERTY = SPELL_PROPERTY + 1
LINK_PROPERTY = SPELL_LOCALE_PROPERTY + 1
TAG_NAME_PROPERTY = LINK_PROPERTY + 1
CSS_PROPERTY = TAG_NAME_PROPERTY + 1
def syntax_text_char_format(*args):
ans = QTextCharFormat(*args)

View File

@ -0,0 +1,129 @@
#!/usr/bin/env python
# vim:fileencoding=utf-8
from __future__ import (unicode_literals, division, absolute_import,
print_function)
__license__ = 'GPL v3'
__copyright__ = '2014, Kovid Goyal <kovid at kovidgoyal.net>'
import json
from functools import partial
from lxml import html
from calibre import browser
from calibre.ebooks.oeb.polish.container import OEB_DOCS
from calibre.ebooks.oeb.polish.utils import guess_type
class URLMap(object):
def __init__(self):
self.cache = {}
def __getitem__(self, key):
try:
return self.cache[key]
except KeyError:
try:
self.cache[key] = ans = json.loads(P('editor-help/%s.json' % key, data=True))
except EnvironmentError:
raise KeyError('The mapping %s is not available' % key)
return ans
_url_map = URLMap()
def help_url(item, item_type, doc_name, extra_data=None):
url = None
url_maps = ()
item = item.lower()
if item_type == 'css_property':
url_maps = ('css',)
else:
mt = guess_type(doc_name)
if mt in OEB_DOCS:
url_maps = ('html', 'svg', 'mathml')
elif mt == guess_type('a.svg'):
url_maps = ('svg',)
elif mt == guess_type('a.opf'):
version = '3' if getattr(extra_data, 'startswith', lambda x: False)('3') else '2'
url_maps = (('opf' + version),)
elif mt == guess_type('a.svg'):
url_maps = ('svg',)
elif mt == guess_type('a.ncx'):
url_maps = ('opf2',)
for umap in url_maps:
umap = _url_map[umap]
if item in umap:
url = umap[item]
break
item = item.partition(':')[-1]
if item and item in umap:
url = umap[item]
break
return url
def get_mdn_tag_index(category):
url = 'https://developer.mozilla.org/docs/Web/%s/Element' % category
if category == 'CSS':
url = url.replace('Element', 'Reference')
br = browser()
raw = br.open(url).read()
root = html.fromstring(raw)
ans = {}
if category == 'CSS':
xpath = '//div[@class="index"]/descendant::a[contains(@href, "/Web/CSS/")]/@href'
else:
xpath = '//a[contains(@href, "/%s/Element/")]/@href' % category
for href in root.xpath(xpath):
href = href.replace('/en-US/', '/')
ans[href.rpartition('/')[-1].lower()] = 'https://developer.mozilla.org' + href
return ans
def get_opf2_tag_index():
base = 'http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#'
ans = {}
for i, tag in enumerate(('package', 'metadata', 'manifest', 'spine', 'tours', 'guide')):
ans[tag] = base + 'Section2.%d' % (i + 1)
for i, tag in enumerate((
'title', 'creator', 'subject', 'description', 'publisher',
'contributor', 'date', 'type', 'format', 'identifier', 'source',
'language', 'relation', 'coverage', 'rights')):
ans[tag] = base + 'Section2.2.%d' % (i + 1)
ans['item'] = ans['manifest']
ans['itemref'] = ans['spine']
ans['reference'] = ans['guide']
for tag in ('ncx', 'docTitle', 'docAuthor', 'navMap', 'navPoint', 'navLabel', 'text', 'content', 'pageList', 'pageTarget'):
ans[tag.lower()] = base + 'Section2.4.1.2'
return ans
def get_opf3_tag_index():
base = 'http://www.idpf.org/epub/301/spec/epub-publications.html#'
ans = {}
for tag in (
'package', 'metadata', 'identifier', 'title', 'language', 'meta',
'link', 'manifest', 'item', 'spine', 'itemref', 'guide',
'bindings', 'mediaType', 'collection'):
ans[tag.lower()] = base + 'sec-%s-elem' % tag
for tag in ('contributor', 'creator', 'date', 'source', 'type',):
ans[tag.lower()] = base + 'sec-opf-dc' + tag
return ans
def write_tag_help():
base = 'editor-help/%s.json'
dump = partial(json.dumps, indent=2, sort_keys=True)
for category in ('HTML', 'SVG', 'MathML', 'CSS'):
data = get_mdn_tag_index(category)
with open(P(base % category.lower()), 'wb') as f:
f.write(dump(data))
with open(P(base % 'opf2'), 'wb') as f:
f.write(dump(get_opf2_tag_index()))
with open(P(base % 'opf3'), 'wb') as f:
f.write(dump(get_opf3_tag_index()))
if __name__ == '__main__':
write_tag_help()

View File

@ -11,7 +11,7 @@ import re
from PyQt4.Qt import QTextBlockUserData
from calibre.gui2.tweak_book import verify_link
from calibre.gui2.tweak_book.editor import syntax_text_char_format, LINK_PROPERTY
from calibre.gui2.tweak_book.editor import syntax_text_char_format, LINK_PROPERTY, CSS_PROPERTY
from calibre.gui2.tweak_book.editor.syntax.base import SyntaxHighlighter
space_pat = re.compile(r'[ \n\t\r\f]+')
@ -29,7 +29,9 @@ URL_TOKEN = 'url'
content_tokens = [(re.compile(k), v, n) for k, v, n in [
(r'url\(.*?\)', 'string', URL_TOKEN),
(r'@\S+', 'preproc', 'at-rule'),
(r'(azimuth|background-attachment|background-color|'
r'background-image|background-position|background-repeat|'
r'background|border-bottom-color|border-bottom-style|'
@ -86,7 +88,8 @@ content_tokens = [(re.compile(k), v, n) for k, v, n in [
r'transparent|ultra-condensed|ultra-expanded|underline|'
r'upper-alpha|upper-latin|upper-roman|uppercase|url|'
r'visible|w-resize|wait|wider|x-fast|x-high|x-large|x-loud|'
r'x-low|x-small|x-soft|xx-large|xx-small|yes)\b', 'keyword', 'keyword'),
r'x-low|x-small|x-soft|xx-large|xx-small|yes|src)\b', 'keyword', 'keyword'),
(r'(indigo|gold|firebrick|indianred|yellow|darkolivegreen|'
r'darkseagreen|mediumvioletred|mediumorchid|chartreuse|'
r'mediumslateblue|black|springgreen|crimson|lightsalmon|brown|'
@ -112,13 +115,21 @@ content_tokens = [(re.compile(k), v, n) for k, v, n in [
r'lightslategray|lawngreen|lightgreen|tomato|hotpink|'
r'lightyellow|lavenderblush|linen|mediumaquamarine|green|'
r'blueviolet|peachpuff)\b', 'colorname', 'colorname'),
(r'\!important', 'preproc', 'important'),
(r'\#[a-zA-Z0-9]{1,6}', 'number', 'hexnumber'),
(r'[\.-]?[0-9]*[\.]?[0-9]+(em|px|pt|pc|in|mm|cm|ex|s|rem)\b', 'number', 'dimension'),
(r'[\.-]?[0-9]*[\.]?[0-9]+%(?=$|[ \n\t\f\r;}{()\[\]])', 'number', 'dimension'),
(r'-?[0-9]+', 'number', 'number'),
(r'[~\^\*!%&<>\|+=@:,./?-]+', 'operator', 'operator'),
(r'[\[\]();]+', 'bracket', 'bracket'),
(r'[a-zA-Z_][a-zA-Z0-9_]*', 'identifier', 'ident')
]]
@ -266,8 +277,6 @@ def create_formats(highlighter):
'comment': theme['Comment'],
'error': theme['Error'],
'string': theme['String'],
'preproc': theme['PreProc'],
'keyword': theme['Keyword'],
'colorname': theme['Constant'],
'number': theme['Number'],
'operator': theme['Function'],
@ -290,6 +299,10 @@ def create_formats(highlighter):
formats['bad_link'] = syntax_text_char_format(theme['BadLink'])
formats['bad_link'].setProperty(LINK_PROPERTY, True)
formats['bad_link'].setToolTip(_('This link points to a file that is not present in the book'))
formats['preproc'] = f = syntax_text_char_format(theme['PreProc'])
f.setProperty(CSS_PROPERTY, True)
formats['keyword'] = f = syntax_text_char_format(theme['Keyword'])
f.setProperty(CSS_PROPERTY, True)
return formats

View File

@ -17,7 +17,8 @@ from calibre.spell.dictionary import parse_lang_code
from calibre.spell.break_iterator import split_into_words_and_positions
from calibre.gui2.tweak_book import dictionaries, tprefs, verify_link
from calibre.gui2.tweak_book.editor import (
syntax_text_char_format, SPELL_PROPERTY, SPELL_LOCALE_PROPERTY, store_locale, LINK_PROPERTY)
syntax_text_char_format, SPELL_PROPERTY, SPELL_LOCALE_PROPERTY,
store_locale, LINK_PROPERTY, TAG_NAME_PROPERTY)
from calibre.gui2.tweak_book.editor.syntax.base import SyntaxHighlighter, run_loop
from calibre.gui2.tweak_book.editor.syntax.css import (
create_formats as create_css_formats, state_map as css_state_map, CSSState, CSSUserData)
@ -504,7 +505,6 @@ def create_formats(highlighter, add_css=True):
'tag': t['Function'],
'end_tag': t['Function'],
'attr': t['Type'],
'tag_name' : t['Statement'],
'entity': t['Special'],
'error': t['Error'],
'comment': t['Comment'],
@ -538,6 +538,8 @@ def create_formats(highlighter, add_css=True):
formats['bad_link'] = syntax_text_char_format(t['BadLink'])
formats['bad_link'].setProperty(LINK_PROPERTY, True)
formats['bad_link'].setToolTip(_('This link points to a file that is not present in the book'))
formats['tag_name'] = f = syntax_text_char_format(t['Statement'])
f.setProperty(TAG_NAME_PROPERTY, True)
return formats

View File

@ -16,9 +16,10 @@ from PyQt4.Qt import (
from calibre import prints
from calibre.constants import DEBUG
from calibre.ebooks.chardet import replace_encoding_declarations
from calibre.gui2 import error_dialog
from calibre.gui2 import error_dialog, open_url
from calibre.gui2.tweak_book import actions, current_container, tprefs, dictionaries, editor_toolbar_actions, editor_name
from calibre.gui2.tweak_book.editor import SPELL_PROPERTY, LINK_PROPERTY
from calibre.gui2.tweak_book.editor import SPELL_PROPERTY, LINK_PROPERTY, TAG_NAME_PROPERTY, CSS_PROPERTY
from calibre.gui2.tweak_book.editor.help import help_url
from calibre.gui2.tweak_book.editor.text import TextEdit
from calibre.utils.icu import utf16_length
@ -443,6 +444,13 @@ class Editor(QMainWindow):
href = self.editor.text_for_range(origc.block(), origr)
m.addAction(_('Open %s') % href, partial(self.link_clicked.emit, href))
if origr is not None and (origr.format.property(TAG_NAME_PROPERTY).toBool() or origr.format.property(CSS_PROPERTY).toBool()):
word = self.editor.text_for_range(origc.block(), origr)
item_type = 'tag_name' if origr.format.property(TAG_NAME_PROPERTY).toBool() else 'css_property'
url = help_url(word, item_type, self.editor.highlighter.doc_name, extra_data=current_container().opf_version)
if url is not None:
m.addAction(_('Show help for: %s') % word, partial(open_url, url))
for x in ('undo', 'redo'):
a(actions['editor-%s' % x])
m.addSeparator()