Merge branch 'development'
* development: Fix image embedding for confluence, fixes #439 Update dependencies Send correct mimetype for ComputedRawPage in live mode Compile theme, a bug put back the old theme Tweak theme and search
This commit is contained in:
commit
fa91642a34
@ -21,7 +21,7 @@
|
|||||||
"symfony/console": "~3.0",
|
"symfony/console": "~3.0",
|
||||||
"symfony/finder": "~3.0",
|
"symfony/finder": "~3.0",
|
||||||
"webuni/commonmark-table-extension": "0.6.*",
|
"webuni/commonmark-table-extension": "0.6.*",
|
||||||
"webuni/front-matter": "^0.2.0",
|
"webuni/front-matter": "^1.0.0",
|
||||||
"symfony/process": "^3.1"
|
"symfony/process": "^3.1"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
462
composer.lock
generated
462
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@ -78,7 +78,7 @@ style_tasks.push('lint-css');
|
|||||||
|
|
||||||
gulp.task("styles", style_tasks);
|
gulp.task("styles", style_tasks);
|
||||||
|
|
||||||
gulp.task('watch', function () {
|
gulp.task('watch', ['default'], function () {
|
||||||
// Watch .less files
|
// Watch .less files
|
||||||
gulp.watch('themes/**/less/**/*.less', ['styles']);
|
gulp.watch('themes/**/less/**/*.less', ['styles']);
|
||||||
});
|
});
|
||||||
|
@ -11,6 +11,11 @@ abstract class ComputedRawPage implements Page
|
|||||||
$this->raw = $content;
|
$this->raw = $content;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getFilename()
|
||||||
|
{
|
||||||
|
return $this->raw->getUri();
|
||||||
|
}
|
||||||
|
|
||||||
public function getContent()
|
public function getContent()
|
||||||
{
|
{
|
||||||
return $this->raw->getContent();
|
return $this->raw->getContent();
|
||||||
|
@ -229,7 +229,8 @@ class Api
|
|||||||
// Check if an attachment with
|
// Check if an attachment with
|
||||||
// this name is uploaded
|
// this name is uploaded
|
||||||
try {
|
try {
|
||||||
$result = json_decode($this->getClient()->get("content/$id/child/attachment?filename=$attachment[filename]")->getBody(), true);
|
$url = "content/$id/child/attachment?filename=" . urlencode($attachment['filename']);
|
||||||
|
$result = json_decode($this->getClient()->get($url)->getBody(), true);
|
||||||
} catch (BadResponseException $e) {
|
} catch (BadResponseException $e) {
|
||||||
throw $this->handleError($e);
|
throw $this->handleError($e);
|
||||||
}
|
}
|
||||||
@ -242,11 +243,13 @@ class Api
|
|||||||
$url .= "/{$result['results'][0]['id']}/data";
|
$url .= "/{$result['results'][0]['id']}/data";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$contents = array_key_exists('file', $attachment) ? fopen($attachment['file']->getPath(), 'r') : $attachment['content'];
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$this->getClient()->post(
|
$this->getClient()->post(
|
||||||
$url,
|
$url,
|
||||||
[
|
[
|
||||||
'multipart' => [['name' => 'file', 'contents' => fopen($attachment['file']->getPath(), 'r')]],
|
'multipart' => [['name' => 'file', 'contents' => $contents, 'filename' => $attachment['filename']]],
|
||||||
'headers' => ['X-Atlassian-Token' => 'nocheck'],
|
'headers' => ['X-Atlassian-Token' => 'nocheck'],
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
<?php namespace Todaymade\Daux\Format\Confluence;
|
<?php namespace Todaymade\Daux\Format\Confluence;
|
||||||
|
|
||||||
use Todaymade\Daux\Format\Base\EmbedImages;
|
use Todaymade\Daux\Format\Base\EmbedImages;
|
||||||
|
use Todaymade\Daux\Tree\ComputedRaw;
|
||||||
|
use Todaymade\Daux\Tree\Entry;
|
||||||
use Todaymade\Daux\Tree\Raw;
|
use Todaymade\Daux\Tree\Raw;
|
||||||
|
|
||||||
class ContentPage extends \Todaymade\Daux\Format\Base\ContentPage
|
class ContentPage extends \Todaymade\Daux\Format\Base\ContentPage
|
||||||
@ -17,11 +19,16 @@ class ContentPage extends \Todaymade\Daux\Format\Base\ContentPage
|
|||||||
->embed(
|
->embed(
|
||||||
$content,
|
$content,
|
||||||
$this->file,
|
$this->file,
|
||||||
function ($src, array $attributes, Raw $file) {
|
function ($src, array $attributes, Entry $file) {
|
||||||
$filename = basename($file->getPath());
|
|
||||||
|
|
||||||
//Add the attachment for later upload
|
//Add the attachment for later upload
|
||||||
|
if ($file instanceof Raw) {
|
||||||
|
$filename = basename($file->getPath());
|
||||||
$this->attachments[$filename] = ['filename' => $filename, 'file' => $file];
|
$this->attachments[$filename] = ['filename' => $filename, 'file' => $file];
|
||||||
|
} else if ($file instanceof ComputedRaw) {
|
||||||
|
$filename = $file->getUri();
|
||||||
|
$this->attachments[$filename] = ['filename' => $filename, 'content' => $file->getContent()];
|
||||||
|
}
|
||||||
|
|
||||||
return $this->createImageTag($filename, $attributes);
|
return $this->createImageTag($filename, $attributes);
|
||||||
}
|
}
|
||||||
@ -41,6 +48,14 @@ class ContentPage extends \Todaymade\Daux\Format\Base\ContentPage
|
|||||||
$img = '<ac:image';
|
$img = '<ac:image';
|
||||||
|
|
||||||
foreach ($attributes as $name => $value) {
|
foreach ($attributes as $name => $value) {
|
||||||
|
if ($name == 'style') {
|
||||||
|
$re = '/float:\s*?(left|right);?/';
|
||||||
|
if (preg_match($re, $value, $matches)) {
|
||||||
|
$img .= ' ac:align="' . $matches[1] . '"';
|
||||||
|
$value = preg_replace($re, "", $value, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$img .= ' ac:' . $name . '="' . htmlentities($value, ENT_QUOTES, 'UTF-8', false) . '"';
|
$img .= ' ac:' . $name . '="' . htmlentities($value, ENT_QUOTES, 'UTF-8', false) . '"';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ use Symfony\Component\Console\Output\NullOutput;
|
|||||||
use Todaymade\Daux\Daux;
|
use Todaymade\Daux\Daux;
|
||||||
use Todaymade\Daux\DauxHelper;
|
use Todaymade\Daux\DauxHelper;
|
||||||
use Todaymade\Daux\Exception;
|
use Todaymade\Daux\Exception;
|
||||||
|
use Todaymade\Daux\Format\Base\ComputedRawPage;
|
||||||
use Todaymade\Daux\Format\Base\LiveGenerator;
|
use Todaymade\Daux\Format\Base\LiveGenerator;
|
||||||
use Todaymade\Daux\Format\HTML\RawPage;
|
use Todaymade\Daux\Format\HTML\RawPage;
|
||||||
|
|
||||||
@ -59,7 +60,12 @@ class Server
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($page instanceof ComputedRawPage) {
|
||||||
|
header('Content-type: ' . MimeType::get($page->getFilename()));
|
||||||
|
} else {
|
||||||
header('Content-type: text/html; charset=utf-8');
|
header('Content-type: text/html; charset=utf-8');
|
||||||
|
}
|
||||||
|
|
||||||
echo $page->getContent();
|
echo $page->getContent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
"gulp-postcss": "^6.1.1",
|
"gulp-postcss": "^6.1.1",
|
||||||
"gulp-rename": "^1.2.2",
|
"gulp-rename": "^1.2.2",
|
||||||
"gulp-stylelint": "^3.0.0",
|
"gulp-stylelint": "^3.0.0",
|
||||||
"stylelint-config-standard": "^15.0.1"
|
"stylelint-config-standard": "^16.0.0"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "gulp",
|
"build": "gulp",
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
<?php $this->layout('theme::layout/00_layout') ?>
|
<?php $this->layout('theme::layout/00_layout') ?>
|
||||||
|
|
||||||
|
<?php $this->start('classes') ?>homepage<?php $this->stop() ?>
|
||||||
|
|
||||||
<div class="Navbar hidden-print">
|
<div class="Navbar hidden-print">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<?php $this->insert('theme::partials/navbar_content', ['params' => $params]); ?>
|
<?php $this->insert('theme::partials/navbar_content', ['params' => $params]); ?>
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
</head>
|
</head>
|
||||||
<body class="<?= $params['html']['float'] ? 'with-float' : ''; ?>">
|
<body class="<?= $params['html']['float'] ? 'with-float' : ''; ?> <?= $this->section('classes'); ?>">
|
||||||
<?= $this->section('content'); ?>
|
<?= $this->section('content'); ?>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
@ -1,17 +1,13 @@
|
|||||||
<?php $this->layout('theme::layout/00_layout') ?>
|
<?php $this->layout('theme::layout/00_layout') ?>
|
||||||
|
|
||||||
<header class="Navbar hidden-print">
|
|
||||||
<?php $this->insert('theme::partials/navbar_content', ['params' => $params]); ?>
|
|
||||||
</header>
|
|
||||||
<div class="Columns content">
|
<div class="Columns content">
|
||||||
<aside class="Columns__left Collapsible">
|
<aside class="Columns__left Collapsible">
|
||||||
<div class="Collapsible__container">
|
|
||||||
<button type="button" class="Button Collapsible__trigger">
|
<button type="button" class="Button Collapsible__trigger">
|
||||||
<span class="Collapsible__trigger--bar"></span>
|
<span class="Collapsible__trigger--bar"></span>
|
||||||
<span class="Collapsible__trigger--bar"></span>
|
<span class="Collapsible__trigger--bar"></span>
|
||||||
<span class="Collapsible__trigger--bar"></span>
|
<span class="Collapsible__trigger--bar"></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
|
||||||
|
<?php $this->insert('theme::partials/navbar_content', ['params' => $params]); ?>
|
||||||
|
|
||||||
<div class="Collapsible__content">
|
<div class="Collapsible__content">
|
||||||
<!-- Navigation -->
|
<!-- Navigation -->
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
<a class="Navbar__brand" href="<?= $params['base_page'] . $params['index']->getUri(); ?>"><?= $params['title']; ?></a>
|
<a class="Brand" href="<?= $params['base_page'] . $params['index']->getUri(); ?>"><?= $params['title']; ?></a>
|
||||||
|
|
||||||
<?php if ($params['html']['search']) {
|
<?php if ($params['html']['search']) { ?>
|
||||||
?>
|
|
||||||
<div class="Search">
|
<div class="Search">
|
||||||
<svg class="Search__icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 451 451"><path d="M447.05 428l-109.6-109.6c29.4-33.8 47.2-77.9 47.2-126.1C384.65 86.2 298.35 0 192.35 0 86.25 0 .05 86.3.05 192.3s86.3 192.3 192.3 192.3c48.2 0 92.3-17.8 126.1-47.2L428.05 447c2.6 2.6 6.1 4 9.5 4s6.9-1.3 9.5-4c5.2-5.2 5.2-13.8 0-19zM26.95 192.3c0-91.2 74.2-165.3 165.3-165.3 91.2 0 165.3 74.2 165.3 165.3s-74.1 165.4-165.3 165.4c-91.1 0-165.3-74.2-165.3-165.4z"/></svg>
|
<svg class="Search__icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 451 451">
|
||||||
<input type="search" id="tipue_search_input" class="Search__field" placeholder="Search..." autocomplete="on" results=25 autosave=text_search>
|
<path d="M447.05 428l-109.6-109.6c29.4-33.8 47.2-77.9 47.2-126.1C384.65 86.2 298.35 0 192.35 0 86.25 0 .05 86.3.05 192.3s86.3 192.3 192.3 192.3c48.2 0 92.3-17.8 126.1-47.2L428.05 447c2.6 2.6 6.1 4 9.5 4s6.9-1.3 9.5-4c5.2-5.2 5.2-13.8 0-19zM26.95 192.3c0-91.2 74.2-165.3 165.3-165.3 91.2 0 165.3 74.2 165.3 165.3s-74.1 165.4-165.3 165.4c-91.1 0-165.3-74.2-165.3-165.4z"/>
|
||||||
|
</svg>
|
||||||
|
<input type="search" id="tipue_search_input" class="Search__field" placeholder="Search..." autocomplete="on"
|
||||||
|
results=25 autosave=text_search>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php } ?>
|
||||||
|
|
||||||
} ?>
|
|
||||||
|
2
themes/daux/css/theme-blue.min.css
vendored
2
themes/daux/css/theme-blue.min.css
vendored
File diff suppressed because one or more lines are too long
2
themes/daux/css/theme-green.min.css
vendored
2
themes/daux/css/theme-green.min.css
vendored
File diff suppressed because one or more lines are too long
2
themes/daux/css/theme-navy.min.css
vendored
2
themes/daux/css/theme-navy.min.css
vendored
File diff suppressed because one or more lines are too long
2
themes/daux/css/theme-red.min.css
vendored
2
themes/daux/css/theme-red.min.css
vendored
File diff suppressed because one or more lines are too long
@ -108,22 +108,27 @@ Components
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.Brand {
|
||||||
|
display: block;
|
||||||
|
background-color: @dark;
|
||||||
|
padding: 15px 20px;
|
||||||
|
font-size: 18px;
|
||||||
|
text-shadow: none;
|
||||||
|
font-family: @font-family-heading;
|
||||||
|
font-weight: 700;
|
||||||
|
color: @light;
|
||||||
|
}
|
||||||
|
|
||||||
.Navbar {
|
.Navbar {
|
||||||
height: @navbar-height;
|
height: 50px;
|
||||||
box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25);
|
box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25);
|
||||||
background-color: @dark;
|
background-color: @dark;
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
|
|
||||||
&__brand {
|
.Brand {
|
||||||
float: left;
|
float: left;
|
||||||
padding: 15px 20px;
|
|
||||||
font-size: 18px;
|
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
height: @navbar-height;
|
height: 50px;
|
||||||
color: @light;
|
|
||||||
text-shadow: none;
|
|
||||||
font-family: @font-family-heading;
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -241,6 +246,7 @@ Components
|
|||||||
h1 {
|
h1 {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
line-height: 57px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&--separator {
|
&--separator {
|
||||||
@ -265,25 +271,21 @@ Components
|
|||||||
|
|
||||||
.Search {
|
.Search {
|
||||||
position: relative;
|
position: relative;
|
||||||
float: right;
|
|
||||||
margin: 8px 20px;
|
|
||||||
|
|
||||||
&__field {
|
&__field {
|
||||||
display: block;
|
display: block;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 34px;
|
height: 34px;
|
||||||
padding: 6px 30px 6px 0;
|
padding: 6px 30px 6px 20px;
|
||||||
color: #555;
|
color: #555;
|
||||||
|
border-width: 0 0 1px;
|
||||||
|
border-bottom: 1px solid #ccc;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
border: 1px solid #ccc;
|
transition: border-color ease-in-out 0.15s;
|
||||||
border-radius: 4px;
|
|
||||||
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
|
|
||||||
transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
|
|
||||||
|
|
||||||
&:focus {
|
&:focus {
|
||||||
border-color: @light;
|
border-color: @light;
|
||||||
outline: 0;
|
outline: 0;
|
||||||
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px 2px rgba(102, 175, 233, 0.6);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -296,6 +298,18 @@ Components
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.Navbar .Search {
|
||||||
|
float: right;
|
||||||
|
margin: 8px 20px;
|
||||||
|
|
||||||
|
&__field {
|
||||||
|
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
|
||||||
|
border-width: 0;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.TableOfContents {
|
.TableOfContents {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
|
@ -32,22 +32,17 @@ html, body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.Collapsible {
|
.Collapsible {
|
||||||
&__container {
|
|
||||||
padding: 10px 15px;
|
|
||||||
display: block;
|
|
||||||
background-color: @lines;
|
|
||||||
border-bottom: 1px solid @lines;
|
|
||||||
}
|
|
||||||
|
|
||||||
//mobile friendly sub-nav
|
//mobile friendly sub-nav
|
||||||
&__content {
|
&__content {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__trigger {
|
&__trigger {
|
||||||
|
margin: 12px;
|
||||||
padding: 7px 10px;
|
padding: 7px 10px;
|
||||||
background-color: @sidebar-hover;
|
background-color: transparent;
|
||||||
border: none;
|
border: none;
|
||||||
|
float: right;
|
||||||
|
|
||||||
.kill-background-image;
|
.kill-background-image;
|
||||||
.kill-box-shadow;
|
.kill-box-shadow;
|
||||||
@ -58,16 +53,16 @@ html, body {
|
|||||||
height: 2px;
|
height: 2px;
|
||||||
margin-top: 2px;
|
margin-top: 2px;
|
||||||
margin-bottom: 3px;
|
margin-bottom: 3px;
|
||||||
background-color: @dark;
|
background-color: @light;
|
||||||
.kill-box-shadow;
|
.kill-box-shadow;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background-color: @dark;
|
background-color: @sidebar-hover;
|
||||||
.kill-box-shadow;
|
.kill-box-shadow;
|
||||||
|
|
||||||
.icon-bar {
|
.Collapsible__trigger--bar {
|
||||||
background-color: @light;
|
background-color: @dark;
|
||||||
.kill-box-shadow;
|
.kill-box-shadow;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -82,13 +77,13 @@ html, body {
|
|||||||
|
|
||||||
.Navbar {
|
.Navbar {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
z-index: @zindex-navbar-fixed;
|
z-index: 1030;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.Collapsible {
|
.Collapsible {
|
||||||
&__container {
|
&__trigger {
|
||||||
display: none;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__content {
|
&__content {
|
||||||
@ -98,7 +93,6 @@ html, body {
|
|||||||
|
|
||||||
.Columns {
|
.Columns {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
padding-top: @navbar-height;
|
|
||||||
|
|
||||||
&::after,
|
&::after,
|
||||||
&::before {
|
&::before {
|
||||||
@ -128,7 +122,7 @@ html, body {
|
|||||||
width: 75%;
|
width: 75%;
|
||||||
|
|
||||||
&__content {
|
&__content {
|
||||||
padding: 20px;
|
padding: 0 20px 20px;
|
||||||
min-height: 100%;
|
min-height: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
@zindex-navbar-fixed: 1030;
|
|
||||||
|
|
||||||
@navbar-height: 50px;
|
|
@ -1,6 +1,4 @@
|
|||||||
|
|
||||||
@import "_variables.less";
|
|
||||||
|
|
||||||
//Daux.io Blue
|
//Daux.io Blue
|
||||||
@sidebar-background: #f7f7f7;
|
@sidebar-background: #f7f7f7;
|
||||||
@sidebar-hover: #c5c5cb;
|
@sidebar-hover: #c5c5cb;
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
|
|
||||||
@import "_variables.less";
|
|
||||||
|
|
||||||
//Daux.io Green
|
//Daux.io Green
|
||||||
@sidebar-background: #f5f5f6;
|
@sidebar-background: #f5f5f6;
|
||||||
@sidebar-hover: #a0d55d;
|
@sidebar-hover: #a0d55d;
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
|
|
||||||
@import "_variables.less";
|
|
||||||
|
|
||||||
//Daux.io Navy
|
//Daux.io Navy
|
||||||
@sidebar-hover: #c5c5cb;
|
@sidebar-hover: #c5c5cb;
|
||||||
@lines: #e7e7e9;
|
@lines: #e7e7e9;
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
|
|
||||||
@import "_variables.less";
|
|
||||||
|
|
||||||
// Daux.io Red
|
// Daux.io Red
|
||||||
@sidebar-hover: #eee;
|
@sidebar-hover: #eee;
|
||||||
@lines: #eee;
|
@lines: #eee;
|
||||||
|
@ -9,21 +9,7 @@ body.with-search {
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* bootstrap overrides the search field so let's undo that */
|
.SearchResults {
|
||||||
input[type="search"] {
|
|
||||||
-webkit-appearance: searchfield;
|
|
||||||
}
|
|
||||||
|
|
||||||
input[type="search"]::-webkit-search-cancel-button {
|
|
||||||
-webkit-appearance: searchfield-cancel-button;
|
|
||||||
}
|
|
||||||
|
|
||||||
#tipue_search_input {
|
|
||||||
width: 170px;
|
|
||||||
font-size: medium;
|
|
||||||
}
|
|
||||||
|
|
||||||
#tipue_search_content {
|
|
||||||
background: #fff;
|
background: #fff;
|
||||||
max-width: 650px;
|
max-width: 650px;
|
||||||
padding: 15px;
|
padding: 15px;
|
||||||
@ -31,20 +17,20 @@ input[type="search"]::-webkit-search-cancel-button {
|
|||||||
|
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
position:absolute;
|
position:absolute;
|
||||||
top: 50px;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
|
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
#tipue_search_backdrop {
|
.SearchResultsBackdrop {
|
||||||
z-index: 90;
|
z-index: 90;
|
||||||
|
|
||||||
width:100%;
|
width:100%;
|
||||||
|
|
||||||
position:absolute;
|
position:absolute;
|
||||||
top: 50px;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
|
|
||||||
@ -52,7 +38,22 @@ input[type="search"]::-webkit-search-cancel-button {
|
|||||||
opacity: .6;
|
opacity: .6;
|
||||||
}
|
}
|
||||||
|
|
||||||
#tipue_search_warning {
|
|
||||||
|
.homepage .SearchResults,
|
||||||
|
.homepage .SearchResultsBackdrop {
|
||||||
|
top: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.homepage .SearchResults .Search__field {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.SearchResults .Search__field {
|
||||||
|
width: 40%;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.SearchResults__warning {
|
||||||
font-weight:300;
|
font-weight:300;
|
||||||
font-size:15px;
|
font-size:15px;
|
||||||
line-height: 1.6;
|
line-height: 1.6;
|
||||||
@ -60,23 +61,23 @@ input[type="search"]::-webkit-search-cancel-button {
|
|||||||
margin: 7px 0;
|
margin: 7px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#tipue_search_warning a {
|
.SearchResults__warning a {
|
||||||
color: #396;
|
color: #396;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
#tipue_search_warning a:hover {
|
.SearchResults__warning a:hover {
|
||||||
color: #555;
|
color: #555;
|
||||||
}
|
}
|
||||||
|
|
||||||
#tipue_search_results_count {
|
.SearchResults__count {
|
||||||
font-weight:300;
|
font-weight:300;
|
||||||
font-size:15px;
|
font-size:15px;
|
||||||
line-height: 1.7;
|
line-height: 1.7;
|
||||||
color: #555;
|
color: #555;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tipue_close {
|
.SearchResults__close {
|
||||||
border: 0 transparent solid;
|
border: 0 transparent solid;
|
||||||
background: none;
|
background: none;
|
||||||
|
|
||||||
@ -88,23 +89,23 @@ input[type="search"]::-webkit-search-cancel-button {
|
|||||||
line-height: .8em;
|
line-height: .8em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tipue_search_content_title {
|
.SearchResults__title {
|
||||||
font-weight:300;
|
font-weight:300;
|
||||||
font-size:21px;
|
font-size:21px;
|
||||||
line-height: 1.7;
|
line-height: 1.7;
|
||||||
margin-top: 23px;
|
margin-top: 23px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tipue_search_content_title a {
|
.SearchResults__title a {
|
||||||
color: #333;
|
color: #333;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tipue_search_content_title a:hover {
|
.SearchResults__title a:hover {
|
||||||
color: #555;
|
color: #555;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tipue_search_content_url {
|
.SearchResults__url {
|
||||||
font-weight:300;
|
font-weight:300;
|
||||||
font-size:14px;
|
font-size:14px;
|
||||||
line-height: 1.9;
|
line-height: 1.9;
|
||||||
@ -112,16 +113,16 @@ input[type="search"]::-webkit-search-cancel-button {
|
|||||||
hyphens: auto;
|
hyphens: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tipue_search_content_url a {
|
.SearchResults__url a {
|
||||||
color: #396;
|
color: #396;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tipue_search_content_url a:hover {
|
.SearchResults__url a:hover {
|
||||||
color: #555;
|
color: #555;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tipue_search_content_text {
|
.SearchResults__text {
|
||||||
font-weight:300;
|
font-weight:300;
|
||||||
font-size:15px;
|
font-size:15px;
|
||||||
line-height: 1.6;
|
line-height: 1.6;
|
||||||
@ -131,7 +132,7 @@ input[type="search"]::-webkit-search-cancel-button {
|
|||||||
margin-top: 3px;
|
margin-top: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tipue_search_content_debug {
|
.SearchResults__debug {
|
||||||
font-weight:300;
|
font-weight:300;
|
||||||
font-size:13px;
|
font-size:13px;
|
||||||
line-height: 1.6;
|
line-height: 1.6;
|
||||||
@ -139,21 +140,21 @@ input[type="search"]::-webkit-search-cancel-button {
|
|||||||
margin: 5px 0;
|
margin: 5px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.h01 {
|
.SearchResults__highlight {
|
||||||
color: #333;
|
color: #333;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
|
|
||||||
#tipue_search_foot {
|
.SearchResults__footer {
|
||||||
margin: 51px 0 21px 0;
|
margin: 51px 0 21px 0;
|
||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#tipue_search_foot_boxes li {
|
.SearchResults__footer__links li {
|
||||||
margin: 0 4px;
|
margin: 0 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#tipue_search_foot_boxes li.current {
|
.SearchResults__footer__links li.current {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 5px 14px;
|
padding: 5px 14px;
|
||||||
border-radius: 15px;
|
border-radius: 15px;
|
||||||
@ -166,54 +167,8 @@ input[type="search"]::-webkit-search-cancel-button {
|
|||||||
|
|
||||||
/* spinner */
|
/* spinner */
|
||||||
|
|
||||||
.tipue_search_spinner {
|
|
||||||
padding: 31px 0;
|
|
||||||
width: 50px;
|
|
||||||
height: 28px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tipue_search_spinner > div {
|
|
||||||
background-color: #777;
|
|
||||||
height: 100%;
|
|
||||||
width: 3px;
|
|
||||||
display: inline-block;
|
|
||||||
margin-right: 2px;
|
|
||||||
-webkit-animation: stretchdelay 1.2s infinite ease-in-out;
|
|
||||||
animation: stretchdelay 1.2s infinite ease-in-out;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tipue_search_spinner .tipue_search_rect2 {
|
|
||||||
-webkit-animation-delay: -1.1s;
|
|
||||||
animation-delay: -1.1s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tipue_search_spinner .tipue_search_rect3 {
|
|
||||||
-webkit-animation-delay: -1.0s;
|
|
||||||
animation-delay: -1.0s;
|
|
||||||
}
|
|
||||||
|
|
||||||
@-webkit-keyframes stretchdelay {
|
|
||||||
0%, 40%, 100% {
|
|
||||||
-webkit-transform: scaleY(0.4)
|
|
||||||
}
|
|
||||||
20% {
|
|
||||||
-webkit-transform: scaleY(1.0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes stretchdelay {
|
|
||||||
0%, 40%, 100% {
|
|
||||||
transform: scaleY(0.4);
|
|
||||||
-webkit-transform: scaleY(0.4);
|
|
||||||
}
|
|
||||||
20% {
|
|
||||||
transform: scaleY(1.0);
|
|
||||||
-webkit-transform: scaleY(1.0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (min-width: 650px) {
|
@media (min-width: 650px) {
|
||||||
#tipue_search_content {
|
.SearchResults {
|
||||||
width: 650px;
|
width: 650px;
|
||||||
|
|
||||||
left: 50%;
|
left: 50%;
|
||||||
|
@ -13,18 +13,7 @@
|
|||||||
// Stop words (list from http://www.ranks.nl/stopwords)
|
// Stop words (list from http://www.ranks.nl/stopwords)
|
||||||
var tipuesearch_stop_words = ["a", "about", "above", "after", "again", "against", "all", "am", "an", "and", "any", "are", "aren't", "as", "at", "be", "because", "been", "before", "being", "below", "between", "both", "but", "by", "can't", "cannot", "could", "couldn't", "did", "didn't", "do", "does", "doesn't", "doing", "don't", "down", "during", "each", "few", "for", "from", "further", "had", "hadn't", "has", "hasn't", "have", "haven't", "having", "he", "he'd", "he'll", "he's", "her", "here", "here's", "hers", "herself", "him", "himself", "his", "how", "how's", "i", "i'd", "i'll", "i'm", "i've", "if", "in", "into", "is", "isn't", "it", "it's", "its", "itself", "let's", "me", "more", "most", "mustn't", "my", "myself", "no", "nor", "not", "of", "off", "on", "once", "only", "or", "other", "ought", "our", "ours", "ourselves", "out", "over", "own", "same", "shan't", "she", "she'd", "she'll", "she's", "should", "shouldn't", "so", "some", "such", "than", "that", "that's", "the", "their", "theirs", "them", "themselves", "then", "there", "there's", "these", "they", "they'd", "they'll", "they're", "they've", "this", "those", "through", "to", "too", "under", "until", "up", "very", "was", "wasn't", "we", "we'd", "we'll", "we're", "we've", "were", "weren't", "what", "what's", "when", "when's", "where", "where's", "which", "while", "who", "who's", "whom", "why", "why's", "with", "won't", "would", "wouldn't", "you", "you'd", "you'll", "you're", "you've", "your", "yours", "yourself", "yourselves"];
|
var tipuesearch_stop_words = ["a", "about", "above", "after", "again", "against", "all", "am", "an", "and", "any", "are", "aren't", "as", "at", "be", "because", "been", "before", "being", "below", "between", "both", "but", "by", "can't", "cannot", "could", "couldn't", "did", "didn't", "do", "does", "doesn't", "doing", "don't", "down", "during", "each", "few", "for", "from", "further", "had", "hadn't", "has", "hasn't", "have", "haven't", "having", "he", "he'd", "he'll", "he's", "her", "here", "here's", "hers", "herself", "him", "himself", "his", "how", "how's", "i", "i'd", "i'll", "i'm", "i've", "if", "in", "into", "is", "isn't", "it", "it's", "its", "itself", "let's", "me", "more", "most", "mustn't", "my", "myself", "no", "nor", "not", "of", "off", "on", "once", "only", "or", "other", "ought", "our", "ours", "ourselves", "out", "over", "own", "same", "shan't", "she", "she'd", "she'll", "she's", "should", "shouldn't", "so", "some", "such", "than", "that", "that's", "the", "their", "theirs", "them", "themselves", "then", "there", "there's", "these", "they", "they'd", "they'll", "they're", "they've", "this", "those", "through", "to", "too", "under", "until", "up", "very", "was", "wasn't", "we", "we'd", "we'll", "we're", "we've", "were", "weren't", "what", "what's", "when", "when's", "where", "where's", "which", "while", "who", "who's", "whom", "why", "why's", "with", "won't", "would", "wouldn't", "you", "you'd", "you'll", "you're", "you've", "your", "yours", "yourself", "yourselves"];
|
||||||
|
|
||||||
// Word replace
|
|
||||||
var tipuesearch_replace = {'words': []};
|
|
||||||
|
|
||||||
// Weighting
|
|
||||||
var tipuesearch_weight = {'weight': []};
|
|
||||||
|
|
||||||
// Stemming
|
|
||||||
var tipuesearch_stem = {'words': []};
|
|
||||||
|
|
||||||
// Internal strings
|
// Internal strings
|
||||||
var tipuesearch_string_results_for = 'Showing results for';
|
|
||||||
var tipuesearch_string_search_instead = 'Search instead for';
|
|
||||||
var tipuesearch_string_one_result = '1 result';
|
var tipuesearch_string_one_result = '1 result';
|
||||||
var tipuesearch_string_results = 'results';
|
var tipuesearch_string_results = 'results';
|
||||||
var tipuesearch_string_prev = 'Previous';
|
var tipuesearch_string_prev = 'Previous';
|
||||||
@ -35,6 +24,9 @@
|
|||||||
var tipuesearch_string_one_character_or_more = 'Should be one character or more';
|
var tipuesearch_string_one_character_or_more = 'Should be one character or more';
|
||||||
var tipuesearch_string_should_be_x_or_more = 'Should be !min characters or more';
|
var tipuesearch_string_should_be_x_or_more = 'Should be !min characters or more';
|
||||||
|
|
||||||
|
// Main containers
|
||||||
|
var tipue_container, tipue_backdrop;
|
||||||
|
|
||||||
function getURLP(name) {
|
function getURLP(name) {
|
||||||
return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search) || [, ""])[1].replace(/\+/g, '%20')) || null;
|
return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search) || [, ""])[1].replace(/\+/g, '%20')) || null;
|
||||||
}
|
}
|
||||||
@ -55,11 +47,74 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var tipue_container, tipue_backdrop;
|
function getSearchString(searchFor) {
|
||||||
|
var standard = true;
|
||||||
|
var hasStopWords = false;
|
||||||
|
if ((searchFor.match("^\"") && searchFor.match("\"$")) || (searchFor.match("^'") && searchFor.match("'$"))) {
|
||||||
|
standard = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (standard) {
|
||||||
|
var d_w = searchFor.split(' ');
|
||||||
|
searchFor = '';
|
||||||
|
for (var i = 0; i < d_w.length; i++) {
|
||||||
|
var isStopWord = false;
|
||||||
|
for (var f = 0; f < tipuesearch_stop_words.length; f++) {
|
||||||
|
if (d_w[i] == tipuesearch_stop_words[f]) {
|
||||||
|
isStopWord = true;
|
||||||
|
hasStopWords = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!isStopWord) {
|
||||||
|
searchFor = searchFor + ' ' + d_w[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
searchFor = $.trim(searchFor);
|
||||||
|
} else {
|
||||||
|
searchFor = searchFor.substring(1, searchFor.length - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
hasStopWords: hasStopWords,
|
||||||
|
isStandard: standard,
|
||||||
|
searchFor: searchFor
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function getScore(searchFor, page) {
|
||||||
|
var score = 0;
|
||||||
|
var pat = new RegExp(searchFor, 'gi');
|
||||||
|
|
||||||
|
if (page.title.search(pat) != -1) {
|
||||||
|
score += (20 * page.title.match(pat).length);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (page.text.search(pat) != -1) {
|
||||||
|
score += (20 * page.text.match(pat).length);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (page.tags.search(pat) != -1) {
|
||||||
|
score += (10 * page.tags.match(pat).length);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (page.url.search(pat) != -1) {
|
||||||
|
score += 20;
|
||||||
|
}
|
||||||
|
|
||||||
|
return score;
|
||||||
|
}
|
||||||
|
|
||||||
|
function makeResult(score, page, text) {
|
||||||
|
return {
|
||||||
|
"score": score,
|
||||||
|
"title": page.title,
|
||||||
|
"desc": text,
|
||||||
|
"url": page.url
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
window.tipuesearch = function (options) {
|
window.tipuesearch = function (options) {
|
||||||
|
var settings = $.extend(
|
||||||
var set = $.extend(
|
|
||||||
{
|
{
|
||||||
'field': $('#tipue_search_input'),
|
'field': $('#tipue_search_input'),
|
||||||
'show': 10,
|
'show': 10,
|
||||||
@ -69,13 +124,10 @@
|
|||||||
'descriptiveWords': 25,
|
'descriptiveWords': 25,
|
||||||
'highlightTerms': true,
|
'highlightTerms': true,
|
||||||
'highlightEveryTerm': false,
|
'highlightEveryTerm': false,
|
||||||
'liveDescription': '*',
|
|
||||||
'liveContent': '*',
|
|
||||||
'contentLocation': 'tipuesearch/tipuesearch_content.json',
|
'contentLocation': 'tipuesearch/tipuesearch_content.json',
|
||||||
'debug': false
|
'debug': false
|
||||||
}, options);
|
}, options);
|
||||||
|
|
||||||
|
|
||||||
var tipuesearch_in = {
|
var tipuesearch_in = {
|
||||||
pages: []
|
pages: []
|
||||||
};
|
};
|
||||||
@ -83,7 +135,7 @@
|
|||||||
$.ajax(
|
$.ajax(
|
||||||
{
|
{
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
url: set.base_url + set.contentLocation,
|
url: settings.base_url + settings.contentLocation,
|
||||||
async: false
|
async: false
|
||||||
})
|
})
|
||||||
.done(
|
.done(
|
||||||
@ -93,11 +145,11 @@
|
|||||||
|
|
||||||
|
|
||||||
if (getURLP('q')) {
|
if (getURLP('q')) {
|
||||||
set.field.val(getURLP('q'));
|
settings.field.val(getURLP('q'));
|
||||||
getTipueSearch(0, true);
|
getTipueSearch(0, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
set.field.keyup(
|
settings.field.keyup(
|
||||||
function (event) {
|
function (event) {
|
||||||
if (event.keyCode == '13') {
|
if (event.keyCode == '13') {
|
||||||
getTipueSearch(0, true);
|
getTipueSearch(0, true);
|
||||||
@ -105,227 +157,135 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
function getTipueSearch(start, replace) {
|
function highlightText(search, text) {
|
||||||
$('#tipue_search_content').html('<div class="tipue_search_spinner"><div class="tipue_search_rect1"></div><div class="tipue_search_rect2"></div><div class="rect3"></div></div>');
|
if (settings.highlightTerms) {
|
||||||
|
var pattern = new RegExp('(' + search + ')', settings.highlightEveryTerm ? 'gi' : 'i');
|
||||||
|
text = text.replace(pattern, "<span class=\"SearchResults__highlight\">$1</span>");
|
||||||
|
}
|
||||||
|
|
||||||
var out = '<button class=tipue_close>×</button>';
|
return text;
|
||||||
var results = '';
|
}
|
||||||
var show_replace = false;
|
|
||||||
var show_stop = false;
|
function getResults(searchFor, standard) {
|
||||||
var standard = true;
|
|
||||||
var c = 0;
|
|
||||||
var found = [];
|
var found = [];
|
||||||
|
|
||||||
var d = set.field.val().toLowerCase();
|
|
||||||
d = $.trim(d);
|
|
||||||
|
|
||||||
if ((d.match("^\"") && d.match("\"$")) || (d.match("^'") && d.match("'$"))) {
|
|
||||||
standard = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (standard) {
|
if (standard) {
|
||||||
var d_w = d.split(' ');
|
var d_w = searchFor.split(' ');
|
||||||
d = '';
|
|
||||||
for (var i = 0; i < d_w.length; i++) {
|
|
||||||
var a_w = true;
|
|
||||||
for (var f = 0; f < tipuesearch_stop_words.length; f++) {
|
|
||||||
if (d_w[i] == tipuesearch_stop_words[f]) {
|
|
||||||
a_w = false;
|
|
||||||
show_stop = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (a_w) {
|
|
||||||
d = d + ' ' + d_w[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
d = $.trim(d);
|
|
||||||
d_w = d.split(' ');
|
|
||||||
} else {
|
|
||||||
d = d.substring(1, d.length - 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (d.length >= set.minimumLength) {
|
|
||||||
if (standard) {
|
|
||||||
if (replace) {
|
|
||||||
var d_r = d;
|
|
||||||
for (var i = 0; i < d_w.length; i++) {
|
|
||||||
for (var f = 0; f < tipuesearch_replace.words.length; f++) {
|
|
||||||
if (d_w[i] == tipuesearch_replace.words[f].word) {
|
|
||||||
d = d.replace(d_w[i], tipuesearch_replace.words[f].replace_with);
|
|
||||||
show_replace = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
d_w = d.split(' ');
|
|
||||||
}
|
|
||||||
|
|
||||||
var d_t = d;
|
|
||||||
for (var i = 0; i < d_w.length; i++) {
|
|
||||||
for (var f = 0; f < tipuesearch_stem.words.length; f++) {
|
|
||||||
if (d_w[i] == tipuesearch_stem.words[f].word) {
|
|
||||||
d_t = d_t + ' ' + tipuesearch_stem.words[f].stem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
d_w = d_t.split(' ');
|
|
||||||
|
|
||||||
for (var i = 0; i < tipuesearch_in.pages.length; i++) {
|
for (var i = 0; i < tipuesearch_in.pages.length; i++) {
|
||||||
var score = 0;
|
var score = 0;
|
||||||
var s_t = tipuesearch_in.pages[i].text;
|
var text = tipuesearch_in.pages[i].text;
|
||||||
for (var f = 0; f < d_w.length; f++) {
|
for (var f = 0; f < d_w.length; f++) {
|
||||||
var pat = new RegExp(d_w[f], 'gi');
|
|
||||||
if (tipuesearch_in.pages[i].title.search(pat) != -1) {
|
|
||||||
var m_c = tipuesearch_in.pages[i].title.match(pat).length;
|
|
||||||
score += (20 * m_c);
|
|
||||||
}
|
|
||||||
if (tipuesearch_in.pages[i].text.search(pat) != -1) {
|
|
||||||
var m_c = tipuesearch_in.pages[i].text.match(pat).length;
|
|
||||||
score += (20 * m_c);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (set.highlightTerms) {
|
|
||||||
if (set.highlightEveryTerm) {
|
|
||||||
var patr = new RegExp('(' + d_w[f] + ')', 'gi');
|
|
||||||
} else {
|
|
||||||
var patr = new RegExp('(' + d_w[f] + ')', 'i');
|
|
||||||
}
|
|
||||||
s_t = s_t.replace(patr, "<span class=\"h01\">$1</span>");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tipuesearch_in.pages[i].tags.search(pat) != -1) {
|
|
||||||
var m_c = tipuesearch_in.pages[i].tags.match(pat).length;
|
|
||||||
score += (10 * m_c);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tipuesearch_in.pages[i].url.search(pat) != -1) {
|
|
||||||
score += 20;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (score != 0) {
|
|
||||||
for (var e = 0; e < tipuesearch_weight.weight.length; e++) {
|
|
||||||
if (tipuesearch_in.pages[i].url == tipuesearch_weight.weight[e].url) {
|
|
||||||
score += tipuesearch_weight.weight[e].score;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (d_w[f].match('^-')) {
|
if (d_w[f].match('^-')) {
|
||||||
pat = new RegExp(d_w[f].substring(1), 'i');
|
var pat = new RegExp(d_w[f].substring(1), 'i');
|
||||||
if (tipuesearch_in.pages[i].title.search(pat) != -1 || tipuesearch_in.pages[i].text.search(pat) != -1 || tipuesearch_in.pages[i].tags.search(pat) != -1) {
|
if (tipuesearch_in.pages[i].title.search(pat) != -1 || tipuesearch_in.pages[i].text.search(pat) != -1 || tipuesearch_in.pages[i].tags.search(pat) != -1) {
|
||||||
score = 0;
|
score = 0;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
score += getScore(d_w[f], tipuesearch_in.pages[i]);
|
||||||
|
text = highlightText(d_w[f], text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (score != 0) {
|
if (score != 0) {
|
||||||
found.push(
|
found.push(makeResult(score, tipuesearch_in.pages[i], text));
|
||||||
{
|
|
||||||
"score": score,
|
|
||||||
"title": tipuesearch_in.pages[i].title,
|
|
||||||
"desc": s_t,
|
|
||||||
"url": tipuesearch_in.pages[i].url
|
|
||||||
});
|
|
||||||
c++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (var i = 0; i < tipuesearch_in.pages.length; i++) {
|
for (var i = 0; i < tipuesearch_in.pages.length; i++) {
|
||||||
var score = 0;
|
var score = getScore(searchFor, tipuesearch_in.pages[i]);
|
||||||
var s_t = tipuesearch_in.pages[i].text;
|
|
||||||
var pat = new RegExp(d, 'gi');
|
|
||||||
if (tipuesearch_in.pages[i].title.search(pat) != -1) {
|
|
||||||
var m_c = tipuesearch_in.pages[i].title.match(pat).length;
|
|
||||||
score += (20 * m_c);
|
|
||||||
}
|
|
||||||
if (tipuesearch_in.pages[i].text.search(pat) != -1) {
|
|
||||||
var m_c = tipuesearch_in.pages[i].text.match(pat).length;
|
|
||||||
score += (20 * m_c);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (set.highlightTerms) {
|
|
||||||
if (set.highlightEveryTerm) {
|
|
||||||
var patr = new RegExp('(' + d + ')', 'gi');
|
|
||||||
} else {
|
|
||||||
var patr = new RegExp('(' + d + ')', 'i');
|
|
||||||
}
|
|
||||||
s_t = s_t.replace(patr, "<span class=\"h01\">$1</span>");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tipuesearch_in.pages[i].tags.search(pat) != -1) {
|
|
||||||
var m_c = tipuesearch_in.pages[i].tags.match(pat).length;
|
|
||||||
score += (10 * m_c);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tipuesearch_in.pages[i].url.search(pat) != -1) {
|
|
||||||
score += 20;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (score != 0) {
|
if (score != 0) {
|
||||||
for (var e = 0; e < tipuesearch_weight.weight.length; e++) {
|
found.push(makeResult(score, tipuesearch_in.pages[i], highlightText(searchFor, tipuesearch_in.pages[i].text)));
|
||||||
if (tipuesearch_in.pages[i].url == tipuesearch_weight.weight[e].url) {
|
|
||||||
score += tipuesearch_weight.weight[e].score;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (score != 0) {
|
found.sort(function (a, b) {
|
||||||
found.push(
|
|
||||||
{
|
|
||||||
"score": score,
|
|
||||||
"title": tipuesearch_in.pages[i].title,
|
|
||||||
"desc": s_t,
|
|
||||||
"url": tipuesearch_in.pages[i].url
|
|
||||||
});
|
|
||||||
c++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (c != 0) {
|
|
||||||
if (set.showTitleCount) {
|
|
||||||
document.title = '(' + c + ') ' + originalTitle;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (show_replace == 1) {
|
|
||||||
out += '<div id="tipue_search_warning">' + tipuesearch_string_results_for + ' ' + d + '. ' + tipuesearch_string_search_instead + ' <a id="tipue_search_replaced">' + d_r + '</a></div>';
|
|
||||||
}
|
|
||||||
if (c == 1) {
|
|
||||||
out += '<div id="tipue_search_results_count">' + tipuesearch_string_one_result + '</div>';
|
|
||||||
} else {
|
|
||||||
c_c = c.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
||||||
out += '<div id="tipue_search_results_count">' + c_c + ' ' + tipuesearch_string_results + '</div>';
|
|
||||||
}
|
|
||||||
|
|
||||||
found.sort(
|
|
||||||
function (a, b) {
|
|
||||||
return b.score - a.score
|
return b.score - a.score
|
||||||
});
|
});
|
||||||
|
|
||||||
var l_o = 0;
|
return found
|
||||||
for (var i = 0; i < found.length; i++) {
|
|
||||||
if (l_o >= start && l_o < set.show + start) {
|
|
||||||
out += '<div class="tipue_search_content_title"><a href="' + set.base_url + found[i].url + '"' + '>' + found[i].title + '</a></div>';
|
|
||||||
|
|
||||||
if (set.debug) {
|
|
||||||
out += '<div class="tipue_search_content_debug">Score: ' + found[i].score + '</div>';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (set.showURL) {
|
function getTipueSearch(start, replace) {
|
||||||
|
|
||||||
|
if (!tipue_container) {
|
||||||
|
tipue_container = $(document.createElement("div"));
|
||||||
|
tipue_container.addClass('SearchResults');
|
||||||
|
document.body.appendChild(tipue_container.get(0));
|
||||||
|
|
||||||
|
tipue_backdrop = $(document.createElement("div"));
|
||||||
|
tipue_backdrop.addClass("SearchResultsBackdrop");
|
||||||
|
document.body.appendChild(tipue_backdrop.get(0));
|
||||||
|
|
||||||
|
tipue_container.on('click', '.SearchResults__close', closeSearch);
|
||||||
|
tipue_container.on('click', '.SearchResults__footer__link', function () {
|
||||||
|
var id_v = $(this).attr('id');
|
||||||
|
var id_a = id_v.split('_');
|
||||||
|
|
||||||
|
getTipueSearch(parseInt(id_a[0]), id_a[1]);
|
||||||
|
|
||||||
|
tipue_container.scrollTop(0);
|
||||||
|
});
|
||||||
|
|
||||||
|
tipue_container.on('keyup paste', '.Search__field', function(event) {
|
||||||
|
settings.field.val($(this).val());
|
||||||
|
|
||||||
|
if (event.keyCode == '13') {
|
||||||
|
getTipueSearch(0, true);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).keyup(keyUpHandler);
|
||||||
|
|
||||||
|
var output = '<input class="Search__field" placeholder="Search..." autocomplete="on" autosave="text_search" type="search" value="'+ settings.field.val() +'"><button class=SearchResults__close>×</button>';
|
||||||
|
|
||||||
|
var search = getSearchString($.trim(settings.field.val().toLowerCase()));
|
||||||
|
var searchFor = search.searchFor;
|
||||||
|
|
||||||
|
if (searchFor.length >= settings.minimumLength) {
|
||||||
|
var found = getResults(search.searchFor, search.isStandard);
|
||||||
|
var counter = found.length;
|
||||||
|
|
||||||
|
|
||||||
|
if (counter == 0) {
|
||||||
|
output += '<div class=SearchResults__warning>' + tipuesearch_string_no_results + '</div>';
|
||||||
|
} else {
|
||||||
|
if (settings.showTitleCount) {
|
||||||
|
document.title = '(' + counter + ') ' + originalTitle;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (counter == 1) {
|
||||||
|
output += '<div class="SearchResults__count">' + tipuesearch_string_one_result + '</div>';
|
||||||
|
} else {
|
||||||
|
output += '<div class="SearchResults__count">' + counter + ' ' + tipuesearch_string_results + '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
var l_o = 0;
|
||||||
|
for (var i = 0; i < found.length; i++) {
|
||||||
|
if (l_o >= start && l_o < settings.show + start) {
|
||||||
|
output += '<div class="SearchResults__title"><a href="' + settings.base_url + found[i].url + '"' + '>' + found[i].title + '</a></div>';
|
||||||
|
|
||||||
|
if (settings.debug) {
|
||||||
|
output += '<div class="SearchResults__debug">Score: ' + found[i].score + '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (settings.showURL) {
|
||||||
var s_u = found[i].url.toLowerCase();
|
var s_u = found[i].url.toLowerCase();
|
||||||
if (s_u.indexOf('http://') == 0) {
|
if (s_u.indexOf('http://') == 0) {
|
||||||
s_u = s_u.slice(7);
|
s_u = s_u.slice(7);
|
||||||
}
|
}
|
||||||
out += '<div class="tipue_search_content_url"><a href="' + set.base_url + found[i].url + '"' + '>' + s_u + '</a></div>';
|
output += '<div class="SearchResults__url"><a href="' + settings.base_url + found[i].url + '"' + '>' + s_u + '</a></div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (found[i].desc) {
|
if (found[i].desc) {
|
||||||
var t = found[i].desc;
|
var t = found[i].desc;
|
||||||
var t_d = '';
|
var t_d = '';
|
||||||
var t_w = t.split(' ');
|
var t_w = t.split(' ');
|
||||||
if (t_w.length < set.descriptiveWords) {
|
if (t_w.length < settings.descriptiveWords) {
|
||||||
t_d = t;
|
t_d = t;
|
||||||
} else {
|
} else {
|
||||||
for (var f = 0; f < set.descriptiveWords; f++) {
|
for (var f = 0; f < settings.descriptiveWords; f++) {
|
||||||
t_d += t_w[f] + ' ';
|
t_d += t_w[f] + ' ';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -333,19 +293,19 @@
|
|||||||
if (t_d.charAt(t_d.length - 1) != '.') {
|
if (t_d.charAt(t_d.length - 1) != '.') {
|
||||||
t_d += ' ...';
|
t_d += ' ...';
|
||||||
}
|
}
|
||||||
out += '<div class="tipue_search_content_text">' + t_d + '</div>';
|
output += '<div class="SearchResults__text">' + t_d + '</div>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
l_o++;
|
l_o++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (c > set.show) {
|
if (counter > settings.show) {
|
||||||
var pages = Math.ceil(c / set.show);
|
var pages = Math.ceil(counter / settings.show);
|
||||||
var page = (start / set.show);
|
var page = (start / settings.show);
|
||||||
out += '<div id="tipue_search_foot"><ul id="tipue_search_foot_boxes" class="Pager">';
|
output += '<div class="SearchResults__footer"><ul class="SearchResults__footer__links Pager">';
|
||||||
|
|
||||||
if (start > 0) {
|
if (start > 0) {
|
||||||
out += '<li class="Pager--prev"><a class="tipue_search_foot_box" id="' + (start - set.show) + '_' + replace + '">' + tipuesearch_string_prev + '</a></li>';
|
output += '<li class="Pager--prev"><a class="SearchResults__footer__link" id="' + (start - settings.show) + '_' + replace + '">' + tipuesearch_string_prev + '</a></li>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (page <= 2) {
|
if (page <= 2) {
|
||||||
@ -355,9 +315,9 @@
|
|||||||
}
|
}
|
||||||
for (var f = 0; f < p_b; f++) {
|
for (var f = 0; f < p_b; f++) {
|
||||||
if (f == page) {
|
if (f == page) {
|
||||||
out += '<li class="current">' + (f + 1) + '</li>';
|
output += '<li class="current">' + (f + 1) + '</li>';
|
||||||
} else {
|
} else {
|
||||||
out += '<li><a class="tipue_search_foot_box" id="' + (f * set.show) + '_' + replace + '">' + (f + 1) + '</a></li>';
|
output += '<li><a class="SearchResults__footer__link" id="' + (f * settings.show) + '_' + replace + '">' + (f + 1) + '</a></li>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -367,68 +327,37 @@
|
|||||||
}
|
}
|
||||||
for (var f = page - 1; f < p_b; f++) {
|
for (var f = page - 1; f < p_b; f++) {
|
||||||
if (f == page) {
|
if (f == page) {
|
||||||
out += '<li class="current">' + (f + 1) + '</li>';
|
output += '<li class="current">' + (f + 1) + '</li>';
|
||||||
} else {
|
} else {
|
||||||
out += '<li><a class="tipue_search_foot_box" id="' + (f * set.show) + '_' + replace + '">' + (f + 1) + '</a></li>';
|
output += '<li><a class="SearchResults__footer__link" id="' + (f * settings.show) + '_' + replace + '">' + (f + 1) + '</a></li>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (page + 1 != pages) {
|
if (page + 1 != pages) {
|
||||||
out += '<li class="Pager--next"><a class="tipue_search_foot_box " id="' + (start + set.show) + '_' + replace + '">' + tipuesearch_string_next + '</a></li>';
|
output += '<li class="Pager--next"><a class="SearchResults__footer__link" id="' + (start + settings.show) + '_' + replace + '">' + tipuesearch_string_next + '</a></li>';
|
||||||
}
|
}
|
||||||
|
|
||||||
out += '</ul></div>';
|
output += '</ul></div>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
out += '<div id="tipue_search_warning">' + tipuesearch_string_no_results + '</div>';
|
if (search.hasStopWords) {
|
||||||
}
|
output += '<div class=SearchResults__warning>' + tipuesearch_string_no_results + '. ' + tipuesearch_string_common_words_ignored + '</div>';
|
||||||
} else {
|
} else {
|
||||||
if (show_stop) {
|
output += '<div class=SearchResults__warning>' + tipuesearch_string_too_short + '</div>';
|
||||||
out += '<div id="tipue_search_warning">' + tipuesearch_string_no_results + '. ' + tipuesearch_string_common_words_ignored + '</div>';
|
if (settings.minimumLength == 1) {
|
||||||
|
output += '<div class=SearchResults__warning>' + tipuesearch_string_one_character_or_more + '</div>';
|
||||||
} else {
|
} else {
|
||||||
out += '<div id="tipue_search_warning">' + tipuesearch_string_too_short + '</div>';
|
output += '<div class=SearchResults__warning>' + tipuesearch_string_should_be_x_or_more.replace("!min", settings.minimumLength) + '</div>';
|
||||||
if (set.minimumLength == 1) {
|
|
||||||
out += '<div id="tipue_search_warning">' + tipuesearch_string_one_character_or_more + '</div>';
|
|
||||||
} else {
|
|
||||||
out += '<div id="tipue_search_warning">' + tipuesearch_string_should_be_x_or_more.replace("!min", set.minimumLength) + '</div>';
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!tipue_container) {
|
|
||||||
tipue_container = $(document.createElement("div"));
|
|
||||||
tipue_container.attr('id', "tipue_search_content");
|
|
||||||
document.body.appendChild(tipue_container.get(0));
|
|
||||||
|
|
||||||
tipue_backdrop = $(document.createElement("div"));
|
|
||||||
tipue_backdrop.attr('id', "tipue_search_backdrop");
|
|
||||||
document.body.appendChild(tipue_backdrop.get(0));
|
|
||||||
}
|
|
||||||
|
|
||||||
$("body").addClass("with-search").scrollTop(0);
|
$("body").addClass("with-search").scrollTop(0);
|
||||||
tipue_backdrop.show();
|
tipue_backdrop.show();
|
||||||
tipue_container.scrollTop(0);
|
tipue_container.scrollTop(0);
|
||||||
tipue_container.show().html(out);
|
tipue_container.show().html(output);
|
||||||
|
|
||||||
tipue_container.find('.tipue_close').on('click', closeSearch);
|
|
||||||
|
|
||||||
$('#tipue_search_replaced').click(
|
|
||||||
function () {
|
|
||||||
getTipueSearch(0, false);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('.tipue_search_foot_box').click(
|
|
||||||
function () {
|
|
||||||
var id_v = $(this).attr('id');
|
|
||||||
var id_a = id_v.split('_');
|
|
||||||
|
|
||||||
getTipueSearch(parseInt(id_a[0]), id_a[1]);
|
|
||||||
|
|
||||||
tipue_container.scrollTop(0);
|
|
||||||
});
|
|
||||||
|
|
||||||
$(document).keyup(keyUpHandler);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user