abc.git
12 days agocss: support counter() & counters()
yu.dongliang [Sat, 6 Jun 2026 06:43:43 +0000 (14:43 +0800)]
css: support counter() & counters()

2 weeks agosave length of const C string of html tag name
yu.dongliang [Wed, 3 Jun 2026 14:43:08 +0000 (22:43 +0800)]
save length of const C string of html tag name

2 weeks agocss: selectors priority: #id > .class > [attr] > :pse_class > ::pse_element > combina...
yu.dongliang [Wed, 3 Jun 2026 08:21:47 +0000 (16:21 +0800)]
css: selectors priority: #id > .class > [attr] > :pse_class > ::pse_element > combinator > tag,

1, the last selector is 'key' selector, the highest priority selector is 'priority' selector.

2, the higher priority is, the later selector runs.

if priority same, then check the type of 'key' selector: tag runs first, PSE class / attr / class / ID runs later one by one,
so 'p .class {}' has higher priority, as it run later than '.class p {}'.
--------------------------------------------------------------------------
I don't want to calculate the priority of combinators with the numbers of ID, class, attr, PSE class, tag, etc.
Even if the browser kernel code can do it, but the CSS programer could NOT do it fast when write the CSS code,
so we only see the 'key' selector (the last right) & the highest selector, it is easy!
as this, it is NOT useful to write a long '.class list' to improve the priority, maybe no one remember these .classes later.
--------------------------------------------------------------------------
for PSE class > PSE element, because PSE class is usually used for an action, PSE element used for an position in HTML.

of course PSE element is static & PSE class is dynamic, so if a combinator has or has not an PSE in 'key' selector,
the nature order is: normal selector < PSE element < PSE class, like below:

.class:hover {} > .class::first-child {} > .class {},
Even if a new .class2 added to the 3rd like .class2 .class {}, .class:hover {} will run latest also,
make sure the 'mouse move event' has the highest priority.

2 weeks ago1, css: support dynamic use,
yu.dongliang [Mon, 1 Jun 2026 12:07:58 +0000 (20:07 +0800)]
1, css: support dynamic use,
2, support opacity for simple image

2 weeks ago1, css: support 'display & visibility',
yu.dongliang [Fri, 29 May 2026 11:07:10 +0000 (19:07 +0800)]
1, css: support 'display & visibility',
2, support variable OpenGL resolution with a scale factor as OS vision config,

3 weeks agocss: simple attribute selector ok, draw HTML <hr> ok
yu.dongliang [Wed, 27 May 2026 09:42:54 +0000 (17:42 +0800)]
css: simple attribute selector ok, draw HTML <hr> ok

3 weeks agotmp
yu.dongliang [Mon, 25 May 2026 13:44:41 +0000 (21:44 +0800)]
tmp

3 weeks agocss: support 'position sticky, fixed, absolute, relative, static'
yu.dongliang [Mon, 25 May 2026 13:42:51 +0000 (21:42 +0800)]
css: support 'position sticky, fixed, absolute, relative, static'

3 weeks ago1, add triangle buttons in the two end of scrollbar,
yu.dongliang [Sat, 23 May 2026 14:46:48 +0000 (22:46 +0800)]
1, add triangle buttons in the two end of scrollbar,
2, support 'top, right, bottom, left' of margin, padding, border

4 weeks agouse abc_attr_t to save HTML attrs, abc_obj_t only save HTML objects, so can decrease...
yu.dongliang [Wed, 20 May 2026 16:37:00 +0000 (00:37 +0800)]
use abc_attr_t to save HTML attrs, abc_obj_t only save HTML objects, so can decrease memory use

4 weeks agocss: support a simple scroll-bar with 'scrollbar-width' & 'scrollbar-color' as CSS...
yu.dongliang [Tue, 19 May 2026 11:19:22 +0000 (19:19 +0800)]
css: support a simple scroll-bar with 'scrollbar-width' & 'scrollbar-color' as CSS asked

4 weeks agohtml: use an array to save label's attrs, now get it O(1),
yu.dongliang [Sat, 16 May 2026 11:14:58 +0000 (19:14 +0800)]
html: use an array to save label's attrs, now get it O(1),
css : support complex pse class (element) chain for HTML object.

5 weeks agofix: float exception
yu.dongliang [Wed, 13 May 2026 11:03:59 +0000 (19:03 +0800)]
fix: float exception

5 weeks agocss: support simple combinators with pse class or pse element
yu.dongliang [Wed, 13 May 2026 10:58:36 +0000 (18:58 +0800)]
css: support simple combinators with pse class or pse element

6 weeks agodelete some un-used files
yu.dongliang [Sun, 3 May 2026 09:27:05 +0000 (17:27 +0800)]
delete some un-used files

6 weeks ago1, split render code to 3 files: __render_border.c, __render_bg_image.c, __render_text.c,
yu.dongliang [Sun, 3 May 2026 08:17:02 +0000 (16:17 +0800)]
1, split render code to 3 files: __render_border.c, __render_bg_image.c, __render_text.c,
2, use GL_BLEND to show background-image when draw text,
3, scf: add scf_utf8_len() to get a UTF-8 char & its bytes,
4, css: support Chinese Char (中文) in border,
5, css: use macro ABC_CSS_BOX() to add HTML labels' attrs for css box model,
ABC_CSS_SELECTOR() for css selector,
ABC_CSS_BACK_GROUND() for back-ground attrs,
ABC_CSS_FONT() for font attrs,
ABC_CSS_TEXT() for text align, etc.
6, and render the margin of HTML objects transparent / clearing.

6 weeks agodraw border of <p>, <table>, maybe other HTML objects
yu.dongliang [Fri, 1 May 2026 07:01:38 +0000 (15:01 +0800)]
draw border of <p>, <table>, maybe other HTML objects

7 weeks agohtml/css: auto split a long UTF-8 text to next line, Chinese (中文) ok
yu.dongliang [Thu, 30 Apr 2026 08:57:37 +0000 (16:57 +0800)]
html/css: auto split a long UTF-8 text to next line, Chinese (中文) ok

7 weeks agocss: text-align & vertical-align ok for <table>, <th>, <td>
yu.dongliang [Mon, 27 Apr 2026 10:53:38 +0000 (18:53 +0800)]
css: text-align & vertical-align ok for <table>, <th>, <td>

7 weeks agocss: border, margin, padding of <table>
yu.dongliang [Sat, 25 Apr 2026 10:39:41 +0000 (18:39 +0800)]
css: border, margin, padding of <table>

8 weeks agohtml: support <table>, <tr>, <th>, <td>
yu.dongliang [Tue, 21 Apr 2026 10:44:28 +0000 (18:44 +0800)]
html: support <table>, <tr>, <th>, <td>

8 weeks agohtml/css: support css for <ol>, <ul>, <li>
yu.dongliang [Sun, 19 Apr 2026 05:56:36 +0000 (13:56 +0800)]
html/css: support css for <ol>, <ul>, <li>

2 months agohtml: add <ol>, <ul>, <li> for list
yu.dongliang [Fri, 17 Apr 2026 15:38:52 +0000 (23:38 +0800)]
html: add <ol>, <ul>, <li> for list

2 months agocss: support 140 colors all
yu.dongliang [Tue, 14 Apr 2026 12:46:24 +0000 (20:46 +0800)]
css: support 140 colors all

2 months agohtml/css: use caseless __html_strcmp() instead of strcmp()
yu.dongliang [Mon, 13 Apr 2026 17:42:38 +0000 (01:42 +0800)]
html/css: use caseless __html_strcmp() instead of strcmp()

2 months agocss: text-decoration, such as 'underline, overline, line-through, none'
yu.dongliang [Sun, 12 Apr 2026 09:15:59 +0000 (17:15 +0800)]
css: text-decoration, such as 'underline, overline, line-through, none'

2 months agocss: background-image with repeat status
yu.dongliang [Fri, 10 Apr 2026 13:04:03 +0000 (21:04 +0800)]
css: background-image with repeat status

2 months agocss: support 'background-color' & 'background-image'
yu.dongliang [Tue, 7 Apr 2026 10:10:55 +0000 (18:10 +0800)]
css: support 'background-color' & 'background-image'

2 months agocss: use css code in a file with HTML <link> label
yu.dongliang [Tue, 31 Mar 2026 15:58:07 +0000 (23:58 +0800)]
css: use css code in a file with HTML <link> label

2 months agocss: support css selector by ID or class, such as '#id {}' or 'p.red {}'
yu.dongliang [Sun, 22 Mar 2026 16:38:07 +0000 (00:38 +0800)]
css: support css selector by ID or class, such as '#id {}' or 'p.red {}'

3 months agocss: parse css color like: red, #ff8000, rgb(0, 0, 255)
yu.dongliang [Sun, 15 Mar 2026 10:43:47 +0000 (18:43 +0800)]
css: parse css color like: red, #ff8000, rgb(0, 0, 255)

3 months agocss: text-align
yu.dongliang [Fri, 13 Mar 2026 06:13:18 +0000 (14:13 +0800)]
css: text-align

3 months agocss: a simple css example ok
yu.dongliang [Wed, 4 Mar 2026 15:13:26 +0000 (23:13 +0800)]
css: a simple css example ok

3 months agocss: add a simple css parser
yu.dongliang [Tue, 3 Mar 2026 08:48:08 +0000 (16:48 +0800)]
css: add a simple css parser

5 months agoscf: update native/x64
yu.dongliang [Sun, 11 Jan 2026 15:28:07 +0000 (23:28 +0800)]
scf: update native/x64

5 months agoREADME.md
yu.dongliang [Fri, 2 Jan 2026 11:03:37 +0000 (19:03 +0800)]
README.md

5 months agoREADME.md
yu.dongliang [Fri, 2 Jan 2026 10:40:00 +0000 (18:40 +0800)]
README.md

6 months ago1, js: support 'switch-case',
yu.dongliang [Sat, 13 Dec 2025 08:11:40 +0000 (16:11 +0800)]
1,  js: support 'switch-case',
2, scf: mov source code of _semantic_find_proper_function2() to scf_ast_find_proper_function().

6 months agojs: support 'for..in..'
yu.dongliang [Wed, 10 Dec 2025 04:22:12 +0000 (12:22 +0800)]
js: support 'for..in..'

7 months ago1, js : support 'for() loop' with array[] & ++, --,
yu.dongliang [Sun, 16 Nov 2025 04:35:41 +0000 (12:35 +0800)]
1, js : support 'for() loop' with array[] & ++, --,
2, scf: support ++, -- for float & double in native/x64.

7 months agojs: support simple 'for() loop'
yu.dongliang [Tue, 11 Nov 2025 11:57:52 +0000 (19:57 +0800)]
js: support simple 'for() loop'

7 months agojs: fix 'teq' for 'js object' which is a return value of an function call(),
yu.dongliang [Wed, 5 Nov 2025 06:39:21 +0000 (14:39 +0800)]
js: fix 'teq' for 'js object' which is a return value of an function call(),
for source code as 'if (obj)', 'if (!obj)', or 'if (Boolean(0))', etc.

7 months agojs: add bool type, add if-else
yu.dongliang [Thu, 30 Oct 2025 07:42:48 +0000 (15:42 +0800)]
js: add bool type, add if-else

7 months agojs: support RegExpr such as 'var p = /L/gi;'
yu.dongliang [Mon, 27 Oct 2025 13:45:02 +0000 (21:45 +0800)]
js: support RegExpr such as 'var p = /L/gi;'

7 months agojs: support PCRE2 for RegExpr match(), scf: fix some bugs
yu.dongliang [Fri, 24 Oct 2025 04:29:25 +0000 (12:29 +0800)]
js: support PCRE2 for RegExpr match(), scf: fix some bugs

8 months agojs: re-name key word 'create' to 'new', support Math.PI & Math.sqrt()
yu.dongliang [Sat, 11 Oct 2025 08:44:24 +0000 (16:44 +0800)]
js: re-name key word 'create' to 'new', support Math.PI & Math.sqrt()

8 months agojs: Boolean(), Date(), other js construct() written by user
yu.dongliang [Thu, 9 Oct 2025 12:42:00 +0000 (20:42 +0800)]
js: Boolean(), Date(), other js construct() written by user

8 months agojs: support variable args of js function() with 'arguments[]' array
yu.dongliang [Thu, 25 Sep 2025 13:47:39 +0000 (21:47 +0800)]
js: support variable args of js function() with 'arguments[]' array

9 months agojs: use function object to call()
yu.dongliang [Sat, 23 Aug 2025 16:17:59 +0000 (00:17 +0800)]
js: use function object to call()

9 months agojs: anonymous function & var init ok
yu.dongliang [Fri, 22 Aug 2025 09:11:39 +0000 (17:11 +0800)]
js: anonymous function & var init ok

9 months agojs: simple member function ok
yu.dongliang [Tue, 19 Aug 2025 08:17:30 +0000 (16:17 +0800)]
js: simple member function ok

10 months agojs: object with array init ok
yu.dongliang [Wed, 13 Aug 2025 08:49:50 +0000 (16:49 +0800)]
js: object with array init ok

10 months agojs: simple Object Model ok
yu.dongliang [Wed, 13 Aug 2025 05:15:46 +0000 (13:15 +0800)]
js: simple Object Model ok

10 months agojs: support simple js with 'scf' compiler
yu.dongliang [Fri, 1 Aug 2025 13:43:16 +0000 (21:43 +0800)]
js: support simple js with 'scf' compiler

11 months agoupdate README.md
yu.dongliang [Wed, 9 Jul 2025 15:48:16 +0000 (23:48 +0800)]
update README.md

11 months agosupport HTML label <video> & <audio>, update to ffmpeg-7.1.1
yu.dongliang [Wed, 9 Jul 2025 15:35:08 +0000 (23:35 +0800)]
support HTML label <video> & <audio>, update to ffmpeg-7.1.1

18 months agohttp post with a simple HTML <form> content ok
yu.dongliang [Tue, 19 Nov 2024 04:05:15 +0000 (12:05 +0800)]
http post with a simple HTML <form> content ok

19 months agosimple http download ok by nginx upstream proxy
yu.dongliang [Wed, 6 Nov 2024 15:02:23 +0000 (23:02 +0800)]
simple http download ok by nginx upstream proxy

19 months agoadd a simpile HTTP support for AF_UNIX
yu.dongliang [Sat, 2 Nov 2024 13:09:06 +0000 (21:09 +0800)]
add a simpile HTTP support for AF_UNIX

19 months agosupport to write web page in Chinese, 支持中文编写网页
yu.dongliang [Mon, 21 Oct 2024 08:04:23 +0000 (16:04 +0800)]
support to write web page in Chinese, 支持中文编写网页

19 months agosupport HTML <form>, <input> for text / password / submit
yu.dongliang [Sun, 20 Oct 2024 13:23:14 +0000 (21:23 +0800)]
support HTML <form>, <input> for text / password / submit

20 months agosupport HTML <p> and <br>, <br/>, <br />
yu.dongliang [Sun, 22 Sep 2024 14:44:18 +0000 (22:44 +0800)]
support HTML <p> and <br>, <br/>, <br />

20 months agosupport HTML <img src=.. />
yu.dongliang [Fri, 20 Sep 2024 12:07:20 +0000 (20:07 +0800)]
support HTML <img src=.. />

20 months ago1st commit for ABC (advanced browser core)
yu.dongliang [Thu, 19 Sep 2024 04:57:10 +0000 (12:57 +0800)]
1st commit for ABC (advanced browser core)