summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Tay <sam.chong.tay@gmail.com>2020-06-25 19:48:16 -0700
committerSam Tay <sam.chong.tay@gmail.com>2020-06-26 10:19:06 -0700
commit408660cb5d9a900921200d9cc43943e912f815e6 (patch)
tree4346ceec5f98b9b384033c2dbf6dceffc322775b
parentcea8ac496f97a36790bdbe3bbb3a87bf9c91a7f4 (diff)
Fix various small bugs
-rw-r--r--TODO.md7
-rw-r--r--example.txt13
-rw-r--r--roadmap.md4
-rw-r--r--src/error.rs2
-rw-r--r--src/main.rs12
-rw-r--r--src/stackexchange/scraper.rs29
-rw-r--r--src/stackexchange/search.rs7
-rw-r--r--test/duckduckgo/tagged.html1745
8 files changed, 1792 insertions, 27 deletions
diff --git a/TODO.md b/TODO.md
index bcead9b..3bfeec4 100644
--- a/TODO.md
+++ b/TODO.md
@@ -8,6 +8,9 @@
4. Refactor layout handling (see TODO on `tui::views::LayoutView::relayout`)
### bugs
+0. Another parser bug: some links return /questions/tagged/; need to make sure
+ we only select digits. Hello regex. (use test/duckduckgo/tagged.html to write
+ a new test).
1.
```
so --search-engine google --site stackoverflow --site askubuntu how to stop typing sudo
@@ -18,6 +21,9 @@ thread '<unnamed>' panicked at 'assertion failed: value_pos >= source_pos', /hom
```
So maybe the md parser should just build its own source for
SpannedString, and own everything...
+2. Searching site:meta.stackexchange.com also returns results from
+ math.meta.stackexchange.com; this will lead to requesting question IDs that
+ don't exist. Need to improve parser to account for this.
### feature ideas
- Add sort option, e.g. relevance|votes|date
@@ -25,6 +31,7 @@ SpannedString, and own everything...
- Maybe allow slimmer builds without TUI that only offer --lucky.
#### Endless improvements for the TUI
+1. Add Shift+TAB to cycle focus backwards (just add CirculularFocus wrapper)
3. Small text at bottom with '?' to bring up key mapping dialog
1. Init with smaller layout depending on initial screen size.
2. Maybe cli `--auto-resize` option that changes layouts at breakpoints.
diff --git a/example.txt b/example.txt
new file mode 100644
index 0000000..45969f0
--- /dev/null
+++ b/example.txt
@@ -0,0 +1,13 @@
+1. so how do I exit vim
+
+2. so --site askubuntu --site unix how to use sudo without typing password
+
+ -> single col
+ -> scroll to 226
+ -> TAB
+ -> TAB
+ -> Scroll to bottom with j
+ -> Scroll up with gg
+ -> ctrl c
+
+3. so --search-engine stackexchange how to reverse a list in Python
diff --git a/roadmap.md b/roadmap.md
index 3a9c73a..ce8375c 100644
--- a/roadmap.md
+++ b/roadmap.md
@@ -27,11 +27,11 @@
[x] Add google scraper
### at some point
-[ ] look up how to add logging `debug!` macros; will help troubleshooting blocked requests
[x] use trust to distrubute app binaries
+[ ] look up how to add logging `debug!` macros; will help troubleshooting blocked requests
+[ ] handle backoff responses from SE
[ ] allow new queries from TUI, e.g. hit `/` for a prompt
[ ] or `/` searches current q/a
[ ] clean up dingleberries in error.rs and term.rs ; only keep what's actually ergonomic
-[ ] add duckduckgo logo to readme
[ ] per platform package mgmt
[ ] more testing
diff --git a/src/error.rs b/src/error.rs
index 53ba23c..ec76943 100644
--- a/src/error.rs
+++ b/src/error.rs
@@ -28,7 +28,7 @@ pub enum Error {
ScrapingError(String),
#[error("Couldn't find a suitable project directory; is your OS supported?")]
ProjectDir,
- #[error("Sorry, couldn't find any answers for your query")]
+ #[error("Sorry, couldn't find any answers to your question")]
NoResults,
}
diff --git a/src/main.rs b/src/main.rs
index a2d3b08..7ce78a1 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -6,23 +6,23 @@ mod term;
mod tui;
mod utils;
-use crate::stackexchange::Question;
-use crate::tui::markdown::Markdown;
use crossterm::style::Color;
-use error::{Error, Result};
use lazy_static::lazy_static;
use minimad::mad_inline;
-use stackexchange::{LocalStorage, Search};
-use term::mk_print_error;
use termimad::{CompoundStyle, MadSkin};
use tokio::runtime::Runtime;
use tokio::task;
+use error::{Error, Result};
+use stackexchange::{LocalStorage, Question, Search};
+use term::mk_print_error;
+use tui::markdown::Markdown;
+
fn main() -> Result<()> {
// Markdown styles (outside of TUI)
let mut skin = MadSkin::default();
skin.inline_code = CompoundStyle::with_fg(Color::Cyan);
- skin.code_block.set_fg(Color::Cyan);
+ skin.code_block.compound_style = CompoundStyle::with_fg(Color::Cyan);
let mut print_error = mk_print_error(&skin);
// Tokio runtime
diff --git a/src/stackexchange/scraper.rs b/src/stackexchange/scraper.rs
index 7c9047f..cdeef3c 100644
--- a/src/stackexchange/scraper.rs
+++ b/src/stackexchange/scraper.rs
@@ -147,25 +147,18 @@ fn parse_with_selector(
.attr("href")
.ok_or_else(|| Error::ScrapingError("Anchor with no href".to_string()))
.map(|href| percent_decode_str(href).decode_utf8_lossy().into_owned())?;
- sites
- .iter()
- .find_map(|(site_code, site_url)| {
- let id = question_url_to_id(site_url, &url)?;
- ordering.insert(id.to_owned(), count);
- match question_ids.entry(site_code.to_owned()) {
- Entry::Occupied(mut o) => o.get_mut().push(id),
- Entry::Vacant(o) => {
- o.insert(vec![id]);
- }
+ sites.iter().find_map(|(site_code, site_url)| {
+ let id = question_url_to_id(site_url, &url)?;
+ ordering.insert(id.to_owned(), count);
+ match question_ids.entry(site_code.to_owned()) {
+ Entry::Occupied(mut o) => o.get_mut().push(id),
+ Entry::Vacant(o) => {
+ o.insert(vec![id]);
}
- count += 1;
- Some(())
- })
- .ok_or_else(|| {
- Error::ScrapingError(
- "Search engine returned results outside of SE network".to_string(),
- )
- })?;
+ }
+ count += 1;
+ Some(())
+ });
if count >= limit as usize {
break;
}
diff --git a/src/stackexchange/search.rs b/src/stackexchange/search.rs
index 6cd4854..1357c80 100644
--- a/src/stackexchange/search.rs
+++ b/src/stackexchange/search.rs
@@ -86,6 +86,13 @@ impl Search {
SearchEngine::Google => self.search_by_scraper(Google).await,
SearchEngine::StackExchange => self.parallel_search_advanced().await,
}
+ .and_then(|qs| {
+ if qs.is_empty() {
+ Err(Error::NoResults)
+ } else {
+ Ok(qs)
+ }
+ })
}
/// Search query at duckduckgo and then fetch the resulting questions from SE.
diff --git a/test/duckduckgo/tagged.html b/test/duckduckgo/tagged.html
new file mode 100644
index 0000000..e0f924e
--- /dev/null
+++ b/test/duckduckgo/tagged.html
@@ -0,0 +1,1745 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<!--[if IE 6]><html class="ie6" xmlns="http://www.w3.org/1999/xhtml"><![endif]-->
+<!--[if IE 7]><html class="lt-ie8 lt-ie9" xmlns="http://www.w3.org/1999/xhtml"><![endif]-->
+<!--[if IE 8]><html class="lt-ie9" xmlns="http://www.w3.org/1999/xhtml"><![endif]-->
+<!--[if gt IE 8]><!--><html xmlns="http://www.w3.org/1999/xhtml"><!--<![endif]-->
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=3.0, user-scalable=1" />
+ <meta name="referrer" content="origin" />
+ <meta name="HandheldFriendly" content="true" />
+ <meta name="robots" content="noindex, nofollow" />
+ <title>(site:meta.stackexchange.com) can you write tables in stackexchange at DuckDuckGo</title>
+ <link title="DuckDuckGo (HTML)" type="application/opensearchdescription+xml" rel="search" href="/opensearch_html.xml" />
+ <link href="/favicon.ico" rel="shortcut icon" />
+ <link rel="apple-touch-icon" href="/assets/logo_icon128.v101.png"/>
+ <link rel="image_src" href="/assets/logo_homepage.normal.v101.png"/>
+ <link type="text/css" media="handheld, all" href="/h1905.css" rel="stylesheet" />
+</head>
+
+<body class="body--html">
+ <a name="top" id="top"></a>
+
+ <form action="/html/" method="post">
+ <input type="text" name="state_hidden" id="state_hidden" />
+ </form>
+
+ <div>
+ <div class="site-wrapper-border"></div>
+
+ <div id="header" class="header cw header--html">
+ <a title="DuckDuckGo" href="/html/" class="header__logo-wrap"></a>
+
+
+ <form name="x" class="header__form" action="/html/" method="post">
+
+ <div class="search search--header">
+ <input name="q" autocomplete="off" class="search__input" id="search_form_input_homepage" type="text" value="(site:meta.stackexchange.com) can you write tables in stackexchange" />
+ <input name="b" id="search_button_homepage" class="search__button search__button--html" value="" title="Search" alt="Search" type="submit" />
+ </div>
+
+
+
+
+
+
+ <input name="kh" value="-1" type="hidden">
+
+
+
+ <div class="frm__select">
+ <select name="kl">
+
+ <option value="" >All Regions</option>
+
+ <option value="ar-es" >Argentina</option>
+
+ <option value="au-en" >Australia</option>
+
+ <option value="at-de" >Austria</option>
+
+ <option value="be-fr" >Belgium (fr)</option>
+
+ <option value="be-nl" >Belgium (nl)</option>
+
+ <option value="br-pt" >Brazil</option>
+
+ <option value="bg-bg" >Bulgaria</option>
+
+ <option value="ca-en" >Canada</option>
+
+ <option value="ca-fr" >Canada (fr)</option>
+
+ <option value="ct-ca" >Catalonia</option>
+
+ <option value="cl-es" >Chile</option>
+
+ <option value="cn-zh" >China</option>
+
+ <option value="co-es" >Colombia</option>
+
+ <option value="hr-hr" >Croatia</option>
+
+ <option value="cz-cs" >Czech Republic</option>
+
+ <option value="dk-da" >Denmark</option>
+
+ <option value="ee-et" >Estonia</option>
+
+ <option value="fi-fi" >Finland</option>
+
+ <option value="fr-fr" >France</option>
+
+ <option value="de-de" >Germany</option>
+
+ <option value="gr-el" >Greece</option>
+
+ <option value="hk-tzh" >Hong Kong</option>
+
+ <option value="hu-hu" >Hungary</option>
+
+ <option value="in-en" >India</option>
+
+ <option value="id-id" >Indonesia</option>
+
+ <option value="id-en" >Indonesia (en)</option>
+
+ <option value="ie-en" >Ireland</option>
+
+ <option value="il-he" >Israel</option>
+
+ <option value="it-it" >Italy</option>
+
+ <option value="jp-jp" >Japan</option>
+
+ <option value="kr-kr" >Korea</option>
+
+ <option value="lv-lv" >Latvia</option>
+
+ <option value="lt-lt" >Lithuania</option>
+
+ <option value="my-ms" >Malaysia</option>
+
+ <option value="my-en" >Malaysia (en)</option>
+
+ <option value="mx-es" >Mexico</option>
+
+ <option value="nl-nl" >Netherlands</option>
+
+ <option value="nz-en" >New Zealand</option>
+
+ <option value="no-no" >Norway</option>
+
+ <option value="pe-es" >Peru</option>
+
+ <option value="ph-en" >Philippines</option>
+
+ <option value="pl-pl" >Poland</option>
+
+ <option value="pt-pt" >Portugal</option>
+
+ <option value="ro-ro" >Romania</option>
+
+ <option value="ru-ru" >Russia</option>
+
+ <option value="xa-ar" >Saudi Arabia</option>
+
+ <option value="sg-en" >Singapore</option>
+
+ <option value="sk-sk" >Slovakia</option>
+
+ <option value="sl-sl" >Slovenia</option>
+
+ <option value="za-en" >South Africa</option>
+
+ <option value="es-es" >Spain</option>
+
+ <option value="es-ca" >Spain (ca)</option>
+
+ <option value="se-sv" >Sweden</option>
+
+ <option value="ch-de" >Switzerland (de)</option>
+
+ <option value="ch-fr" >Switzerland (fr)</option>
+
+ <option value="ch-it" >Switzerland (it)</option>
+
+ <option value="tw-tzh" >Taiwan</option>
+
+ <option value="th-th" >Thailand</option>
+
+ <option value="tr-tr" >Turkey</option>
+
+ <option value="us-en" >US (English)</option>
+
+ <option value="us-es" >US (Spanish)</option>
+
+ <option value="uk-en" >United Kingdom</option>
+
+ <option value="vn-vi" >Vietnam</option>
+
+ </select>
+ </div>
+
+ <div class="frm__select frm__select--last">
+ <select class="" name="df">
+
+ <option value="" selected>Any Time</option>
+
+ <option value="d" >Past Day</option>
+
+ <option value="w" >Past Week</option>
+
+ <option value="m" >Past Month</option>
+
+ <option value="y" >Past Year</option>
+
+ </select>
+ </div>
+
+ </form>
+
+ </div>
+
+
+
+
+
+<!-- Web results are present -->
+
+ <div>
+ <div class="serp__results">
+ <div id="links" class="results">
+
+
+
+
+
+
+
+
+ <div class="result results_links results_links_deep web-result ">
+
+
+ <div class="links_main links_deep result__body"> <!-- This is the visible part -->
+
+ <h2 class="result__title">
+
+ <a rel="nofollow" class="result__a" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmeta.stackexchange.com%2Fquestions%2F96125%2Fhow%2Dto%2Dformat%2Dsql%2Dtables%2Din%2Da%2Dstack%2Doverflow%2Dpost">How to format SQL <b>tables</b> <b>in</b> a Stack Overflow post? [duplicate]</a>
+
+ </h2>
+
+
+
+ <div class="result__extras">
+ <div class="result__extras__url">
+ <span class="result__icon">
+
+ <a rel="nofollow" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmeta.stackexchange.com%2Fquestions%2F96125%2Fhow%2Dto%2Dformat%2Dsql%2Dtables%2Din%2Da%2Dstack%2Doverflow%2Dpost">
+ <img class="result__icon__img" width="16" height="16" alt=""
+ src="//icons.duckduckgo.com/ip2/meta.stackexchange.com.ico" name="i15" />
+ </a>
+
+ </span>
+
+ <a class="result__url" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmeta.stackexchange.com%2Fquestions%2F96125%2Fhow%2Dto%2Dformat%2Dsql%2Dtables%2Din%2Da%2Dstack%2Doverflow%2Dpost">
+ meta.stackexchange.com/questions/96125/how-to-format-sql-tables-in-a-stack-overflow-post
+ </a>
+
+
+
+ </div>
+ </div>
+
+
+ <a class="result__snippet" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmeta.stackexchange.com%2Fquestions%2F96125%2Fhow%2Dto%2Dformat%2Dsql%2Dtables%2Din%2Da%2Dstack%2Doverflow%2Dpost">I want to format an SQL <b>table</b> the right way in a Stack Overflow question. possible duplicate of best way to include <b>table</b> (of data) in a question or meta.<b>stackexchange</b>.com/questions/5255/… - fretje If you have a lot of data, you can format it using that app in the link above to create an HTML snippet.</a>
+
+
+ <div style="clear: both"></div>
+ </div>
+
+ </div>
+
+
+
+
+
+
+
+
+ <div class="result results_links results_links_deep web-result ">
+
+
+ <div class="links_main links_deep result__body"> <!-- This is the visible part -->
+
+ <h2 class="result__title">
+
+ <a rel="nofollow" class="result__a" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmath.meta.stackexchange.com%2Fquestions">Newest Questions - Mathematics Meta <b>Stack</b> <b>Exchange</b></a>
+
+ </h2>
+
+
+
+ <div class="result__extras">
+ <div class="result__extras__url">
+ <span class="result__icon">
+
+ <a rel="nofollow" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmath.meta.stackexchange.com%2Fquestions">
+ <img class="result__icon__img" width="16" height="16" alt=""
+ src="//icons.duckduckgo.com/ip2/math.meta.stackexchange.com.ico" name="i15" />
+ </a>
+
+ </span>
+
+ <a class="result__url" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmath.meta.stackexchange.com%2Fquestions">
+ math.meta.stackexchange.com/questions
+ </a>
+
+
+
+ </div>
+ </div>
+
+
+ <a class="result__snippet" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmath.meta.stackexchange.com%2Fquestions">Out of habit I <b>write</b> &quot;Hi!&quot; at the beginning of my questions and I noticed it got automatically removed, and then when I edited to add it back <b>in</b>, it got automatically removed again. Can you have same Legendary Creature on the battlefield twice utilizing the Mutate ability?</a>
+
+
+ <div style="clear: both"></div>
+ </div>
+
+ </div>
+
+
+
+
+
+
+
+
+ <div class="result results_links results_links_deep web-result ">
+
+
+ <div class="links_main links_deep result__body"> <!-- This is the visible part -->
+
+ <h2 class="result__title">
+
+ <a rel="nofollow" class="result__a" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmath.meta.stackexchange.com%2F">Mathematics Meta <b>Stack</b> <b>Exchange</b></a>
+
+ </h2>
+
+
+
+ <div class="result__extras">
+ <div class="result__extras__url">
+ <span class="result__icon">
+
+ <a rel="nofollow" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmath.meta.stackexchange.com%2F">
+ <img class="result__icon__img" width="16" height="16" alt=""
+ src="//icons.duckduckgo.com/ip2/math.meta.stackexchange.com.ico" name="i15" />
+ </a>
+
+ </span>
+
+ <a class="result__url" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmath.meta.stackexchange.com%2F">
+ math.meta.stackexchange.com
+ </a>
+
+
+
+ </div>
+ </div>
+
+
+ <a class="result__snippet" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmath.meta.stackexchange.com%2F">Did Putin really <b>write</b> his recent article for The National Interest, written in English, on his own? In the Battle of the Coral Sea, how could two Japanese scouts grossly mis-identify two American ships? Important (but not too well known) inequalities.</a>
+
+
+ <div style="clear: both"></div>
+ </div>
+
+ </div>
+
+
+
+
+
+
+
+
+ <div class="result results_links results_links_deep web-result ">
+
+
+ <div class="links_main links_deep result__body"> <!-- This is the visible part -->
+
+ <h2 class="result__title">
+
+ <a rel="nofollow" class="result__a" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmath.meta.stackexchange.com%2Fquestions%2F6734%2Fhow%2Dcan%2Di%2Dput%2Da%2Dtable%2Dhere">How can I put a <b>table</b> here? - Mathematics Meta <b>Stack</b> <b>Exchange</b></a>
+
+ </h2>
+
+
+
+ <div class="result__extras">
+ <div class="result__extras__url">
+ <span class="result__icon">
+
+ <a rel="nofollow" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmath.meta.stackexchange.com%2Fquestions%2F6734%2Fhow%2Dcan%2Di%2Dput%2Da%2Dtable%2Dhere">
+ <img class="result__icon__img" width="16" height="16" alt=""
+ src="//icons.duckduckgo.com/ip2/math.meta.stackexchange.com.ico" name="i15" />
+ </a>
+
+ </span>
+
+ <a class="result__url" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmath.meta.stackexchange.com%2Fquestions%2F6734%2Fhow%2Dcan%2Di%2Dput%2Da%2Dtable%2Dhere">
+ math.meta.stackexchange.com/questions/6734/how-can-i-put-a-table-here
+ </a>
+
+
+
+ </div>
+ </div>
+
+
+ <a class="result__snippet" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmath.meta.stackexchange.com%2Fquestions%2F6734%2Fhow%2Dcan%2Di%2Dput%2Da%2Dtable%2Dhere">$&#92;begingroup$ meta.math.<b>stackexchange</b>.com/questions/4240 A &quot;cheats&quot; method is to <b>write</b> it in LaTeX locally, and include the .pdf in your post as an image. How do I insert a <b>table</b> when asking a question?</a>
+
+
+ <div style="clear: both"></div>
+ </div>
+
+ </div>
+
+
+
+
+
+
+
+
+ <div class="result results_links results_links_deep web-result ">
+
+
+ <div class="links_main links_deep result__body"> <!-- This is the visible part -->
+
+ <h2 class="result__title">
+
+ <a rel="nofollow" class="result__a" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmeta.stackexchange.com%2Fquestions%2F138946%2Fcan%2Dwe%2Dadd%2Dmarkdown%2Dsupport%2Dfor%2Dtables"><b>Can</b> we add Markdown support for <b>tables</b>? - Meta <b>Stack</b> <b>Exchange</b></a>
+
+ </h2>
+
+
+
+ <div class="result__extras">
+ <div class="result__extras__url">
+ <span class="result__icon">
+
+ <a rel="nofollow" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmeta.stackexchange.com%2Fquestions%2F138946%2Fcan%2Dwe%2Dadd%2Dmarkdown%2Dsupport%2Dfor%2Dtables">
+ <img class="result__icon__img" width="16" height="16" alt=""
+ src="//icons.duckduckgo.com/ip2/meta.stackexchange.com.ico" name="i15" />
+ </a>
+
+ </span>
+
+ <a class="result__url" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmeta.stackexchange.com%2Fquestions%2F138946%2Fcan%2Dwe%2Dadd%2Dmarkdown%2Dsupport%2Dfor%2Dtables">
+ meta.stackexchange.com/questions/138946/can-we-add-markdown-support-for-tables
+ </a>
+
+
+
+ </div>
+ </div>
+
+
+ <a class="result__snippet" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmeta.stackexchange.com%2Fquestions%2F138946%2Fcan%2Dwe%2Dadd%2Dmarkdown%2Dsupport%2Dfor%2Dtables">I am asking for a specific implementation of Markdown <b>tables</b>. I found an article on making <b>tables</b> <b>in</b> Markdown using PHP Markdown or MultiMarkdown. In <b>sites</b> where snippets are enabled, you can create code that renders the <b>table</b>. Just <b>write</b> it down by hand if you know how or use an online <b>table</b>...</a>
+
+
+ <div style="clear: both"></div>
+ </div>
+
+ </div>
+
+
+
+
+
+
+
+
+ <div class="result results_links results_links_deep web-result ">
+
+
+ <div class="links_main links_deep result__body"> <!-- This is the visible part -->
+
+ <h2 class="result__title">
+
+ <a rel="nofollow" class="result__a" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmeta.stackexchange.com%2Fquestions%2F70970%2Fcan%2Dyou%2Dhost%2Dthe%2Dstackexchange%2Dsoftware%2Dyourself%2Dto%2Dcreate%2Da%2Dsite"><b>Can</b> <b>you</b> host the <b>stackexchange</b> software yourself to create a <b>site</b>?</a>
+
+ </h2>
+
+
+
+ <div class="result__extras">
+ <div class="result__extras__url">
+ <span class="result__icon">
+
+ <a rel="nofollow" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmeta.stackexchange.com%2Fquestions%2F70970%2Fcan%2Dyou%2Dhost%2Dthe%2Dstackexchange%2Dsoftware%2Dyourself%2Dto%2Dcreate%2Da%2Dsite">
+ <img class="result__icon__img" width="16" height="16" alt=""
+ src="//icons.duckduckgo.com/ip2/meta.stackexchange.com.ico" name="i15" />
+ </a>
+
+ </span>
+
+ <a class="result__url" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmeta.stackexchange.com%2Fquestions%2F70970%2Fcan%2Dyou%2Dhost%2Dthe%2Dstackexchange%2Dsoftware%2Dyourself%2Dto%2Dcreate%2Da%2Dsite">
+ meta.stackexchange.com/questions/70970/can-you-host-the-stackexchange-software-yourself-to-create-a-site
+ </a>
+
+
+
+ </div>
+ </div>
+
+
+ <a class="result__snippet" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmeta.stackexchange.com%2Fquestions%2F70970%2Fcan%2Dyou%2Dhost%2Dthe%2Dstackexchange%2Dsoftware%2Dyourself%2Dto%2Dcreate%2Da%2Dsite">I was wondering if I could create my own <b>site</b> using the software behind <b>stackexchange</b> and link back or retain some <b>stackexchange</b> branding so people know what the <b>site</b> is using? You can&#x27;t buy the code anymore. But there are some clones that are open source. Or you can <b>write</b> your own.</a>
+
+
+ <div style="clear: both"></div>
+ </div>
+
+ </div>
+
+
+
+
+
+
+
+
+ <div class="result results_links results_links_deep web-result ">
+
+
+ <div class="links_main links_deep result__body"> <!-- This is the visible part -->
+
+ <h2 class="result__title">
+
+ <a rel="nofollow" class="result__a" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmath.meta.stackexchange.com%2Fquestions%2F26494%2Fways%2Dto%2Dmake%2Da%2Dtable%2Din%2Da%2Dquestion">Ways to make a <b>table</b> <b>in</b> a question? - Mathematics Meta Stack...</a>
+
+ </h2>
+
+
+
+ <div class="result__extras">
+ <div class="result__extras__url">
+ <span class="result__icon">
+
+ <a rel="nofollow" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmath.meta.stackexchange.com%2Fquestions%2F26494%2Fways%2Dto%2Dmake%2Da%2Dtable%2Din%2Da%2Dquestion">
+ <img class="result__icon__img" width="16" height="16" alt=""
+ src="//icons.duckduckgo.com/ip2/math.meta.stackexchange.com.ico" name="i15" />
+ </a>
+
+ </span>
+
+ <a class="result__url" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmath.meta.stackexchange.com%2Fquestions%2F26494%2Fways%2Dto%2Dmake%2Da%2Dtable%2Din%2Da%2Dquestion">
+ math.meta.stackexchange.com/questions/26494/ways-to-make-a-table-in-a-question
+ </a>
+
+
+
+ </div>
+ </div>
+
+
+ <a class="result__snippet" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmath.meta.stackexchange.com%2Fquestions%2F26494%2Fways%2Dto%2Dmake%2Da%2Dtable%2Din%2Da%2Dquestion">What kind of <b>table</b> <b>can</b> be produced here? (I mean with or without borders, shading, etc.) Can you paste some tex code in answer, that would contain various <b>table</b>(s)? $&#92;begingroup$ @Arthur :Thank you first ,but I want to ask a question with some <b>table</b> <b>in</b> math.stack .</a>
+
+
+ <div style="clear: both"></div>
+ </div>
+
+ </div>
+
+
+
+
+
+
+
+
+ <div class="result results_links results_links_deep web-result ">
+
+
+ <div class="links_main links_deep result__body"> <!-- This is the visible part -->
+
+ <h2 class="result__title">
+
+ <a rel="nofollow" class="result__a" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmeta.stackexchange.com%2Fquestions%2F198024%2Fcan%2Dwe%2Dstart%2Dcleaning%2Dup%2Dtable%2Dtag%2Dand%2Dburninate%2Dit%2Dasap"><b>Can</b> we start cleaning up [<b>table</b>] tag and burninate it ASAP [closed]</a>
+
+ </h2>
+
+
+
+ <div class="result__extras">
+ <div class="result__extras__url">
+ <span class="result__icon">
+
+ <a rel="nofollow" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmeta.stackexchange.com%2Fquestions%2F198024%2Fcan%2Dwe%2Dstart%2Dcleaning%2Dup%2Dtable%2Dtag%2Dand%2Dburninate%2Dit%2Dasap">
+ <img class="result__icon__img" width="16" height="16" alt=""
+ src="//icons.duckduckgo.com/ip2/meta.stackexchange.com.ico" name="i15" />
+ </a>
+
+ </span>
+
+ <a class="result__url" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmeta.stackexchange.com%2Fquestions%2F198024%2Fcan%2Dwe%2Dstart%2Dcleaning%2Dup%2Dtable%2Dtag%2Dand%2Dburninate%2Dit%2Dasap">
+ meta.stackexchange.com/questions/198024/can-we-start-cleaning-up-table-tag-and-burninate-it-asap
+ </a>
+
+
+
+ </div>
+ </div>
+
+
+ <a class="result__snippet" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmeta.stackexchange.com%2Fquestions%2F198024%2Fcan%2Dwe%2Dstart%2Dcleaning%2Dup%2Dtable%2Dtag%2Dand%2Dburninate%2Dit%2Dasap">@Robert How can you be an expert on &quot;<b>tables</b>&quot; when the term &quot;<b>tables</b>&quot; covers so many different Still others are are about reading or writing an html <b>table</b> or database <b>table</b> <b>in</b> R. Certainly many of 301. The future of meta.stackoverflow and meta.<b>stackexchange</b>. 9. Burninate the [between] tag?</a>
+
+
+ <div style="clear: both"></div>
+ </div>
+
+ </div>
+
+
+
+
+
+
+
+
+ <div class="result results_links results_links_deep web-result ">
+
+
+ <div class="links_main links_deep result__body"> <!-- This is the visible part -->
+
+ <h2 class="result__title">
+
+ <a rel="nofollow" class="result__a" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmath.meta.stackexchange.com%2Fquestions%2F107%2Ffaq%2Dfor%2Dmath%2Dstackexchange">FAQ for math.<b>stackexchange</b> - Mathematics Meta <b>Stack</b> <b>Exchange</b></a>
+
+ </h2>
+
+
+
+ <div class="result__extras">
+ <div class="result__extras__url">
+ <span class="result__icon">
+
+ <a rel="nofollow" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmath.meta.stackexchange.com%2Fquestions%2F107%2Ffaq%2Dfor%2Dmath%2Dstackexchange">
+ <img class="result__icon__img" width="16" height="16" alt=""
+ src="//icons.duckduckgo.com/ip2/math.meta.stackexchange.com.ico" name="i15" />
+ </a>
+
+ </span>
+
+ <a class="result__url" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmath.meta.stackexchange.com%2Fquestions%2F107%2Ffaq%2Dfor%2Dmath%2Dstackexchange">
+ math.meta.stackexchange.com/questions/107/faq-for-math-stackexchange
+ </a>
+
+
+
+ </div>
+ </div>
+
+
+ <a class="result__snippet" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmath.meta.stackexchange.com%2Fquestions%2F107%2Ffaq%2Dfor%2Dmath%2Dstackexchange"><b>You</b> <b>can</b> find more information about using MathJax, for example, here, here, here and here. If you have detailed questions about TeX or LaTeX, this is not A: The things in between the dollar signs are math formulas written using the TeX markup language. On this <b>site</b>, such text should be automatically...</a>
+
+
+ <div style="clear: both"></div>
+ </div>
+
+ </div>
+
+
+
+
+
+
+
+
+ <div class="result results_links results_links_deep web-result ">
+
+
+ <div class="links_main links_deep result__body"> <!-- This is the visible part -->
+
+ <h2 class="result__title">
+
+ <a rel="nofollow" class="result__a" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmeta.stackexchange.com%2Fquestions%2F212574%2Fstackexchange%2Dcant%2Dlog%2Din"><b>Stackexchange</b>, Can&#x27;t log <b>in</b>? - Meta <b>Stack</b> <b>Exchange</b></a>
+
+ </h2>
+
+
+
+ <div class="result__extras">
+ <div class="result__extras__url">
+ <span class="result__icon">
+
+ <a rel="nofollow" href="/l/?kh=-1&amp;uddg=https%3A%2F%2Fmeta.stackexchange.com%2Fquestions%2F212574%2Fstackexchange%2Dcant%2Dlog%2Din">
+ <img class="result__icon__img