1
0
Fork 0
mirror of https://github.com/KingDuckZ/kamokan.git synced 2025-02-09 09:23:56 +00:00

Add langmap_dir setting.

Allows users to specify the path to the langmap dir for
source-highlight.
This commit is contained in:
King_DuckZ 2017-04-23 13:57:49 +01:00
parent fb4d99d62b
commit 0add0720d5
6 changed files with 12 additions and 8 deletions

View file

@ -16,15 +16,15 @@
*/
#include "list_highlight_langs.hpp"
#include "settings_bag.hpp"
#include <srchilite/langmap.h>
#include <boost/range/adaptor/map.hpp>
#include <boost/range/algorithm/copy.hpp>
#include <boost/range/iterator_range_core.hpp>
namespace tawashi {
HighlightLangList list_highlight_langs() {
const char langmap_path[] = "/usr/share/source-highlight";
srchilite::LangMap lang_map(langmap_path, "lang.map");
HighlightLangList list_highlight_langs (const SettingsBag& parSettings) {
srchilite::LangMap lang_map(parSettings.as_str("langmap_dir"), "lang.map");
lang_map.open();
const auto lang_range = boost::make_iterator_range(lang_map.begin(), lang_map.end());

View file

@ -21,7 +21,8 @@
#include <string>
namespace tawashi {
class SettingsBag;
typedef std::vector<std::string> HighlightLangList;
HighlightLangList list_highlight_langs();
HighlightLangList list_highlight_langs (const SettingsBag& parSettings);
} //namespace tawashi

View file

@ -64,6 +64,7 @@ namespace {
parSettings.add_default("redis_db", "0");
parSettings.add_default("base_uri", "http://127.0.0.1");
parSettings.add_default("website_root", "html");
parSettings.add_default("langmap_dir", "/usr/share/source-highlight");
}
} //unnamed namespace

View file

@ -26,6 +26,7 @@
namespace tawashi {
PastieResponse::PastieResponse (const Kakoune::SafePtr<SettingsBag>& parSettings) :
Response(Response::ContentType, "text/html", "", parSettings, true),
m_langmap_dir(parSettings->as_str("langmap_dir")),
m_plain_text(false)
{
}
@ -37,7 +38,7 @@ namespace tawashi {
m_plain_text = true;
}
else {
srchilite::LangMap lang_map("/usr/share/source-highlight", "lang.map");
srchilite::LangMap lang_map(m_langmap_dir, "lang.map");
lang_map.open();
if (not cgi_env().query_string().empty())
m_lang_file = lang_map.getFileName(cgi_env().query_string());

View file

@ -31,6 +31,7 @@ namespace tawashi {
virtual void on_send (std::ostream& parStream) override;
std::string m_lang_file;
std::string m_langmap_dir;
bool m_plain_text;
};
} //namespace tawashi

View file

@ -89,10 +89,10 @@ namespace tawashi {
return boost::make_optional(buffer.str());
}
mstch::array make_mstch_langmap() {
mstch::array make_mstch_langmap (const SettingsBag& parSettings) {
mstch::array retval;
for (auto&& lang : list_highlight_langs()) {
for (auto&& lang : list_highlight_langs(parSettings)) {
retval.push_back(mstch::map{{"language_name", std::move(lang)}});
}
return retval;
@ -130,7 +130,7 @@ namespace tawashi {
mstch::map mustache_context {
{"version", std::string{STRINGIZE(VERSION_MAJOR) "." STRINGIZE(VERSION_MINOR) "." STRINGIZE(VERSION_PATCH)}},
{"base_uri", m_settings->as_str("base_uri")},
{"languages", make_mstch_langmap()}
{"languages", make_mstch_langmap(*m_settings)}
};
if (m_redis) {