1 (in-package #:parenscript
)
2 (in-readtable :parenscript
)
4 ;; These are convenience packages that export JS and browser DOM
5 ;; symbols. If you :use the packages in a package FOO and then
6 ;; obfuscate FOO, it will prevent the JS symbols from getting
9 ;; For most web development tasks, you want to import PS-JS-SYMBOLS,
10 ;; PS-WINDOW-WD-SYMBOLS (which includes DOM level 2 and the w3c Window
11 ;; working draft), and possibly the PS-DOM-NONSTANDARD-SYMBOLS.
13 (defun re-export-symbols (from-package to-package
)
14 (do-external-symbols (symbol from-package
)
15 (multiple-value-bind (cl-symbol type
) (find-symbol (symbol-name symbol
) '#:cl
)
16 (when (eq type
:external
)
17 (shadowing-import cl-symbol from-package
)))
18 (shadowing-import symbol to-package
)
19 (export (list symbol
) to-package
)))
21 (defpackage #:ps-js-symbols
22 (:documentation
"JavaScript standard function and property names.")
25 #:encode-u-r-i-component
#:encodeURIComponent
37 (re-export-symbols '#:ps-js-symbols
'#:parenscript
)
39 (defpackage #:ps-dom1-symbols
40 (:documentation
"DOM Level 1 symbols.")
45 #:has-feature
#:hasFeature
51 #:document-element
#:documentElement
53 #:create-element
#:createElement
54 #:create-document-fragment
#:createDocumentElement
55 #:create-text-node
#:createTextNode
56 #:create-comment
#:createComment
57 #:create-c-d-a-t-a-section
#:createCDATASection
58 #:create-processing-instruction
#:createProcessingInstruction
59 #:create-attribute
#:createAttribute
60 #:create-entity-reference
#:createEntityReference
61 #:get-elements-by-tag-name
#:getElementsByTagName
65 #:node-name
#:nodeName
66 #:node-value
#:nodeValue
67 #:node-type
#:nodeType
68 #:parent-node
#:parentNode
69 #:child-nodes
#:childNodes
70 #:first-child
#:firstChild
71 #:last-child
#:lastChild
72 #:previous-sibling
#:previousSibling
73 #:next-sibling
#:nextSibling
75 #:owner-document
#:ownerDocument
77 #:insert-before
#:insertBefore
78 #:replace-child
#:replaceChild
79 #:remove-child
#:removeChild
80 #:append-child
#:appendChild
81 #:has-child-nodes
#:hasChildNodes
82 #:clone-node
#:cloneNode
92 #:get-named-item
#:getNamedItem
93 #:set-named-item
#:setNamedItem
94 #:remove-named-item
#:removeNamedItem
104 #:substring-data
#:substringData
105 #:append-data
#:appendData
106 #:insert-data
#:insertData
107 #:delete-data
#:deleteData
108 #:replace-data
#:replaceData
120 #:get-attribute
#:getAttribute
121 #:set-attribute
#:setAttribute
122 #:remove-attribute
#:removeAttribute
123 #:get-attribute-node
#:getAttributeNode
124 #:set-attribute-node
#:setAttributeNode
125 #:remove-attribute-node
#:removeAttributeNode
126 #:get-elements-by-tag-name
#:getElementsByTagName
131 #:split-text
#:splitText
133 ;;; Level 1 extended interfaces (XML)
142 #:public-id
#:publicId
143 #:system-id
#:systemId
147 #:public-id
#:publicId
148 #:system-id
#:systemId
149 #:notation-name
#:notationName
151 ;; processing instruction
157 ;; HTMLcollection/live NodeList
162 #:named-item
#:namedItem
183 #:get-element-by-id
#:getElementById
184 #:get-elements-by-name
#:getElementsByName
186 ;; generic HTML element
192 #:class-name
#:className
194 ;; HTML document root
221 #:http-equiv
#:httpEquiv
255 #:accept-charset
#:acceptCharset
267 #:selected-index
#:selectedIndex
276 #:tab-index
#:tabIndex
291 #:default-selected
#:defaultSelected
301 #:default-value
#:defaultValue
302 #:default-checked
#:defaultChecked
305 #:access-key
#:accessKey
310 #:max-length
#:maxLength
312 #:read-only
#:readOnly
315 #:tab-index
#:tabIndex
327 #:default-value
#:defaultValue
329 #:access-key
#:accessKey
333 #:read-only
#:readOnly
335 #:tab-index
#:tabIndex
346 #:access-key
#:accessKey
349 #:tab-index
#:tabIndex
356 #:access-key
#:accessKey
366 #:access-key
#:accessKey
393 ;; div, p, and h1/h2/hn
421 #:date-time
#:dateTime
425 #:access-key
#:accessKey
434 #:tab-index
#:tabIndex
451 #:long-desc
#:longDesc
464 #:code-base
#:codeBase
465 #:code-type
#:codeType
472 #:tab-index
#:tabIndex
483 #:value-type
#:valueType
491 #:code-base
#:codeBase
506 #:access-key
#:accessKey
512 #:tab-index
#:tabIndex
535 #:cell-padding
#:cellPadding
536 #:cell-spacing
#:cellSpacing
542 #:create-t-head
#:createTHead
543 #:delete-t-head
#:deleteTHead
544 #:create-t-foot
#:createTFoot
545 #:delete-t-foot
#:deleteTFoot
546 #:create-caption
#:createCaption
547 #:delete-caption
#:deleteCaption
548 #:insert-row
#:insertRow
549 #:delete-row
#:deleteRow
564 ;; thead, tfoot, tbody
572 #:insert-row
#:insertRow
573 #:delete-row
#:deleteRow
577 #:row-index
#:rowIndex
578 #:section-row-index
#:sectionRowIndex
586 #:insert-cell
#:insertCell
587 #:delete-cell
#:deleteCell
591 #:cell-index
#:cellIndex
614 #:frame-border
#:frameBorder
615 #:long-desc
#:longDesc
616 #:margin-height
#:marginHeight
617 #:margin-width
#:marginWidth
619 #:no-resize
#:noResize
626 #:frame-border
#:frameBorder
628 #:long-desc
#:longDesc
629 #:margin-height
#:marginHeight
630 #:margin-width
#:marginWidth
637 (defpackage #:ps-dom2-symbols
638 (:documentation
"DOM Level 2 symbols. Includes DOM Level 1 symbols.")
643 #:create-document
#:createDocument
644 #:create-document-type
#:createDocumentType
646 ;; document interface
648 #:create-attribute-n-s
#:createAttributeNS
649 #:create-element-n-s
#:createElementNS
650 #:get-element-by-id
#:getElementById
651 #:get-elements-by-tag-name-n-s
#:getElementsByTagNameNS
652 #:import-node
#:importNode
656 #:local-name
#:localName
657 #:namespace-u-r-i
#:namespaceURI
660 #:is-supported
#:isSupported
664 #:get-named-item-n-s
#:getNamedItemNS
665 #:remove-named-item-n-s
#:removeNamedItermNS
666 #:set-named-item-n-s
#:setNamedItemNS
670 #:get-attribute-n-s
#:getAttributeNS
671 #:get-attribute-node-n-s
#:getAttributeNodeNS
672 #:get-elements-by-tag-name-n-s
#:getElementsByTagNameNS
673 #:has-attribute-n-s
#:hasAttributeNS
674 #:remove-attribute-n-s
#:removeAttributeNS
675 #:set-attribute-n-s
#:setAttributeNS
676 #:set-attribute-node-n-s
#:setAttributeNodeNS
678 ;;; Level 2 extended interfaces
681 #:internal-subset
#:internalSubset
682 #:public-id
#:publicId
683 #:system-id
#:systemId
686 ;; object, frame, iframe
688 #:content-document
#:contentDocument
696 #:owner-node
#:ownerNode
697 #:parent-style-sheet
#:parenStyleSheet
704 #:media-text
#:mediaText
706 #:append-medium
#:appendMedium
707 #:delete-medium
#:deleteMedium
716 #:style-sheets
#:styleSheets
721 #:css-rules
#:cssRules
722 #:owner-rule
#:ownerRule
724 #:delete-rule
#:deleteRule
725 #:insert-rule
#:insertRule
730 #:parent-rule
#:parentRule
731 #:parent-style-sheet
#:parentStyleSheet
736 #:selector-text
#:selectorText
741 #:css-rules
#:cssRules
744 #:delete-rule
#:deleteRule
745 #:insert-rule
#:insertRule
751 #:style-sheet
#:styleSheet
757 ;; css style declaration
761 #:parent-rule
#:parentRule
763 #:get-property-c-s-s-value
#:getPropertyCSSValue
764 #:get-property-priority
#:getPropertyPriority
765 #:get-property-value
#:getPropertyValue
767 #:remove-property
#:removeProperty
768 #:set-property
#:setProperty
773 #:css-value-type
#:cssValueType
775 ;; css primitive value
777 #:primitive-type
#:primitiveType
779 #:get-counter-value
#:getCounterValue
780 #:get-float-value
#:getFloatValue
781 #:get-r-g-b-color-value
#:getRGBColorValue
782 #:get-rect-value
#:getRectValue
783 #:get-string-value
#:getStringValue
784 #:set-float-value
#:setFloatValue
785 #:set-string-value
#:setStringValue
803 #:list-style
#:listStyle
808 #:get-computed-style
#:getComputedStyle
812 #:get-override-style
#:getOverrideStyle
816 #:create-c-s-s-style-sheet
#:createCSSStyleSheet
818 ;;; CSS 2.0 extended interface
822 #:background-attachment
#:backgroundAttachment
823 #:background-color
#:backgroundColor
824 #:background-image
#:backgroundImage
825 #:background-position
#:backgroundPosition
826 #:background-repeat
#:backgroundRepeat
828 #:border-bottom
#:borderBottom
829 #:border-bottom-color
#:borderBottomColor
830 #:border-bottom-style
#:borderBottomStyle
831 #:border-bottom-width
#:borderBottomWidth
832 #:border-collapse
#:borderCollapse
833 #:border-color
#:borderColor
834 #:border-left
#:borderLeft
835 #:border-left-color
#:borderLeftColor
836 #:border-left-style
#:borderLeftStyle
837 #:border-left-width
#:borderLeftWidth
838 #:border-right
#:borderRight
839 #:border-right-color
#:borderRightColor
840 #:border-right-style
#:borderRightStyle
841 #:border-right-width
#:borderRightWidth
842 #:border-spacing
#:borderSpacing
843 #:border-style
#:borderStyle
844 #:border-top
#:borderTop
845 #:border-top-color
#:borderTopColor
846 #:border-top-style
#:borderTopStyle
847 #:border-top-width
#:borderTopWidth
848 #:border-width
#:borderWidth
850 #:caption-side
#:captionSide
855 #:counter-increment
#:counterIncrement
856 #:counter-reset
#:counterReset
857 #:css-float
#:cssFloat
859 #:cue-after
#:cueAfter
860 #:cue-before
#:cueBefore
865 #:empty-cells
#:emptyCells
867 #:font-family
#:fontFamily
868 #:font-size
#:fontSize
869 #:font-size-adjust
#:fontSizeAdjust
870 #:font-stretch
#:fontStretch
871 #:font-style
#:fontStyle
872 #:font-variant
#:fontVariant
873 #:font-weight
#:fontWeight
876 #:letter-spacing
#:letterSpacing
877 #:line-height
#:lineHeight
878 #:list-style
#:listStyle
879 #:list-style-image
#:listStyleImage
880 #:list-style-position
#:listStylePosition
881 #:list-style-type
#:listStyleType
883 #:margin-bottom
#:marginBottom
884 #:margin-left
#:marginLeft
885 #:margin-right
#:marginRight
886 #:margin-top
#:marginTop
887 #:marker-offset
#:markerOffset
889 #:max-height
#:maxHeight
890 #:max-width
#:maxWidth
891 #:min-height
#:minHeight
892 #:min-width
#:minWidth
895 #:outline-color
#:outlineColor
896 #:outline-style
#:outlineStyle
897 #:outline-width
#:outlineWidth
900 #:padding-bottom
#:paddingBottom
901 #:padding-left
#:paddingLeft
902 #:padding-right
#:paddingRight
903 #:padding-top
#:paddingTop
905 #:page-break-after
#:pageBreakAfter
906 #:page-break-before
#:pageBreakBefore
907 #:page-break-inside
#:pageBreakInside
909 #:pause-after
#:pauseAfter
910 #:pause-before
#:pauseBefore
912 #:pitch-range
#:pitchRange
913 #:play-during
#:playDuring
920 #:speak-header
#:speakHeader
921 #:speak-numeral
#:speakNumeral
922 #:speak-punctuation
#:speakPunctuation
923 #:speech-rate
#:speechRate
925 #:table-layout
#:tableLayout
926 #:text-align
#:textAlign
927 #:text-decoration
#:textDecoration
928 #:text-indent
#:textIndent
929 #:text-shadow
#:textShadow
930 #:text-transform
#:textTransform
932 #:unicode-bidi
#:unicodeBidi
933 #:vertical-align
#:verticalAlign
935 #:voice-family
#:voiceFamily
937 #:white-space
#:whiteSpace
940 #:word-spacing
#:wordSpacing
944 ;; event target interface
946 #:add-event-listener
#:addEventListener
947 #:dispatch-event
#:dispatchEvent
948 #:remove-event-listener
#:removeEventListener
950 ;; event listener interface
952 #:handle-event
#:handleEvent
958 #:current-target
#:currentTarget
959 #:event-phase
#:eventPhase
961 #:time-stamp
#:timeStamp
964 #:init-event
#:initEvent
965 #:prevent-default
#:preventDefault
966 #:stop-propagation
#:stopPropagation
968 ;; document event interface
970 #:create-event
#:createEvent
977 #:init-u-i-event
#:initUIEvent
987 #:related-target
#:relatedTarget
990 #:shift-key
#:shiftKey
992 #:init-mouse-event
#:initMouseEvent
994 ;; mutation event interface
996 #:attr-change
#:attrChange
997 #:attr-name
#:attrName
998 #:new-value
#:newValue
999 #:prev-value
#:prevValue
1000 #:related-node
#:relatedNode
1002 #:init-mutation-event
#:initMutationEvent
1005 (re-export-symbols '#:ps-dom1-symbols
'#:ps-dom2-symbols
)
1007 (defpackage #:ps-window-wd-symbols
1008 (:documentation
"Funtions and properties of the W3C Working Draft Window object. Includes DOM level 2 symbols.")
1015 ;; location interface
1034 #:frame-element
#:frameElement
1038 #:set-timeout
#:setTimeout
1039 #:set-interval
#:setInterval
1040 #:clear-timeout
#:clearTimeout
1041 #:clear-interval
#:clearInterval
1044 (re-export-symbols '#:ps-dom2-symbols
'#:ps-window-wd-symbols
)
1046 (defpackage #:ps-dom-nonstandard-symbols
1047 (:documentation
"Non-W3C-standard (incl. DOM level 0) but widely implemented functions and properties.")
1049 #:inner-h-t-m-l
#:innerHTML
1052 #:offset-left
#:offsetLeft
1053 #:offset-top
#:offsetTop
1054 #:offset-height
#:offsetHeight
1055 #:offset-width
#:offsetWidth
1057 #:offset-parent
#:offsetParent
1059 #:scroll-left
#:scrollLeft
1060 #:scroll-top
#:scrollTop
1061 #:scroll-width
#:scrollWidth
1062 #:scroll-height
#:scrollHeight
1064 #:page-x-offset
#:pageXOffset
1065 #:page-y-offset
#:pageYOffset
1067 #:client-height
#:clientHeight
1068 #:client-width
#:clientWidth
1071 (defpackage #:ps-dhtml-symbols
1072 (:documentation
"Meta-package containing function/property symbols
1073 of typical HTML4/DHTML browsers. Includes DOM Levels 0 to 2, Window
1074 working draft, and de-facto standard symbols.
1076 This is probably the package you want to :USE if you're doing
1077 obfuscation in Parenscript and want to target the pre-HTML5 generation
1080 (re-export-symbols '#:ps-window-wd-symbols
'#:ps-dhtml-symbols
)
1081 (re-export-symbols '#:ps-dom-nonstandard-symbols
'#:ps-dhtml-symbols
)