mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-09-18 21:50:56 +00:00
Merge branch 'master' into dejal
This commit is contained in:
commit
c7ef07c063
164 changed files with 2965 additions and 1387 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -52,6 +52,7 @@ docker/haproxy/haproxy.consul.cfg
|
||||||
docker/nginx/nginx.consul.conf
|
docker/nginx/nginx.consul.conf
|
||||||
docker/prometheus/prometheus.yml
|
docker/prometheus/prometheus.yml
|
||||||
docker/redis/redis_replica.conf
|
docker/redis/redis_replica.conf
|
||||||
|
docker/postgres/postgres.conf
|
||||||
|
|
||||||
# ----------------------
|
# ----------------------
|
||||||
# Android
|
# Android
|
||||||
|
|
|
||||||
1
Makefile
1
Makefile
|
|
@ -76,6 +76,7 @@ list:
|
||||||
- doctl -t `cat /srv/secrets-newsblur/keys/digital_ocean.token` compute droplet list
|
- doctl -t `cat /srv/secrets-newsblur/keys/digital_ocean.token` compute droplet list
|
||||||
sizes:
|
sizes:
|
||||||
- doctl -t `cat /srv/secrets-newsblur/keys/digital_ocean.token` compute size list
|
- doctl -t `cat /srv/secrets-newsblur/keys/digital_ocean.token` compute size list
|
||||||
|
size: sizes
|
||||||
ratelimit:
|
ratelimit:
|
||||||
- doctl -t `cat /srv/secrets-newsblur/keys/digital_ocean.token` account ratelimit
|
- doctl -t `cat /srv/secrets-newsblur/keys/digital_ocean.token` account ratelimit
|
||||||
ansible-deps:
|
ansible-deps:
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ git_secrets_repo: ssh://git@github.com/samuelclay/newsblur-secrets
|
||||||
create_user: nb
|
create_user: nb
|
||||||
local_key: "{{ lookup('file', lookup('env','HOME') + '/.ssh/id_rsa.pub') }}"
|
local_key: "{{ lookup('file', lookup('env','HOME') + '/.ssh/id_rsa.pub') }}"
|
||||||
copy_local_key: "{{ lookup('file', '/srv/secrets-newsblur/keys/docker.key.pub') }}"
|
copy_local_key: "{{ lookup('file', '/srv/secrets-newsblur/keys/docker.key.pub') }}"
|
||||||
|
postgres_password: "{{ lookup('ini', 'postgres_password section=admin file=/srv/secrets-newsblur/configs/postgres_auth.ini') }}"
|
||||||
mongodb_keyfile: "{{ lookup('file', '/srv/secrets-newsblur/keys/mongodb_keyfile.key') }}"
|
mongodb_keyfile: "{{ lookup('file', '/srv/secrets-newsblur/keys/mongodb_keyfile.key') }}"
|
||||||
mongodb_username: "{{ lookup('ini', 'mongodb_username section=admin file=/srv/secrets-newsblur/configs/mongodb_auth.ini') }}"
|
mongodb_username: "{{ lookup('ini', 'mongodb_username section=admin file=/srv/secrets-newsblur/configs/mongodb_auth.ini') }}"
|
||||||
mongodb_password: "{{ lookup('ini', 'mongodb_password section=admin file=/srv/secrets-newsblur/configs/mongodb_auth.ini') }}"
|
mongodb_password: "{{ lookup('ini', 'mongodb_password section=admin file=/srv/secrets-newsblur/configs/mongodb_auth.ini') }}"
|
||||||
|
|
|
||||||
|
|
@ -18,3 +18,4 @@
|
||||||
- {role: 'node-exporter', tags: ['node-exporter', 'metrics']}
|
- {role: 'node-exporter', tags: ['node-exporter', 'metrics']}
|
||||||
- {role: 'postgres', tags: 'postgres'}
|
- {role: 'postgres', tags: 'postgres'}
|
||||||
- {role: 'monitor', tags: 'monitor'}
|
- {role: 'monitor', tags: 'monitor'}
|
||||||
|
- {role: 'backups', tags: 'backups'}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
file:
|
file:
|
||||||
path: /srv/newsblur/backups
|
path: /srv/newsblur/backups
|
||||||
state: directory
|
state: directory
|
||||||
|
|
||||||
- name: Ensure pip installed
|
- name: Ensure pip installed
|
||||||
become: yes
|
become: yes
|
||||||
package:
|
package:
|
||||||
|
|
@ -17,10 +17,10 @@
|
||||||
- name: Set backup vars
|
- name: Set backup vars
|
||||||
set_fact:
|
set_fact:
|
||||||
redis_story_filename: backup_redis_story_2021-04-13-04-00.rdb.gz
|
redis_story_filename: backup_redis_story_2021-04-13-04-00.rdb.gz
|
||||||
postgres_filename: backup_postgresql_2021-03-15-04-00.sql.gz
|
postgres_filename: backup_postgresql_2021-12-17-20-25.sql.gz
|
||||||
mongo_filename: backup_mongo_2021-03-15-04-00.tgz
|
mongo_filename: backup_mongo_2021-03-15-04-00.tgz
|
||||||
redis_filename: backup_redis_2021-03-15-04-00.rdb.gz
|
redis_filename: backup_redis_2021-03-15-04-00.rdb.gz
|
||||||
tags: restore_postgres, restore_mongo, restore_redis, restore_redis_story
|
tags: never, restore_postgres, restore_mongo, restore_redis, restore_redis_story
|
||||||
|
|
||||||
- name: Download archives
|
- name: Download archives
|
||||||
amazon.aws.aws_s3:
|
amazon.aws.aws_s3:
|
||||||
|
|
@ -32,29 +32,29 @@
|
||||||
aws_access_key: "{{ lookup('ini', 'aws_access_key_id section=default file=/srv/secrets-newsblur/keys/aws.s3.token') }}"
|
aws_access_key: "{{ lookup('ini', 'aws_access_key_id section=default file=/srv/secrets-newsblur/keys/aws.s3.token') }}"
|
||||||
aws_secret_key: "{{ lookup('ini', 'aws_secret_access_key section=default file=/srv/secrets-newsblur/keys/aws.s3.token') }}"
|
aws_secret_key: "{{ lookup('ini', 'aws_secret_access_key section=default file=/srv/secrets-newsblur/keys/aws.s3.token') }}"
|
||||||
with_items:
|
with_items:
|
||||||
- dir: /redis_story/
|
# - dir: /redis_story/
|
||||||
file: "{{ redis_story_filename }}"
|
# file: "{{ redis_story_filename }}"
|
||||||
# - dir: /postgres/
|
- dir: /postgres/
|
||||||
# file: "{{ postgres_filename }}"
|
file: "{{ postgres_filename }}"
|
||||||
# - dir: /mongo/
|
# - dir: /mongo/
|
||||||
# file: "{{ mongo_filename }}"
|
# file: "{{ mongo_filename }}"
|
||||||
# - dir: /backup_redis/
|
# - dir: /backup_redis/
|
||||||
# file: "{{ redis_filename }}"
|
# file: "{{ redis_filename }}"
|
||||||
tags: restore_postgres, restore_mongo, restore_redis, restore_redis_story
|
tags: never, restore_postgres, restore_mongo, restore_redis, restore_redis_story
|
||||||
|
|
||||||
- name: Restore postgres
|
- name: Restore postgres
|
||||||
block:
|
block:
|
||||||
- name: move postgres archive
|
- name: move postgres archive
|
||||||
become: yes
|
become: yes
|
||||||
command: "mv -f /srv/newsblur/backups/{{ postgres_filename }} /srv/newsblur/docker/volumes/postgres"
|
command: "mv -f /srv/newsblur/backups/{{ postgres_filename }} /srv/newsblur/docker/volumes/postgres/"
|
||||||
ignore_errors: yes
|
ignore_errors: yes
|
||||||
|
|
||||||
- name: pg_restore
|
- name: pg_restore
|
||||||
become: yes
|
become: yes
|
||||||
command: |
|
command: |
|
||||||
docker exec -i db_postgres bash -c
|
docker exec -i postgres bash -c
|
||||||
"pg_restore -U newsblur --role=newsblur --dbname=newsblur /var/lib/postgresql/data/{{ postgres_filename }}"
|
"pg_restore -U newsblur --role=newsblur --dbname=newsblur /var/lib/postgresql/{{ postgres_filename }}"
|
||||||
tags: never,restore_postgres
|
tags: never, restore_postgres
|
||||||
|
|
||||||
- name: Restore mongo
|
- name: Restore mongo
|
||||||
block:
|
block:
|
||||||
|
|
@ -72,7 +72,7 @@
|
||||||
command: |
|
command: |
|
||||||
docker exec -i db_mongo bash -c
|
docker exec -i db_mongo bash -c
|
||||||
"mongorestore --port 29019 --drop /data/db/{{ mongo_filename|regex_replace('.tgz$', '') }}/"
|
"mongorestore --port 29019 --drop /data/db/{{ mongo_filename|regex_replace('.tgz$', '') }}/"
|
||||||
tags: never,restore_mongo
|
tags: never, restore_mongo
|
||||||
|
|
||||||
- name: Restore redis-story
|
- name: Restore redis-story
|
||||||
block:
|
block:
|
||||||
|
|
@ -80,4 +80,4 @@
|
||||||
become: yes
|
become: yes
|
||||||
command: "mv -f /srv/newsblur/backups/{{ redis_story_filename }} /srv/newsblur/docker/volumes/redis/dump.rdb"
|
command: "mv -f /srv/newsblur/backups/{{ redis_story_filename }} /srv/newsblur/docker/volumes/redis/dump.rdb"
|
||||||
ignore_errors: yes
|
ignore_errors: yes
|
||||||
tags: never,restore_redis_story
|
tags: never, restore_redis_story
|
||||||
|
|
|
||||||
|
|
@ -33,13 +33,13 @@
|
||||||
become: yes
|
become: yes
|
||||||
shell:
|
shell:
|
||||||
# chdir: "/mnt/{{ inventory_hostname|regex_replace('db-', '')|regex_replace('-', '') }}"
|
# chdir: "/mnt/{{ inventory_hostname|regex_replace('db-', '')|regex_replace('-', '') }}"
|
||||||
cmd: sysbench fileio --file-total-size=150G prepare
|
cmd: sysbench fileio --file-total-size=50G prepare
|
||||||
|
|
||||||
- name: Run sysbench disk i/o
|
- name: Run sysbench disk i/o
|
||||||
become: yes
|
become: yes
|
||||||
shell:
|
shell:
|
||||||
# chdir: "/mnt/{{ inventory_hostname|regex_replace('db-', '')|regex_replace('-', '') }}"
|
# chdir: "/mnt/{{ inventory_hostname|regex_replace('db-', '')|regex_replace('-', '') }}"
|
||||||
cmd: sysbench fileio --file-total-size=150G --file-test-mode=rndrw --time=300 --max-requests=0 run
|
cmd: sysbench fileio --file-total-size=50G --file-test-mode=rndrw --time=300 --max-requests=0 run
|
||||||
register: io
|
register: io
|
||||||
|
|
||||||
- name: Cleanup sysbench
|
- name: Cleanup sysbench
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
{
|
{
|
||||||
"iptables": false
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,8 +11,8 @@
|
||||||
networks:
|
networks:
|
||||||
- name: newsblurnet
|
- name: newsblurnet
|
||||||
env:
|
env:
|
||||||
MONGODB_URI: 'mongodb://{{ inventory_hostname }}.node.nyc1.consul:27017/admin?'
|
# MONGODB_URI: 'mongodb://{{ inventory_hostname }}.node.nyc1.consul:27017/admin?'
|
||||||
# MONGODB_URI: 'mongodb://{{ mongodb_username }}:{{ mongodb_password }}@{{ inventory_hostname }}.node.nyc1.consul:27017/admin?authSource=admin'
|
MONGODB_URI: 'mongodb://{{ mongodb_username }}:{{ mongodb_password }}@{{ inventory_hostname }}.node.nyc1.consul:27017/admin?authSource=admin'
|
||||||
ports:
|
ports:
|
||||||
- '9216:9216'
|
- '9216:9216'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,17 @@
|
||||||
fstype: xfs
|
fstype: xfs
|
||||||
opts: defaults,discard
|
opts: defaults,discard
|
||||||
state: mounted
|
state: mounted
|
||||||
when: false
|
|
||||||
|
- name: Set permissions on volume
|
||||||
|
become: yes
|
||||||
|
file:
|
||||||
|
path: "/mnt/{{ inventory_hostname | regex_replace('db-|-', '') }}"
|
||||||
|
state: directory
|
||||||
|
owner: 999
|
||||||
|
group: 999
|
||||||
|
recurse: yes
|
||||||
|
|
||||||
|
when: (inventory_hostname | regex_replace('[0-9]+', '')) in ['db-mongo-secondary', 'db-mongo-analytics']
|
||||||
|
|
||||||
- name: Copy MongoDB keyfile
|
- name: Copy MongoDB keyfile
|
||||||
become: yes
|
become: yes
|
||||||
|
|
@ -98,22 +108,53 @@
|
||||||
ports:
|
ports:
|
||||||
- "27017:27017"
|
- "27017:27017"
|
||||||
command: --config /etc/mongod.conf
|
command: --config /etc/mongod.conf
|
||||||
user: 1000:1001
|
user: 999:999
|
||||||
volumes:
|
volumes:
|
||||||
# - /mnt/{{ inventory_hostname | regex_replace('db-|-', '') }}:/data/db
|
- /mnt/{{ inventory_hostname | regex_replace('db-|-', '') }}:/data/db
|
||||||
- /srv/newsblur/ansible/roles/mongo/templates/mongo.analytics.conf:/etc/mongod.conf
|
- /srv/newsblur/ansible/roles/mongo/templates/mongo.analytics.conf:/etc/mongod.conf
|
||||||
- /srv/newsblur/config/mongodb_keyfile.key:/srv/newsblur/config/mongodb_keyfile.key
|
- /srv/newsblur/config/mongodb_keyfile.key:/srv/newsblur/config/mongodb_keyfile.key
|
||||||
- /var/log/mongodb/:/var/log/mongodb/
|
- /var/log/mongodb/:/var/log/mongodb/
|
||||||
- /opt/mongo/newsblur/backup/:/backup/
|
- /opt/mongo/newsblur/backup/:/backup/
|
||||||
when: (inventory_hostname | regex_replace('[0-9]+', '')) == 'db-mongo-analytics'
|
when: (inventory_hostname | regex_replace('[0-9]+', '')) == 'db-mongo-analytics'
|
||||||
|
|
||||||
|
- name: Create mongo database user
|
||||||
|
shell:
|
||||||
|
# Don't use this line below as it means there is already a username and password, so no need to set one
|
||||||
|
# sleep 2; docker exec mongo mongo -u "{{ mongodb_username }}" -p "{{ mongodb_password }}" --eval '
|
||||||
|
cmd: >-
|
||||||
|
sleep 2; docker exec mongo mongo --eval '
|
||||||
|
db.createUser(
|
||||||
|
{
|
||||||
|
user: "{{ mongodb_username }}",
|
||||||
|
pwd: "{{ mongodb_password }}",
|
||||||
|
roles: [
|
||||||
|
{ role: "root", db: "admin" },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
)' admin
|
||||||
|
when: (inventory_hostname | regex_replace('[0-9]+', '')) == 'db-mongo-analytics'
|
||||||
|
register: auth_result
|
||||||
|
changed_when:
|
||||||
|
- auth_result.rc == 0
|
||||||
|
failed_when:
|
||||||
|
- "'Successfully added user' not in auth_result.stdout"
|
||||||
|
- "'already exists' not in auth_result.stdout"
|
||||||
|
- "'there are no users authenticated' not in auth_result.stdout"
|
||||||
|
tags:
|
||||||
|
- mongoauth
|
||||||
|
|
||||||
|
# - debug:
|
||||||
|
# msg: "{{ auth_result }}"
|
||||||
|
# tags:
|
||||||
|
# - mongoauth
|
||||||
|
|
||||||
- name: Register mongo in consul
|
- name: Register mongo in consul
|
||||||
tags: consul
|
tags: consul
|
||||||
become: yes
|
become: yes
|
||||||
template:
|
template:
|
||||||
src: consul_service.json
|
src: consul_service.json
|
||||||
dest: /etc/consul.d/mongo.json
|
dest: /etc/consul.d/mongo.json
|
||||||
when: (inventory_hostname | regex_replace('[0-9]+', '')) in ['db-mongo', 'db-mongo-primary', 'db-mongo-secondary']
|
when: (inventory_hostname | regex_replace('[0-9]+', '')) in ['db-mongo-primary', 'db-mongo-secondary']
|
||||||
notify:
|
notify:
|
||||||
- reload consul
|
- reload consul
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
"port": 27017,
|
"port": 27017,
|
||||||
"checks": [{
|
"checks": [{
|
||||||
"id": "mongo-analytics-ping",
|
"id": "mongo-analytics-ping",
|
||||||
"http": "http://{{ ansible_ssh_host }}:5579/db_check/mongo_analytics?consul=1,
|
"http": "http://{{ ansible_ssh_host }}:5579/db_check/mongo_analytics?consul=1",
|
||||||
"interval": "15s"
|
"interval": "15s"
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,3 +7,8 @@
|
||||||
name: consul
|
name: consul
|
||||||
state: reloaded
|
state: reloaded
|
||||||
listen: reload consul
|
listen: reload consul
|
||||||
|
|
||||||
|
- name: reload postgres config
|
||||||
|
become: yes
|
||||||
|
command: docker exec postgres pg_ctl reload
|
||||||
|
listen: reload postgres
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,38 @@
|
||||||
---
|
---
|
||||||
- name: Start postgres container
|
|
||||||
|
- name: Template postgresql-13.conf file
|
||||||
|
template:
|
||||||
|
src: /srv/newsblur/docker/postgres/postgresql-13.conf.j2
|
||||||
|
dest: /srv/newsblur/docker/postgres/postgresql-13.conf
|
||||||
|
notify: reload postgres
|
||||||
|
register: updated_config
|
||||||
|
|
||||||
|
- name: Start postgres docker containers
|
||||||
become: yes
|
become: yes
|
||||||
docker_container:
|
docker_container:
|
||||||
name: postgres
|
name: postgres
|
||||||
image: postgres:13.1
|
image: postgres:13
|
||||||
state: started
|
state: started
|
||||||
hostname: "{{ inventory_hostname }}"
|
container_default_behavior: no_defaults
|
||||||
|
command: postgres -D /var/lib/postgresql/pgdata -c config_file=/etc/postgresql/postgresql.conf
|
||||||
env:
|
env:
|
||||||
POSTGRES_USER: newsblur
|
POSTGRES_PASSWORD: "{{ postgres_password }}"
|
||||||
POSTGRES_PASSWORD: newsblur
|
hostname: "{{ inventory_hostname }}"
|
||||||
restart_policy: unless-stopped
|
networks_cli_compatible: yes
|
||||||
|
# network_mode: host
|
||||||
|
network_mode: default
|
||||||
|
networks:
|
||||||
|
- name: newsblurnet
|
||||||
|
aliases:
|
||||||
|
- postgres
|
||||||
ports:
|
ports:
|
||||||
- '5432:5432'
|
- 5432:5432
|
||||||
volumes:
|
volumes:
|
||||||
- /srv/newsblur/docker/volumes/postgres:/var/lib/postgresql/data
|
- /srv/newsblur/docker/volumes/postgres:/var/lib/postgresql
|
||||||
- /backup/:/var/lib/postgresql/backup/
|
- /srv/newsblur/docker/postgres/postgresql-13.conf:/etc/postgresql/postgresql.conf
|
||||||
|
- /srv/newsblur/docker/postgres/postgres_hba-13.conf:/etc/postgresql/pg_hba.conf
|
||||||
|
- /backup/:/var/lib/postgresql/backup/
|
||||||
|
restart_policy: unless-stopped
|
||||||
|
|
||||||
- name: Register postgres in consul
|
- name: Register postgres in consul
|
||||||
tags: consul
|
tags: consul
|
||||||
|
|
@ -25,12 +43,6 @@
|
||||||
notify:
|
notify:
|
||||||
- reload consul
|
- reload consul
|
||||||
|
|
||||||
- name: Register backup bucket
|
|
||||||
become: no
|
|
||||||
run_once: yes
|
|
||||||
register: backup_bucket
|
|
||||||
local_action: command /srv/newsblur/ansible/roles/postgres-exporter/tasks/get_credentials.py s3_bucket
|
|
||||||
|
|
||||||
- name: Add sanity checkers cronjob for disk usage
|
- name: Add sanity checkers cronjob for disk usage
|
||||||
become: yes
|
become: yes
|
||||||
cron:
|
cron:
|
||||||
|
|
@ -56,10 +68,9 @@
|
||||||
BACKUP_FILE=backup_postgresql_${NOW}.sql;
|
BACKUP_FILE=backup_postgresql_${NOW}.sql;
|
||||||
sudo docker exec -it postgres
|
sudo docker exec -it postgres
|
||||||
/usr/lib/postgresql/13/bin/pg_dump -U newsblur -h 127.0.0.1 -Fc newsblur > backup/$BACKUP_FILE;
|
/usr/lib/postgresql/13/bin/pg_dump -U newsblur -h 127.0.0.1 -Fc newsblur > backup/$BACKUP_FILE;
|
||||||
BUCKET={{ backup_bucket.stdout }};
|
|
||||||
sudo docker run --rm -it
|
sudo docker run --rm -it
|
||||||
-v /srv/newsblur:/srv/newsblur
|
-v /srv/newsblur:/srv/newsblur
|
||||||
-v /backup/:/backup/
|
-v /backup/:/backup/
|
||||||
--network=newsblurnet
|
--network=newsblurnet
|
||||||
newsblur/newsblur_python3
|
newsblur/newsblur_python3
|
||||||
/srv/newsblur/utils/backups/backup_psql.py $BUCKET
|
python /srv/newsblur/utils/backups/backup_psql.py
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"service": {
|
"service": {
|
||||||
"name": "db-postgres",
|
"name": "db-postgres-staging",
|
||||||
"tags": [
|
"tags": [
|
||||||
"db"
|
"db"
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,8 @@
|
||||||
---
|
---
|
||||||
|
- name: Add a vm.overcommit_memory setting at the end of the sysctl.conf
|
||||||
|
become: yes
|
||||||
|
sysctl: name=vm.overcommit_memory value=1 state=present reload=yes
|
||||||
|
|
||||||
- name: Template redis_replica.conf file
|
- name: Template redis_replica.conf file
|
||||||
template:
|
template:
|
||||||
src: /srv/newsblur/docker/redis/redis_replica.conf.j2
|
src: /srv/newsblur/docker/redis/redis_replica.conf.j2
|
||||||
|
|
@ -6,6 +10,20 @@
|
||||||
notify: restart redis
|
notify: restart redis
|
||||||
register: updated_config
|
register: updated_config
|
||||||
|
|
||||||
|
- name: Turning off secondary for redis by deleting redis_replica.conf
|
||||||
|
copy:
|
||||||
|
dest: /srv/newsblur/docker/redis/redis_replica.conf
|
||||||
|
content: ""
|
||||||
|
tags:
|
||||||
|
# - never
|
||||||
|
- replicaofnoone
|
||||||
|
|
||||||
|
- name: Setting Redis REPLICAOF NO ONE
|
||||||
|
shell: docker exec redis redis-cli REPLICAOF NO ONE
|
||||||
|
tags:
|
||||||
|
# - never
|
||||||
|
- replicaofnoone
|
||||||
|
|
||||||
- name: Start redis docker containers
|
- name: Start redis docker containers
|
||||||
become: yes
|
become: yes
|
||||||
docker_container:
|
docker_container:
|
||||||
|
|
@ -30,16 +48,15 @@
|
||||||
- /srv/newsblur/docker/volumes/redis:/data
|
- /srv/newsblur/docker/volumes/redis:/data
|
||||||
- /srv/newsblur/docker/redis/redis.conf:/usr/local/etc/redis/redis_server.conf
|
- /srv/newsblur/docker/redis/redis.conf:/usr/local/etc/redis/redis_server.conf
|
||||||
- /srv/newsblur/docker/redis/redis_replica.conf:/usr/local/etc/redis/redis_replica.conf
|
- /srv/newsblur/docker/redis/redis_replica.conf:/usr/local/etc/redis/redis_replica.conf
|
||||||
- /srv/newsblur/docker/volumes/redis.var.lib:/var/lib/redis
|
|
||||||
|
|
||||||
# - name: Register redis in consul
|
- name: Register redis in consul
|
||||||
# become: yes
|
become: yes
|
||||||
# template:
|
template:
|
||||||
# src: consul_service.json
|
src: consul_service.json
|
||||||
# dest: /etc/consul.d/redis.json
|
dest: /etc/consul.d/redis.json
|
||||||
# notify:
|
notify:
|
||||||
# - reload consul
|
- reload consul
|
||||||
# tags: consul
|
tags: consul
|
||||||
|
|
||||||
- name: Add sanity checkers cronjob for disk usage
|
- name: Add sanity checkers cronjob for disk usage
|
||||||
become: yes
|
become: yes
|
||||||
|
|
@ -85,7 +102,7 @@
|
||||||
job: >
|
job: >
|
||||||
docker run --rm
|
docker run --rm
|
||||||
-v /srv/newsblur:/srv/newsblur
|
-v /srv/newsblur:/srv/newsblur
|
||||||
-v /srv/newsblur/docker/volumes/redis.var.lib/dump.rdb:/var/lib/redis/dump.rdb
|
-v /srv/newsblur/docker/volumes/redis/dump.rdb:/data/dump.rdb
|
||||||
--network=newsblurnet
|
--network=newsblurnet
|
||||||
--hostname={{ ansible_hostname }}
|
--hostname={{ ansible_hostname }}
|
||||||
newsblur/newsblur_python3 /srv/newsblur/utils/backups/backup_redis.py
|
newsblur/newsblur_python3 python /srv/newsblur/utils/backups/backup_redis.py
|
||||||
|
|
|
||||||
6
ansible/roles/ufw/handlers/main.yml
Normal file
6
ansible/roles/ufw/handlers/main.yml
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
- name: restart ufw
|
||||||
|
become: yes
|
||||||
|
service:
|
||||||
|
name: ufw
|
||||||
|
state: restarted
|
||||||
|
|
@ -46,7 +46,7 @@
|
||||||
- firewall
|
- firewall
|
||||||
- ufw
|
- ufw
|
||||||
|
|
||||||
- name: Allow all access from inventory hosts with docker
|
- name: Allow all access from inventory hosts
|
||||||
become: yes
|
become: yes
|
||||||
ufw:
|
ufw:
|
||||||
rule: allow
|
rule: allow
|
||||||
|
|
@ -57,6 +57,55 @@
|
||||||
- firewall
|
- firewall
|
||||||
- ufw
|
- ufw
|
||||||
|
|
||||||
|
- name: Allow all access from inventory hosts with docker
|
||||||
|
become: yes
|
||||||
|
ufw:
|
||||||
|
rule: allow
|
||||||
|
route: yes
|
||||||
|
src: '{{ item }}'
|
||||||
|
with_items: "{{ groups['NewsBlur_Docker'] | map('extract', hostvars, ['ansible_host']) }}"
|
||||||
|
when: "'oldandnew' not in groups"
|
||||||
|
tags:
|
||||||
|
- firewall
|
||||||
|
- ufw
|
||||||
|
|
||||||
|
# Code from https://stackoverflow.com/a/51741599/8717: "What is the best practice of docker + ufw under Ubuntu"
|
||||||
|
- name: Solving UFW and Docker issues by adding ufw after.rules
|
||||||
|
become: yes
|
||||||
|
blockinfile:
|
||||||
|
dest: /etc/ufw/after.rules
|
||||||
|
state: present
|
||||||
|
block: |
|
||||||
|
# BEGIN UFW AND DOCKER
|
||||||
|
*filter
|
||||||
|
:ufw-user-forward - [0:0]
|
||||||
|
:ufw-docker-logging-deny - [0:0]
|
||||||
|
:DOCKER-USER - [0:0]
|
||||||
|
-A DOCKER-USER -j ufw-user-forward
|
||||||
|
|
||||||
|
-A DOCKER-USER -j RETURN -s 10.0.0.0/8
|
||||||
|
-A DOCKER-USER -j RETURN -s 172.16.0.0/12
|
||||||
|
-A DOCKER-USER -j RETURN -s 192.168.0.0/16
|
||||||
|
|
||||||
|
-A DOCKER-USER -p udp -m udp --sport 53 --dport 1024:65535 -j RETURN
|
||||||
|
|
||||||
|
-A DOCKER-USER -j ufw-docker-logging-deny -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -d 192.168.0.0/16
|
||||||
|
-A DOCKER-USER -j ufw-docker-logging-deny -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -d 10.0.0.0/8
|
||||||
|
-A DOCKER-USER -j ufw-docker-logging-deny -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -d 172.16.0.0/12
|
||||||
|
-A DOCKER-USER -j ufw-docker-logging-deny -p udp -m udp --dport 0:32767 -d 192.168.0.0/16
|
||||||
|
-A DOCKER-USER -j ufw-docker-logging-deny -p udp -m udp --dport 0:32767 -d 10.0.0.0/8
|
||||||
|
-A DOCKER-USER -j ufw-docker-logging-deny -p udp -m udp --dport 0:32767 -d 172.16.0.0/12
|
||||||
|
|
||||||
|
-A DOCKER-USER -j RETURN
|
||||||
|
|
||||||
|
-A ufw-docker-logging-deny -j LOG --log-prefix "[UFW DOCKER BLOCK] "
|
||||||
|
-A ufw-docker-logging-deny -j DROP
|
||||||
|
|
||||||
|
COMMIT
|
||||||
|
# END UFW AND DOCKER
|
||||||
|
tags: docker
|
||||||
|
notify: restart ufw
|
||||||
|
|
||||||
- name: Start ufw
|
- name: Start ufw
|
||||||
become: yes
|
become: yes
|
||||||
ufw: state=enabled
|
ufw: state=enabled
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ class LoadTimes(View):
|
||||||
from apps.statistics.models import MStatistics
|
from apps.statistics.models import MStatistics
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
|
'feed_loadtimes_1min': MStatistics.get('last_1_min_time_taken'),
|
||||||
'feed_loadtimes_avg_hour': MStatistics.get('latest_avg_time_taken'),
|
'feed_loadtimes_avg_hour': MStatistics.get('latest_avg_time_taken'),
|
||||||
'feeds_loaded_hour': MStatistics.get('latest_sites_loaded'),
|
'feeds_loaded_hour': MStatistics.get('latest_sites_loaded'),
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ class MStatistics(mongo.Document):
|
||||||
elif key in ('feeds_fetched', 'premium_users', 'standard_users', 'latest_sites_loaded',
|
elif key in ('feeds_fetched', 'premium_users', 'standard_users', 'latest_sites_loaded',
|
||||||
'max_sites_loaded', 'max_stories_shared'):
|
'max_sites_loaded', 'max_stories_shared'):
|
||||||
values[key] = int(value)
|
values[key] = int(value)
|
||||||
elif key in ('latest_avg_time_taken', 'max_avg_time_taken', 'last_5_min_time_taken'):
|
elif key in ('latest_avg_time_taken', 'max_avg_time_taken', 'last_1_min_time_taken'):
|
||||||
values[key] = float(value)
|
values[key] = float(value)
|
||||||
|
|
||||||
values['total_sites_loaded'] = sum(values['sites_loaded']) if 'sites_loaded' in values else 0
|
values['total_sites_loaded'] = sum(values['sites_loaded']) if 'sites_loaded' in values else 0
|
||||||
|
|
@ -119,11 +119,11 @@ class MStatistics(mongo.Document):
|
||||||
now = round_time(datetime.datetime.now(), round_to=60)
|
now = round_time(datetime.datetime.now(), round_to=60)
|
||||||
sites_loaded = []
|
sites_loaded = []
|
||||||
avg_time_taken = []
|
avg_time_taken = []
|
||||||
last_5_min_time_taken = 0
|
last_1_min_time_taken = 0
|
||||||
r = redis.Redis(connection_pool=settings.REDIS_STATISTICS_POOL)
|
r = redis.Redis(connection_pool=settings.REDIS_STATISTICS_POOL)
|
||||||
|
|
||||||
for hour in range(24):
|
for hours_ago in range(24):
|
||||||
start_hours_ago = now - datetime.timedelta(hours=hour+1)
|
start_hours_ago = now - datetime.timedelta(hours=hours_ago+1)
|
||||||
|
|
||||||
pipe = r.pipeline()
|
pipe = r.pipeline()
|
||||||
for m in range(60):
|
for m in range(60):
|
||||||
|
|
@ -137,8 +137,8 @@ class MStatistics(mongo.Document):
|
||||||
counts = [int(c) for c in times[::2] if c]
|
counts = [int(c) for c in times[::2] if c]
|
||||||
avgs = [float(a) for a in times[1::2] if a]
|
avgs = [float(a) for a in times[1::2] if a]
|
||||||
|
|
||||||
if hour == 0:
|
if hours_ago == 0:
|
||||||
last_5_min_time_taken = round(sum(avgs[:1]) / max(1, sum(counts[:1])), 2)
|
last_1_min_time_taken = round(sum(avgs[:1]) / max(1, sum(counts[:1])), 2)
|
||||||
|
|
||||||
if counts and avgs:
|
if counts and avgs:
|
||||||
count = max(1, sum(counts))
|
count = max(1, sum(counts))
|
||||||
|
|
@ -160,7 +160,7 @@ class MStatistics(mongo.Document):
|
||||||
('latest_avg_time_taken', avg_time_taken[-1]),
|
('latest_avg_time_taken', avg_time_taken[-1]),
|
||||||
('max_sites_loaded', max(sites_loaded)),
|
('max_sites_loaded', max(sites_loaded)),
|
||||||
('max_avg_time_taken', max(1, max(avg_time_taken))),
|
('max_avg_time_taken', max(1, max(avg_time_taken))),
|
||||||
('last_5_min_time_taken', last_5_min_time_taken),
|
('last_1_min_time_taken', last_1_min_time_taken),
|
||||||
)
|
)
|
||||||
for key, value in values:
|
for key, value in values:
|
||||||
cls.objects(key=key).update_one(upsert=True, set__key=key, set__value=value)
|
cls.objects(key=key).update_one(upsert=True, set__key=key, set__value=value)
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,9 @@
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" />
|
||||||
|
|
||||||
{%- seo -%}
|
{%- seo -%}
|
||||||
<link rel="stylesheet" href="{{ "/assets/main.css" | relative_url }}">
|
<link rel="stylesheet" href="{{ "/assets/main.css" | relative_url }}">
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>A New Logo for a New Blog | The NewsBlur Blog</title>
|
<title>A New Logo for a New Blog | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="A New Logo for a New Blog" />
|
<meta property="og:title" content="A New Logo for a New Blog" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Explaining Intelligence | The NewsBlur Blog</title>
|
<title>Explaining Intelligence | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Explaining Intelligence" />
|
<meta property="og:title" content="Explaining Intelligence" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Where We Are in April | The NewsBlur Blog</title>
|
<title>Where We Are in April | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Where We Are in April" />
|
<meta property="og:title" content="Where We Are in April" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Make your own feed reader with NewsBlur’s new API | The NewsBlur Blog</title>
|
<title>Make your own feed reader with NewsBlur’s new API | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Make your own feed reader with NewsBlur’s new API" />
|
<meta property="og:title" content="Make your own feed reader with NewsBlur’s new API" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Blar: A new Android app for NewsBlur | The NewsBlur Blog</title>
|
<title>Blar: A new Android app for NewsBlur | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Blar: A new Android app for NewsBlur" />
|
<meta property="og:title" content="Blar: A new Android app for NewsBlur" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Customizing the reader, step 1: story titles | The NewsBlur Blog</title>
|
<title>Customizing the reader, step 1: story titles | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Customizing the reader, step 1: story titles" />
|
<meta property="og:title" content="Customizing the reader, step 1: story titles" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>A Social Feed Reader | The NewsBlur Blog</title>
|
<title>A Social Feed Reader | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="A Social Feed Reader" />
|
<meta property="og:title" content="A Social Feed Reader" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>2011: Year in Review | The NewsBlur Blog</title>
|
<title>2011: Year in Review | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="2011: Year in Review" />
|
<meta property="og:title" content="2011: Year in Review" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>SSL & Stripe.js | The NewsBlur Blog</title>
|
<title>SSL & Stripe.js | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="SSL & Stripe.js" />
|
<meta property="og:title" content="SSL & Stripe.js" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>From project to profession: going indie on NewsBlur | The NewsBlur Blog</title>
|
<title>From project to profession: going indie on NewsBlur | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="From project to profession: going indie on NewsBlur" />
|
<meta property="og:title" content="From project to profession: going indie on NewsBlur" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>New mobile app for NewsBlur: Web Feeds for Nokia MeeGo | The NewsBlur Blog</title>
|
<title>New mobile app for NewsBlur: Web Feeds for Nokia MeeGo | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="New mobile app for NewsBlur: Web Feeds for Nokia MeeGo" />
|
<meta property="og:title" content="New mobile app for NewsBlur: Web Feeds for Nokia MeeGo" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Knight News Challenge: NewsBlur | The NewsBlur Blog</title>
|
<title>Knight News Challenge: NewsBlur | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Knight News Challenge: NewsBlur" />
|
<meta property="og:title" content="Knight News Challenge: NewsBlur" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Building real-time feed updates for NewsBlur with Redis and WebSockets | The NewsBlur Blog</title>
|
<title>Building real-time feed updates for NewsBlur with Redis and WebSockets | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Building real-time feed updates for NewsBlur with Redis and WebSockets" />
|
<meta property="og:title" content="Building real-time feed updates for NewsBlur with Redis and WebSockets" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Introducing Blurblogs, Roy, and Y Combinator | The NewsBlur Blog</title>
|
<title>Introducing Blurblogs, Roy, and Y Combinator | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Introducing Blurblogs, Roy, and Y Combinator" />
|
<meta property="og:title" content="Introducing Blurblogs, Roy, and Y Combinator" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Take it to the couch with the NewsBlur iPad app | The NewsBlur Blog</title>
|
<title>Take it to the couch with the NewsBlur iPad app | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Take it to the couch with the NewsBlur iPad app" />
|
<meta property="og:title" content="Take it to the couch with the NewsBlur iPad app" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Giving Life to “The People Have Spoken” | The NewsBlur Blog</title>
|
<title>Giving Life to “The People Have Spoken” | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Giving Life to “The People Have Spoken”" />
|
<meta property="og:title" content="Giving Life to “The People Have Spoken”" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Do the robot: the official NewsBlur Android app is here | The NewsBlur Blog</title>
|
<title>Do the robot: the official NewsBlur Android app is here | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Do the robot: the official NewsBlur Android app is here" />
|
<meta property="og:title" content="Do the robot: the official NewsBlur Android app is here" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Extreme makeover: NewsBlur iOS app edition | The NewsBlur Blog</title>
|
<title>Extreme makeover: NewsBlur iOS app edition | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Extreme makeover: NewsBlur iOS app edition" />
|
<meta property="og:title" content="Extreme makeover: NewsBlur iOS app edition" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Time for some free NewsBlur swag! | The NewsBlur Blog</title>
|
<title>Time for some free NewsBlur swag! | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Time for some free NewsBlur swag!" />
|
<meta property="og:title" content="Time for some free NewsBlur swag!" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>The sharing bookmarklet: bringing your online explorations to NewsBlur | The NewsBlur Blog</title>
|
<title>The sharing bookmarklet: bringing your online explorations to NewsBlur | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="The sharing bookmarklet: bringing your online explorations to NewsBlur" />
|
<meta property="og:title" content="The sharing bookmarklet: bringing your online explorations to NewsBlur" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>A blurblog of one’s own: new privacy controls | The NewsBlur Blog</title>
|
<title>A blurblog of one’s own: new privacy controls | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="A blurblog of one’s own: new privacy controls" />
|
<meta property="og:title" content="A blurblog of one’s own: new privacy controls" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Three Months to Scale NewsBlur | The NewsBlur Blog</title>
|
<title>Three Months to Scale NewsBlur | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Three Months to Scale NewsBlur" />
|
<meta property="og:title" content="Three Months to Scale NewsBlur" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>The NewsBlur Redesign | The NewsBlur Blog</title>
|
<title>The NewsBlur Redesign | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="The NewsBlur Redesign" />
|
<meta property="og:title" content="The NewsBlur Redesign" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Keyboard Shortcuts Manager | The NewsBlur Blog</title>
|
<title>Keyboard Shortcuts Manager | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Keyboard Shortcuts Manager" />
|
<meta property="og:title" content="Keyboard Shortcuts Manager" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Read NewsBlur on your Mac with the new ReadKit | The NewsBlur Blog</title>
|
<title>Read NewsBlur on your Mac with the new ReadKit | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Read NewsBlur on your Mac with the new ReadKit" />
|
<meta property="og:title" content="Read NewsBlur on your Mac with the new ReadKit" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Text view comes to the NewsBlur iOS app | The NewsBlur Blog</title>
|
<title>Text view comes to the NewsBlur iOS app | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Text view comes to the NewsBlur iOS app" />
|
<meta property="og:title" content="Text view comes to the NewsBlur iOS app" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>NewsBlur Puzzle T-shirt 2013 | The NewsBlur Blog</title>
|
<title>NewsBlur Puzzle T-shirt 2013 | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="NewsBlur Puzzle T-shirt 2013" />
|
<meta property="og:title" content="NewsBlur Puzzle T-shirt 2013" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Simple Search for Feeds, Saved Stories, and Blurblogs | The NewsBlur Blog</title>
|
<title>Simple Search for Feeds, Saved Stories, and Blurblogs | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Simple Search for Feeds, Saved Stories, and Blurblogs" />
|
<meta property="og:title" content="Simple Search for Feeds, Saved Stories, and Blurblogs" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Mark as read by number of days and other improvements | The NewsBlur Blog</title>
|
<title>Mark as read by number of days and other improvements | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Mark as read by number of days and other improvements" />
|
<meta property="og:title" content="Mark as read by number of days and other improvements" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Upping unread stories to 30 days for premium accounts | The NewsBlur Blog</title>
|
<title>Upping unread stories to 30 days for premium accounts | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Upping unread stories to 30 days for premium accounts" />
|
<meta property="og:title" content="Upping unread stories to 30 days for premium accounts" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Offline reading with the NewsBlur iOS app | The NewsBlur Blog</title>
|
<title>Offline reading with the NewsBlur iOS app | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Offline reading with the NewsBlur iOS app" />
|
<meta property="og:title" content="Offline reading with the NewsBlur iOS app" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>The NewsBlur iPhone and iPad app meets iOS 7 | The NewsBlur Blog</title>
|
<title>The NewsBlur iPhone and iPad app meets iOS 7 | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="The NewsBlur iPhone and iPad app meets iOS 7" />
|
<meta property="og:title" content="The NewsBlur iPhone and iPad app meets iOS 7" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Version 3.0 of the NewsBlur Android App | The NewsBlur Blog</title>
|
<title>Version 3.0 of the NewsBlur Android App | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Version 3.0 of the NewsBlur Android App" />
|
<meta property="og:title" content="Version 3.0 of the NewsBlur Android App" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Background updates and dynamic font sizing on the NewsBlur iOS app | The NewsBlur Blog</title>
|
<title>Background updates and dynamic font sizing on the NewsBlur iOS app | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Background updates and dynamic font sizing on the NewsBlur iOS app" />
|
<meta property="og:title" content="Background updates and dynamic font sizing on the NewsBlur iOS app" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Faster parallel network requests for version 3.5 of the NewsBlur Android app | The NewsBlur Blog</title>
|
<title>Faster parallel network requests for version 3.5 of the NewsBlur Android app | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Faster parallel network requests for version 3.5 of the NewsBlur Android app" />
|
<meta property="og:title" content="Faster parallel network requests for version 3.5 of the NewsBlur Android app" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Three new features for the web: syntax highlighting for source code, adjustable video widths, and footnotes | The NewsBlur Blog</title>
|
<title>Three new features for the web: syntax highlighting for source code, adjustable video widths, and footnotes | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Three new features for the web: syntax highlighting for source code, adjustable video widths, and footnotes" />
|
<meta property="og:title" content="Three new features for the web: syntax highlighting for source code, adjustable video widths, and footnotes" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Saved story tagging | The NewsBlur Blog</title>
|
<title>Saved story tagging | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Saved story tagging" />
|
<meta property="og:title" content="Saved story tagging" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Connect NewsBlur to dozens of web services with IFTTT | The NewsBlur Blog</title>
|
<title>Connect NewsBlur to dozens of web services with IFTTT | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Connect NewsBlur to dozens of web services with IFTTT" />
|
<meta property="og:title" content="Connect NewsBlur to dozens of web services with IFTTT" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>NewsBlur iOS 4.0 features a new dashboard, gestures and sharing controls | The NewsBlur Blog</title>
|
<title>NewsBlur iOS 4.0 features a new dashboard, gestures and sharing controls | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="NewsBlur iOS 4.0 features a new dashboard, gestures and sharing controls" />
|
<meta property="og:title" content="NewsBlur iOS 4.0 features a new dashboard, gestures and sharing controls" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Google Reader announced its shutdown exactly a year ago | The NewsBlur Blog</title>
|
<title>Google Reader announced its shutdown exactly a year ago | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Google Reader announced its shutdown exactly a year ago" />
|
<meta property="og:title" content="Google Reader announced its shutdown exactly a year ago" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>The new font and style manager | The NewsBlur Blog</title>
|
<title>The new font and style manager | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="The new font and style manager" />
|
<meta property="og:title" content="The new font and style manager" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Unread is a new iOS app with NewsBlur support | The NewsBlur Blog</title>
|
<title>Unread is a new iOS app with NewsBlur support | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Unread is a new iOS app with NewsBlur support" />
|
<meta property="og:title" content="Unread is a new iOS app with NewsBlur support" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Full text search across all of your subscriptions and folders | The NewsBlur Blog</title>
|
<title>Full text search across all of your subscriptions and folders | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Full text search across all of your subscriptions and folders" />
|
<meta property="og:title" content="Full text search across all of your subscriptions and folders" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Use the new Saved Stories view to find saved stories by site | The NewsBlur Blog</title>
|
<title>Use the new Saved Stories view to find saved stories by site | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Use the new Saved Stories view to find saved stories by site" />
|
<meta property="og:title" content="Use the new Saved Stories view to find saved stories by site" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Temporarily mute sites | The NewsBlur Blog</title>
|
<title>Temporarily mute sites | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Temporarily mute sites" />
|
<meta property="og:title" content="Temporarily mute sites" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Read what you’ve read recently with the new recently read stories feed | The NewsBlur Blog</title>
|
<title>Read what you’ve read recently with the new recently read stories feed | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Read what you’ve read recently with the new recently read stories feed" />
|
<meta property="og:title" content="Read what you’ve read recently with the new recently read stories feed" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Adjust the font size of feed and story titles | The NewsBlur Blog</title>
|
<title>Adjust the font size of feed and story titles | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Adjust the font size of feed and story titles" />
|
<meta property="og:title" content="Adjust the font size of feed and story titles" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Reeder and NewsBlur, sitting in a tree… | The NewsBlur Blog</title>
|
<title>Reeder and NewsBlur, sitting in a tree… | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Reeder and NewsBlur, sitting in a tree…" />
|
<meta property="og:title" content="Reeder and NewsBlur, sitting in a tree…" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>A Downtime Irony | The NewsBlur Blog</title>
|
<title>A Downtime Irony | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="A Downtime Irony" />
|
<meta property="og:title" content="A Downtime Irony" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>NewsBlur’s 2014 t-shirt on sale for this week only | The NewsBlur Blog</title>
|
<title>NewsBlur’s 2014 t-shirt on sale for this week only | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="NewsBlur’s 2014 t-shirt on sale for this week only" />
|
<meta property="og:title" content="NewsBlur’s 2014 t-shirt on sale for this week only" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>NewsBlur iOS v4.5: iPhone 6 and iOS 8, full bleed images, alt text, and more | The NewsBlur Blog</title>
|
<title>NewsBlur iOS v4.5: iPhone 6 and iOS 8, full bleed images, alt text, and more | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="NewsBlur iOS v4.5: iPhone 6 and iOS 8, full bleed images, alt text, and more" />
|
<meta property="og:title" content="NewsBlur iOS v4.5: iPhone 6 and iOS 8, full bleed images, alt text, and more" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>A new way to use the Story view while on https (SSL) | The NewsBlur Blog</title>
|
<title>A new way to use the Story view while on https (SSL) | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="A new way to use the Story view while on https (SSL)" />
|
<meta property="og:title" content="A new way to use the Story view while on https (SSL)" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Offline reading and a dark theme on the Android app | The NewsBlur Blog</title>
|
<title>Offline reading and a dark theme on the Android app | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Offline reading and a dark theme on the Android app" />
|
<meta property="og:title" content="Offline reading and a dark theme on the Android app" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>The iOS app gets search and saved story tagging | The NewsBlur Blog</title>
|
<title>The iOS app gets search and saved story tagging | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="The iOS app gets search and saved story tagging" />
|
<meta property="og:title" content="The iOS app gets search and saved story tagging" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Organize your subscriptions with the new Organizer | The NewsBlur Blog</title>
|
<title>Organize your subscriptions with the new Organizer | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Organize your subscriptions with the new Organizer" />
|
<meta property="og:title" content="Organize your subscriptions with the new Organizer" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Bigger story previews with the new Grid view | The NewsBlur Blog</title>
|
<title>Bigger story previews with the new Grid view | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Bigger story previews with the new Grid view" />
|
<meta property="og:title" content="Bigger story previews with the new Grid view" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>A real solution to the deprecated YouTube API | The NewsBlur Blog</title>
|
<title>A real solution to the deprecated YouTube API | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="A real solution to the deprecated YouTube API" />
|
<meta property="og:title" content="A real solution to the deprecated YouTube API" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Reply to shared stories that have no comment | The NewsBlur Blog</title>
|
<title>Reply to shared stories that have no comment | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Reply to shared stories that have no comment" />
|
<meta property="og:title" content="Reply to shared stories that have no comment" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Read Stories feed and a rewritten networking stack on v4.3.0 of the NewsBlur Android App | The NewsBlur Blog</title>
|
<title>Read Stories feed and a rewritten networking stack on v4.3.0 of the NewsBlur Android App | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Read Stories feed and a rewritten networking stack on v4.3.0 of the NewsBlur Android App" />
|
<meta property="og:title" content="Read Stories feed and a rewritten networking stack on v4.3.0 of the NewsBlur Android App" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Even the folders have RSS feeds | The NewsBlur Blog</title>
|
<title>Even the folders have RSS feeds | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Even the folders have RSS feeds" />
|
<meta property="og:title" content="Even the folders have RSS feeds" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Let’s all upgrade to version 4.5.0 of the NewsBlur Android app | The NewsBlur Blog</title>
|
<title>Let’s all upgrade to version 4.5.0 of the NewsBlur Android app | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Let’s all upgrade to version 4.5.0 of the NewsBlur Android app" />
|
<meta property="og:title" content="Let’s all upgrade to version 4.5.0 of the NewsBlur Android app" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Join the NewsBlur iOS beta | The NewsBlur Blog</title>
|
<title>Join the NewsBlur iOS beta | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Join the NewsBlur iOS beta" />
|
<meta property="og:title" content="Join the NewsBlur iOS beta" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Premium fonts, comment-less shares, in-app Safari, and way, way more in version 5.0 of the NewsBlur iOS app | The NewsBlur Blog</title>
|
<title>Premium fonts, comment-less shares, in-app Safari, and way, way more in version 5.0 of the NewsBlur iOS app | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Premium fonts, comment-less shares, in-app Safari, and way, way more in version 5.0 of the NewsBlur iOS app" />
|
<meta property="og:title" content="Premium fonts, comment-less shares, in-app Safari, and way, way more in version 5.0 of the NewsBlur iOS app" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Better embeds for Twitter, Instagram, and Imgur | The NewsBlur Blog</title>
|
<title>Better embeds for Twitter, Instagram, and Imgur | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Better embeds for Twitter, Instagram, and Imgur" />
|
<meta property="og:title" content="Better embeds for Twitter, Instagram, and Imgur" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Power users need powerful statistics | The NewsBlur Blog</title>
|
<title>Power users need powerful statistics | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Power users need powerful statistics" />
|
<meta property="og:title" content="Power users need powerful statistics" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Search for pizza with your Android device | The NewsBlur Blog</title>
|
<title>Search for pizza with your Android device | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Search for pizza with your Android device" />
|
<meta property="og:title" content="Search for pizza with your Android device" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Two new third-party NewsBlur apps for iOS and Windows | The NewsBlur Blog</title>
|
<title>Two new third-party NewsBlur apps for iOS and Windows | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Two new third-party NewsBlur apps for iOS and Windows" />
|
<meta property="og:title" content="Two new third-party NewsBlur apps for iOS and Windows" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Story thumbnails for story titles | The NewsBlur Blog</title>
|
<title>Story thumbnails for story titles | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Story thumbnails for story titles" />
|
<meta property="og:title" content="Story thumbnails for story titles" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Tracking story changes with NewsBlur | The NewsBlur Blog</title>
|
<title>Tracking story changes with NewsBlur | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Tracking story changes with NewsBlur" />
|
<meta property="og:title" content="Tracking story changes with NewsBlur" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>A heavier lifting Android app | The NewsBlur Blog</title>
|
<title>A heavier lifting Android app | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="A heavier lifting Android app" />
|
<meta property="og:title" content="A heavier lifting Android app" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>NewsBlur goes dark … on iOS | The NewsBlur Blog</title>
|
<title>NewsBlur goes dark … on iOS | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="NewsBlur goes dark … on iOS" />
|
<meta property="og:title" content="NewsBlur goes dark … on iOS" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Twitter’s back, baby | The NewsBlur Blog</title>
|
<title>Twitter’s back, baby | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Twitter’s back, baby" />
|
<meta property="og:title" content="Twitter’s back, baby" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Newsletters in your NewsBlur | The NewsBlur Blog</title>
|
<title>Newsletters in your NewsBlur | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Newsletters in your NewsBlur" />
|
<meta property="og:title" content="Newsletters in your NewsBlur" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Newsreel is a NewsBlur app for tv | The NewsBlur Blog</title>
|
<title>Newsreel is a NewsBlur app for tv | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Newsreel is a NewsBlur app for tv" />
|
<meta property="og:title" content="Newsreel is a NewsBlur app for tv" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>The dashboard river will keep you up-to-date in real-time | The NewsBlur Blog</title>
|
<title>The dashboard river will keep you up-to-date in real-time | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="The dashboard river will keep you up-to-date in real-time" />
|
<meta property="og:title" content="The dashboard river will keep you up-to-date in real-time" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>A new NewsBlur Android release for the new year | The NewsBlur Blog</title>
|
<title>A new NewsBlur Android release for the new year | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="A new NewsBlur Android release for the new year" />
|
<meta property="og:title" content="A new NewsBlur Android release for the new year" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Preview NewsBlur’s upcoming hardware device, Turn Touch | The NewsBlur Blog</title>
|
<title>Preview NewsBlur’s upcoming hardware device, Turn Touch | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Preview NewsBlur’s upcoming hardware device, Turn Touch" />
|
<meta property="og:title" content="Preview NewsBlur’s upcoming hardware device, Turn Touch" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Introducing Turn Touch, a beautiful wooden remote for lights, devices, apps, and NewsBlur | The NewsBlur Blog</title>
|
<title>Introducing Turn Touch, a beautiful wooden remote for lights, devices, apps, and NewsBlur | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Introducing Turn Touch, a beautiful wooden remote for lights, devices, apps, and NewsBlur" />
|
<meta property="og:title" content="Introducing Turn Touch, a beautiful wooden remote for lights, devices, apps, and NewsBlur" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Last day to back Turn Touch: NewsBlur’s beautiful remote | The NewsBlur Blog</title>
|
<title>Last day to back Turn Touch: NewsBlur’s beautiful remote | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Last day to back Turn Touch: NewsBlur’s beautiful remote" />
|
<meta property="og:title" content="Last day to back Turn Touch: NewsBlur’s beautiful remote" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>Saved searches make it easy to create custom feeds | The NewsBlur Blog</title>
|
<title>Saved searches make it easy to create custom feeds | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="Saved searches make it easy to create custom feeds" />
|
<meta property="og:title" content="Saved searches make it easy to create custom feeds" />
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
|
||||||
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
|
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/>
|
||||||
|
<link rel="alternate" type="application/rss+xml"
|
||||||
|
title="The NewsBlur Blog RSS feed"
|
||||||
|
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.7.1 -->
|
||||||
<title>NewsBlur’s Twitter support just got a whole lot better | The NewsBlur Blog</title>
|
<title>NewsBlur’s Twitter support just got a whole lot better | The NewsBlur Blog</title>
|
||||||
<meta name="generator" content="Jekyll v4.2.0" />
|
<meta name="generator" content="Jekyll v4.2.0" />
|
||||||
<meta property="og:title" content="NewsBlur’s Twitter support just got a whole lot better" />
|
<meta property="og:title" content="NewsBlur’s Twitter support just got a whole lot better" />
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue