I'm Dylan Harris. I'm building a static site checker to nitpick websites.
devongarde / ssc Goto Github PK
View Code? Open in Web Editor NEWstatic site checker (an opinionated HTML nitpicker)
License: Other
static site checker (an opinionated HTML nitpicker)
License: Other
The current namespace analysis is too rigid, for example ssc complains when namespaced elements are used (it should shut up). Update and improve the analysis.
The current living standard requires the current draft of MathML 4.
Currently ssc only allows additional values in a few enum types. Users should be able to add configuration to extend any enum type so they can verify HTML using private extensions.
Implement SVG 2.0 analysis
Implement MathML 3 analysis
Performance is bad.
Two tactics should be applied to improve it.
Set up a container to allow people to test ssc easily.
A Centos 8 guest under docker will avoid licence issues.
Create a CMake configuration to allow ssc to be built on systems that support CMake and clang or gcc.
The WhatWG HTML standard includes microformat data declared using microdata attributes (itemscope etc.). Update ssc to support analysis of this kind of thing.
Amend ssc to better integrate with the command line, including unix shells and windows cmd / powershell, within the context of ssc being cross-platform.
Notes:
it would be useful to spell check text in an HTML file
ssc uses an INI style configuration file because it is essential that a command line tool's configuration file be obvious and easily human editable from the command line. In those respects, as good as JSON and XML are for data interchange, they are unsuitable as configuration files.
However, INI file format has serious weaknesses particularly when complex structures must be expressed. OpenBSD solved this problem with a number of utilities, such as pf, httpd, smtpd. If a more powerful configuration format is required, use that format.
If programmatic configuration is necessary, also support JSON.
ssc 0.0.58 analysis covers a July 2020 version of the WhatWG HTML standard. Bring ssc up-to-date to cover a recent version of the standard.
It should build release code!
Complete facility to export microformat data to JSON files.
Currently, there is an silly conflict between some microformat vocabularies / properties and rel values. Refactor microformat code to sort this out.
For example:
*** /project/web/live/foto/090410b/image-1.shtml
222 **
contentLocation is a property of CreativeWork. WebPage inherits from CreativeWork. Thus this error report is false.
There is currently code to support webmentions. Add tests and tart it, or if it won't be tarted, drop it.
Implement SVG 1.2 Tiny analysis
Improve XHTML 5 analysis.
The current living standard requires it
Improve incorrectness analysis by improving reporting where the various standards require spelling that conflicts with standard English, so that people are warned when they fail to use dialect English spelling.
Decide whether to check or not SMIL --- and, at least, be aware of it.
For example, under Windows 10:
*** /project/web/live/and/change/18-07.shtml
407 ** ** inv sym,
==> "invsym" is no child of "i" [no_such_folder]
the linked file exists, so this appears to be a bug
In server side includes, using #set and #echo
#set Y = "Z"
#set X = "Y"
#echo X
what should appear is Y, but what actually appears is Z. A double substitution incorrectly occurs. This be a bug.
Implement SVG 1.2 Full analysis, in context of the published 1.2 Tiny
Some sites will have been written using the WhatWG standard of the time they were written, or of earlier times. Implement ssc analysis of earlier such standards, and enable the user to select the appropriate standard by rough date.
Implement RDF in HTML analysis
Remove hard-coded boost directories from build files (both makefiles and visual studio files)
Implement recent draft MathML 4 analysis
Parse javascript, at the very least to allow correct analysis of the surrounding HTML.
There's no point in writing a full blown analysis of javascript, there should be dozens of good ones out there. However, some simple analysis could be useful.
These attributes' values are currently ignored. They should be verified.
Given the software can interpret SSI (except formulae), and given it can embed missing closures and even sometimes missing elements, provided an mechanism to output the "corrected" HTML. Also look at outputting HTML from XHTML. Don't consider XHTML from HTML, leave that to tidy.
ssc 0.0.58 only analyses schema.org microdata when it is declared using WhatWG microdata attributes (itemscope etc.). schema.org itself supports that AND RDF. Add support for schema.org microdata analysis using RDF in ssc.
Given the poor quality of the myriad RDF specifications, I am not implementing it. I will change my mind if an RDF specification that specifies RDF comes along. Until them, I will complete the implementation of RDFa, only.
I now thoroughly understand why WhatWG created microdata!
Currently, enum types do not properly use internal HTML versions, and in consequence a number of types are declared when only one type with proper version management is needed. Sort this out.
Testing is automated, but build and release is not. Do the latter. Presume a hypervisor is to hand, and allow configuration files to control it.
NOTE: I built a set of scripts to do this for something else a few years ago. I'll probably simply update those scripts. They'll require a unix environment, and almost certainly presume a mac. I will ensure though, they run under Linux, and Microsoft's WSL, although I won't set up configuration for them. I will certainly not export virtual guests.
Rather than posting convenient binaries, sort out keys and subscriptions to produce signed versions as appropriate for each platform. Similarly, sort out PGP keys for here, and do it properly this time.
Some MathML2 attributes only apply to certain content, and that is not obvious. Add some comments where confusion may be possible.
There are insufficient tests everywhere. Many tests steal examples from standards, but do not test all permitted enum values, for example. Expand test coverage accordingly.
Furthermore, a number of supposedly support versions of HTML etc. do not have proper test coverage, admittedly because those versions were never properly supported in reality. All the same, add tests to improve the quality of corresponding ssc analysis.
Otherwise some valid itemprop's will fail validation
Implement MathML 2 analysis
The current MathML 1 tests are inadequate. Add some more, at least the examples in the spec.
There are a number of types whose analysis code is almost, but not quite, the same as each other. Sort this mess out.
The current ssc coverage of unicode is flawed, and only works by good fortune. Make sure it works properly, and add tests to cover it.
ssc should not analyse STYLE, but it currently complains if, for example, double quotes are used (something requires by CSS). Fix this.
Update schema.org code for version 11.
CSS is an integral part of modern HTML usage, including on static sites. CSS is integrated directly into HTML 5 via SVG 1.1.
Thus any half-decent static site checker would check that static site's CSS. For that reason, a CSS checker would be useful.
Note that ssc already parses CSS files, although only to pick up class names.
The top should contain the executables for download, plus one folder (recipe) and the README.
Add configuration options to allow those using private microdata to use ssc to verify it.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.