MyCSS — a pure C CSS parser
MyCSS is a fast CSS Parser implemented as a pure C99 library with the ability to build without dependencies.
- Mailing List: https://groups.google.com/forum/#!forum/modest-engine
- IRC: #modest-engine on
irc.freenode.net <http://freenode.net>
- Or you can ask questions on stackoverflow.com by myhtml tag
By default MyCSS depends of MyHTML library. This is one of module of the Modest project.
Features
- Modules: CSS Syntax, Selectors Level 4, Namespace, Values, Box and other
- Two API - high and low-level
- Support parsing by chunks
- Support 39 character encoding by specification encoding.spec.whatwg.org
- Support detect encodings
- C99 support
- See Modest for full capacity
Support encodings for InputStream
See MyHTML support encodings
Support encodings for output
Program working in UTF-8 and returns all in UTF-8
Dependencies
Installation
See INSTALL.md
External Bindings and Wrappers
All in our hands!
Examples
See examples directory
Simple example
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <mycss/api.h>
int main(int argc, const char * argv[])
{
char *css = "#ident [name=\"best-name\"] {rgba(0, 0, 0, 0.1);}";
// base init
mycss_t *mycss = mycss_create();
mycss_status_t status = mycss_init(mycss);
// current entry, work init
mycss_entry_t *entry = mycss_entry_create();
status = mycss_entry_init(mycss, entry);
mycss_parse(entry, MyHTML_ENCODING_UTF_8, css, strlen(css));
// release resurces
mycss_entry_destroy(entry, true);
mycss_destroy(mycss, true);
return 0;
}
AUTHOR
Alexander Borisov [email protected]
COPYRIGHT AND LICENSE
Copyright (C) 2016 Alexander Borisov
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
See the LICENSE file.