Jacob
2067aaace3
Remove inline qualifier from namespaces.
2024-05-23 20:07:12 +02:00
Jacob
8adb6575a1
Add tests for CSS, add some missing methods.
2024-05-21 20:06:04 +02:00
Jacob
14cd8c4122
Remove/replace some "C with classes" junk. The C++ core guidelines state
...
that you must not use ALL_CAPS for enum members. enum class is now used
as well, to further reinforce the idea that this is a C++ library. While
neither of these changes are necessary, it leads to a better and more
intuitive API design.
More operator overloading has also been added for many of the classes,
particularly the [] index operator, which can now be used in place of
the at() method. More methods have also been added, particularly for
Section and Document.
Some methods have also been fixed, or have had their behavior altered
slightly, but this should now be covered under the new tests, which have
also been (for the most part) rewritten, both because they were
previously both primitive and rather ugly and because new functionality
was added.
Examples have also been updated to reflect the changes made in this
commit, so that they build successfully.
Of course, these changes mean that the new API is incompatible with any
applications written with the 0.0.1 version. Hopefully most of these
changes are dealt with before the 1.0 release, because I would prefer
not making API-breaking changes by that point.
2024-05-20 01:32:49 +02:00
Jacob
e178332f7a
Add a comment for each enum member.
2024-05-17 15:06:16 +02:00
Jacob
3c7f1ef085
Change the description of the project to be more generalized. SGML-like
...
syntax should be supported.
2024-05-17 14:47:09 +02:00
Jacob
65dd704aff
Implement ELEMENT_EMPTY_NO_FORMAT, which is an empty tag without
...
formatting.
2024-05-17 13:52:16 +02:00
Jacob
524058e779
Fix: Some template functions not having a default value.
2024-05-17 13:30:47 +02:00
Jacob
e49535179e
Move template functions to header. Rather silly mistake.
2024-05-17 13:02:26 +02:00
Jacob
3449a39154
Some minor cleanup. I'm basically nitpicking at this point.
2024-05-16 10:59:59 +02:00
Jacob
3e7a63e282
Move another constructor to the header.
...
Also, don't mark Properties() constructors as explicit.
2024-05-16 10:51:42 +02:00
Jacob
d6db5690b3
Optimize constructors by initializing variables rather than overriding the
...
values using the appropriate set() methods.
2024-05-16 08:09:27 +02:00
Jacob
6d7cb9af86
Add missing tag, resolve_tag now returns the proper closing tag as well,
...
for convenience.
2024-05-15 23:33:17 +02:00
Jacob
247b2cbf37
Add <link> tag, forgot about this one.
2024-05-15 22:48:33 +02:00
Jacob
fa107fcb64
Name the enums, and use them in the function declarations.
...
Old variant was a little bit too much "C with classes" for my taste.
2024-05-15 10:57:47 +02:00
Jacob
d7107de41b
Add HTML tag enum
2024-05-15 10:22:22 +02:00
Jacob
f139028deb
I don't know if it's so small anymore.
2024-05-14 15:46:43 +02:00
Jacob
ee0720cd67
Change case for many methods to closer align with the standard library.
2024-05-13 12:00:47 +02:00
Jacob
27ff72f2a5
Add some more templates for methods that return std::string.
2024-05-13 00:45:04 +02:00
Jacob
8caa3d92eb
Add template get() methods. Also, remove instances of the auto type.
2024-05-12 23:43:44 +02:00
Jacob
7fa001bcde
Remove a method I accidentally declared.
2024-05-12 23:04:04 +02:00
Jacob
2f9c24e8ab
Add Doxygen file, remove old aliases.
2024-05-12 21:56:03 +02:00
Jacob
35a15651ca
Rename the different classes. I felt it was too verbose.
2024-05-12 20:18:06 +02:00
Jacob
8f3ba89445
Implement iterators for several classes and rename HTMLElementProperties
...
to HTMLProperties.
2024-05-12 20:05:23 +02:00
Jacob
17d8bf6b4b
Add front() and back() methods for the various classes.
2024-05-07 22:58:53 +02:00
Jacob
43daa77f6d
Implement support for plain text elements and sections without a tag.
...
Also, add example replica of biteme.lol.
2024-05-07 21:21:58 +02:00
Jacob
21ddd1d82c
Change the behavior of FORMATTING_PRETTY to include tabs.
...
FORMATTING_NEWLINE can be used if you want to preserve the old behavior.
2024-05-07 17:26:11 +02:00
Jacob
804309d323
Implement operator overloading for several classes.
2024-05-07 00:08:54 +02:00
Jacob
aca33e80d5
Implement at() methods for several classes.
2024-05-06 14:18:01 +02:00
Jacob
cddf11235f
Add position functions for HTMLElementProperties.
2024-05-06 13:19:16 +02:00
Jacob
292b6018d6
Add position functions for CSSElement.
2024-05-06 11:47:24 +02:00
Jacob
298a3c96b6
Implement push_front() method for CSSElement, implement find() method
...
that takes an std::string for CSSStylesheet.
2024-05-06 11:06:45 +02:00
Jacob
f9bf0bbfd4
Add new HTMLSection::find() method that takes an std::string parameter
...
containing a deserialized section or element,
and returns the position of an identical section or element, or npos.
2024-05-06 02:45:15 +02:00
Jacob
8f1f175138
Change the behavior of find() functions. They no longer throw an
...
exception, but rather return npos (-1).
2024-05-06 02:28:23 +02:00
Jacob
0641a95770
Initial commit
2024-05-05 23:31:42 +02:00