Giter VIP home page Giter VIP logo

ssc's Introduction

ssc's People

Contributors

devongarde avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

xirdigh

ssc's Issues

namespaces

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.

MathML 4 (draft)

The current living standard requires the current draft of MathML 4.

Allow extra identifiers in any ENUM type

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.

SVG 2.0

Implement SVG 2.0 analysis

performance

Performance is bad.

Two tactics should be applied to improve it.

  • multithreading
  • performance analysis

Set up test container

Set up a container to allow people to test ssc easily.

A Centos 8 guest under docker will avoid licence issues.

CMAKE

Create a CMake configuration to allow ssc to be built on systems that support CMake and clang or gcc.

Integrate microformat with microdata

The WhatWG HTML standard includes microformat data declared using microdata attributes (itemscope etc.). Update ssc to support analysis of this kind of thing.

Better integration with command line environment

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:

  • openBSD generally offers the best experience; try and achieve that level of quality;
  • CLIG is useful as a general background read for context although it gets things wrong (for example, configuration files must be easily human readable and editable, which is why ssc uses INI format & not JSON / XML; if ssc requires a more powerful format, it will switch to PF-style configuration files);
  • whatever CLIG says, well written man pages are essential from the (unix) command line mostly because the alternatives are, in comparison, difficult to use and a pain to dig up.

Spellchecker

it would be useful to spell check text in an HTML file

Switch to PF-style configuration 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.

Current WhatWG standard

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.

Refactor microformat analysis

Currently, there is an silly conflict between some microformat vocabularies / properties and rel values. Refactor microformat code to sort this out.

valid schema.org property contentLocation marked as invalid

For example:

*** /project/web/live/foto/090410b/image-1.shtml

222 **

**
==> "contentLocation" cannot have sub-values, and/or is not a property of "WebPage" [bad_property]

contentLocation is a property of CreativeWork. WebPage inherits from CreativeWork. Thus this error report is false.

Webmentions

There is currently code to support webmentions. Add tests and tart it, or if it won't be tarted, drop it.

XHTML 5

Improve XHTML 5 analysis.

SVG 2.0

The current living standard requires it

Incorrectness

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.

SMIL

Decide whether to check or not SMIL --- and, at least, be aware of it.

SSI double variable substitution

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.

SVG 1.2 Full

Implement SVG 1.2 Full analysis, in context of the published 1.2 Tiny

Older WhatWG standards

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.

RDF

Implement RDF in HTML analysis

MathML 4

Implement recent draft MathML 4 analysis

Parse Javascript

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.

Export "fixed" HTML

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.

schema.org in RDF

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.

RDFa

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!

Refactor enum types

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.

automate build process

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.

signed installers

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.

MathML 2 mspace attributes

Some MathML2 attributes only apply to certain content, and that is not obvious. Add some comments where confusion may be possible.

Test coverage

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.

Add MathML 1 tests

The current MathML 1 tests are inadequate. Add some more, at least the examples in the spec.

Refactor type_master

There are a number of types whose analysis code is almost, but not quite, the same as each other. Sort this mess out.

UNICODE

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.

Suppress STYLE issues

ssc should not analyse STYLE, but it currently complains if, for example, double quotes are used (something requires by CSS). Fix this.

Parse CSS

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.

reorganise repository

The top should contain the executables for download, plus one folder (recipe) and the README.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.