Commit graph

26 commits

Author SHA1 Message Date
Jacob dfc99c1854 This commit makes many breaking changes to the library. They're far too many to list, but all of them are syntactical - no major behavior will be altered with this commit. However, C++17 is now required in order to make use of docpp. It will **no longer build** with a C++11 or C++14 compiler. Thus, please update your projects to make use of C++17, or stick with the last commit. 2024-08-23 14:11:46 +02:00
Jacob 5da029f533 Add std::string and Tag index for Section operator[]. 2024-06-08 01:11:38 +02:00
Jacob d13c2d02fe Implement docpp::version() function, which returns the library version. 2024-05-30 15:56:38 +02:00
Jacob 9d30189d31 Add Non_Opened to Type enum. It can be used if you want an element that
is only closed.
2024-05-25 21:48:13 +02:00
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 e49535179e Move template functions to header. Rather silly mistake. 2024-05-17 13:02:26 +02:00
Jacob aabb1f79ea Add more test cases, fix a bug where tr is not in the map. 2024-05-17 12:23:01 +02:00
Jacob d7107de41b Add HTML tag enum 2024-05-15 10:22:22 +02:00
Jacob ceda875213 Make use of the template functions in the test cases. 2024-05-14 10:04:32 +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 8caa3d92eb Add template get() methods. Also, remove instances of the auto type. 2024-05-12 23:43:44 +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 0641a95770 Initial commit 2024-05-05 23:31:42 +02:00