mirror of
https://github.com/boostorg/quickbook.git
synced 2026-01-26 18:52:26 +00:00
The new unicode escape support showed up a difference with the old version. Header ids were generated from boostbook, while this version was generated them from quickbook. So fix that as well. [SVN r60067]
92 lines
4.1 KiB
C++
92 lines
4.1 KiB
C++
#include "fwd.hpp"
|
|
#include "encoder.hpp"
|
|
#include "phrase.hpp"
|
|
#include "state.hpp"
|
|
#include <vector>
|
|
#include <stack>
|
|
|
|
namespace quickbook
|
|
{
|
|
struct boostbook_encoder : encoder {
|
|
virtual void operator()(quickbook::state&, doc_info const&);
|
|
virtual void operator()(quickbook::state&, doc_info_post const&);
|
|
|
|
// Note: char is a plain quickbook character, string is an encoded
|
|
// boostbook string. Oops.
|
|
virtual void operator()(quickbook::state&, char);
|
|
virtual void operator()(quickbook::state&, unicode_char const&);
|
|
virtual void operator()(quickbook::state&, std::string const&);
|
|
virtual void operator()(quickbook::state&, anchor const&);
|
|
virtual void operator()(quickbook::state&, link const&);
|
|
virtual void operator()(quickbook::state&, formatted const&);
|
|
virtual void operator()(quickbook::state&, break_ const&);
|
|
virtual void operator()(quickbook::state&, image2 const&);
|
|
|
|
virtual void operator()(quickbook::state&, hr);
|
|
virtual void operator()(quickbook::state&, begin_section2 const&);
|
|
virtual void operator()(quickbook::state&, end_section2 const&);
|
|
virtual void operator()(quickbook::state&, heading2 const&);
|
|
virtual void operator()(quickbook::state&, variablelist const&);
|
|
virtual void operator()(quickbook::state&, table2 const&);
|
|
virtual void operator()(quickbook::state&, xinclude2 const&);
|
|
virtual void operator()(quickbook::state&, list2 const&);
|
|
virtual void operator()(quickbook::state&, callout_link const&);
|
|
virtual void operator()(quickbook::state&, callout_list const&);
|
|
|
|
virtual void operator()(quickbook::state&, code_token const&);
|
|
|
|
virtual std::string encode(std::string const&);
|
|
virtual std::string encode(char);
|
|
virtual std::string encode(char const*);
|
|
};
|
|
|
|
struct html_encoder : encoder {
|
|
html_encoder();
|
|
~html_encoder();
|
|
|
|
virtual void operator()(quickbook::state&, doc_info const&);
|
|
virtual void operator()(quickbook::state&, doc_info_post const&);
|
|
|
|
// Note: char is a plain quickbook character, string is an encoded
|
|
// html string. Oops.
|
|
virtual void operator()(quickbook::state&, char);
|
|
virtual void operator()(quickbook::state&, unicode_char const&);
|
|
virtual void operator()(quickbook::state&, std::string const&);
|
|
virtual void operator()(quickbook::state&, anchor const&);
|
|
virtual void operator()(quickbook::state&, link const&);
|
|
virtual void operator()(quickbook::state&, formatted const&);
|
|
virtual void operator()(quickbook::state&, break_ const&);
|
|
virtual void operator()(quickbook::state&, image2 const&);
|
|
|
|
virtual void operator()(quickbook::state&, hr);
|
|
virtual void operator()(quickbook::state&, begin_section2 const&);
|
|
virtual void operator()(quickbook::state&, end_section2 const&);
|
|
virtual void operator()(quickbook::state&, heading2 const&);
|
|
virtual void operator()(quickbook::state&, variablelist const&);
|
|
virtual void operator()(quickbook::state&, table2 const&);
|
|
virtual void operator()(quickbook::state&, xinclude2 const&);
|
|
virtual void operator()(quickbook::state&, list2 const&);
|
|
virtual void operator()(quickbook::state&, callout_link const&);
|
|
virtual void operator()(quickbook::state&, callout_list const&);
|
|
|
|
virtual void operator()(quickbook::state&, code_token const&);
|
|
|
|
virtual std::string encode(std::string const&);
|
|
virtual std::string encode(char);
|
|
virtual std::string encode(char const*);
|
|
private:
|
|
void push_footnotes(quickbook::state&);
|
|
void pop_footnotes(quickbook::state&);
|
|
|
|
int footnote_id;
|
|
struct footnote {
|
|
footnote(int id, std::string const& content)
|
|
: id(id), content(content) {}
|
|
|
|
int id;
|
|
std::string content;
|
|
};
|
|
typedef std::vector<footnote> footnotes;
|
|
std::stack<footnotes> footnote_stack;
|
|
};
|
|
} |