├── .gitignore ├── .idea ├── .name ├── LandsBlog.iml ├── dataSources.ids ├── dataSources.xml ├── encodings.xml ├── misc.xml ├── modules.xml ├── scopes │ └── scope_settings.xml ├── vcs.xml └── workspace.xml ├── AutoRss.sh ├── Blog ├── __init__.py ├── __pycache__ │ ├── __init__.cpython-34.pyc │ ├── admin.cpython-34.pyc │ ├── models.cpython-34.pyc │ ├── urls.cpython-34.pyc │ └── views.cpython-34.pyc ├── admin.py ├── migrations │ ├── 0001_initial.py │ ├── __init__.py │ └── __pycache__ │ │ ├── 0001_initial.cpython-34.pyc │ │ ├── 0002_blog_blog_in_status.cpython-34.pyc │ │ ├── 0002_remove_blog_zan_times.cpython-34.pyc │ │ ├── 0003_auto_20160628_1736.cpython-34.pyc │ │ ├── 0003_auto_20160704_1924.cpython-34.pyc │ │ ├── 0003_auto_20160705_1123.cpython-34.pyc │ │ ├── 0004_auto_20160628_2129.cpython-34.pyc │ │ ├── 0004_auto_20160705_1528.cpython-34.pyc │ │ ├── 0004_blog_zan_times.cpython-34.pyc │ │ ├── 0005_auto_20160629_1832.cpython-34.pyc │ │ ├── 0005_auto_20160704_2055.cpython-34.pyc │ │ ├── 0006_auto_20160630_1612.cpython-34.pyc │ │ ├── 0007_auto_20160703_1701.cpython-34.pyc │ │ ├── 0008_hotspot_slug.cpython-34.pyc │ │ ├── 0009_remove_hotspot_slug.cpython-34.pyc │ │ ├── 0010_hotspot_slug.cpython-34.pyc │ │ ├── 0011_remove_hotspot_slug.cpython-34.pyc │ │ └── __init__.cpython-34.pyc ├── models.py ├── static │ ├── admin │ │ ├── css │ │ │ ├── base.css │ │ │ ├── changelists.css │ │ │ ├── dashboard.css │ │ │ ├── forms.css │ │ │ └── login.css │ │ ├── img │ │ │ ├── changelist-bg.gif │ │ │ ├── changelist-bg_rtl.gif │ │ │ ├── default-bg-reverse.gif │ │ │ ├── default-bg.gif │ │ │ ├── deleted-overlay.gif │ │ │ ├── gis │ │ │ │ ├── move_vertex_off.png │ │ │ │ └── move_vertex_on.png │ │ │ ├── icon-no.gif │ │ │ ├── icon-unknown.gif │ │ │ ├── icon-yes.gif │ │ │ ├── icon_addlink.gif │ │ │ ├── icon_alert.gif │ │ │ ├── icon_calendar.gif │ │ │ ├── icon_changelink.gif │ │ │ ├── icon_clock.gif │ │ │ ├── icon_deletelink.gif │ │ │ ├── icon_error.gif │ │ │ ├── icon_searchbox.png │ │ │ ├── icon_success.gif │ │ │ ├── inline-delete-8bit.png │ │ │ ├── inline-delete.png │ │ │ ├── inline-restore-8bit.png │ │ │ ├── inline-restore.png │ │ │ ├── inline-splitter-bg.gif │ │ │ ├── nav-bg-grabber.gif │ │ │ ├── nav-bg-reverse.gif │ │ │ ├── nav-bg-selected.gif │ │ │ ├── nav-bg.gif │ │ │ ├── selector-icons.gif │ │ │ ├── selector-search.gif │ │ │ ├── sorting-icons.gif │ │ │ ├── tooltag-add.png │ │ │ └── tooltag-arrowright.png │ │ └── js │ │ │ ├── SelectBox.js │ │ │ ├── SelectFilter2.js │ │ │ ├── actions.js │ │ │ ├── calendar.js │ │ │ ├── core.js │ │ │ ├── jquery.init.js │ │ │ ├── jquery.js │ │ │ ├── prepopulate.js │ │ │ ├── related-widget-wrapper.js │ │ │ └── urlify.js │ ├── assets │ │ ├── css │ │ │ └── styles.css │ │ ├── images │ │ │ ├── donate │ │ │ │ ├── 1.jpg │ │ │ │ ├── 10.jpg │ │ │ │ ├── 5.jpg │ │ │ │ └── renyi.jpg │ │ │ ├── github-chart.png │ │ │ └── profile.png │ │ ├── js │ │ │ └── main.js │ │ ├── less │ │ │ ├── base.less │ │ │ ├── mixins.less │ │ │ ├── responsive.less │ │ │ ├── styles.less │ │ │ └── theme-default.less │ │ └── plugins │ │ │ ├── bootstrap │ │ │ ├── css │ │ │ │ ├── bootstrap-theme.css │ │ │ │ ├── bootstrap-theme.css.map │ │ │ │ ├── bootstrap-theme.min.css │ │ │ │ ├── bootstrap.css │ │ │ │ ├── bootstrap.css.map │ │ │ │ └── bootstrap.min.css │ │ │ ├── fonts │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ └── js │ │ │ │ ├── bootstrap.js │ │ │ │ ├── bootstrap.min.js │ │ │ │ └── npm.js │ │ │ ├── font-awesome │ │ │ ├── css │ │ │ │ ├── font-awesome.css │ │ │ │ └── font-awesome.min.css │ │ │ ├── fonts │ │ │ │ ├── FontAwesome.otf │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ ├── fontawesome-webfont.svg │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ └── fontawesome-webfont.woff2 │ │ │ ├── less │ │ │ │ ├── animated.less │ │ │ │ ├── bordered-pulled.less │ │ │ │ ├── core.less │ │ │ │ ├── fixed-width.less │ │ │ │ ├── font-awesome.less │ │ │ │ ├── icons.less │ │ │ │ ├── larger.less │ │ │ │ ├── list.less │ │ │ │ ├── mixins.less │ │ │ │ ├── path.less │ │ │ │ ├── rotated-flipped.less │ │ │ │ ├── stacked.less │ │ │ │ └── variables.less │ │ │ └── scss │ │ │ │ ├── _animated.scss │ │ │ │ ├── _bordered-pulled.scss │ │ │ │ ├── _core.scss │ │ │ │ ├── _fixed-width.scss │ │ │ │ ├── _icons.scss │ │ │ │ ├── _larger.scss │ │ │ │ ├── _list.scss │ │ │ │ ├── _mixins.scss │ │ │ │ ├── _path.scss │ │ │ │ ├── _rotated-flipped.scss │ │ │ │ ├── _stacked.scss │ │ │ │ ├── _variables.scss │ │ │ │ └── font-awesome.scss │ │ │ ├── github-activity │ │ │ ├── .gitignore │ │ │ ├── Gruntfile.js │ │ │ ├── bower.json │ │ │ ├── dist │ │ │ │ ├── github-activity-0.1.0.min.css │ │ │ │ ├── github-activity-0.1.0.min.js │ │ │ │ ├── github-activity-0.1.1.min.css │ │ │ │ ├── github-activity-0.1.1.min.js │ │ │ │ ├── mustache │ │ │ │ │ └── mustache.min.js │ │ │ │ └── octicons │ │ │ │ │ ├── octicons.eot │ │ │ │ │ ├── octicons.min.css │ │ │ │ │ ├── octicons.svg │ │ │ │ │ ├── octicons.ttf │ │ │ │ │ └── octicons.woff │ │ │ ├── package.json │ │ │ └── src │ │ │ │ ├── github-activity.css │ │ │ │ └── github-activity.js │ │ │ ├── jquery-1.11.2.min.js │ │ │ ├── jquery-migrate-1.2.1.min.js │ │ │ └── jquery-rss │ │ │ └── dist │ │ │ ├── compiler.jar │ │ │ └── jquery.rss.min.js │ ├── bootstrap_admin │ │ ├── config.json │ │ ├── css │ │ │ └── bootstrap.min.css │ │ ├── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ └── glyphicons-halflings-regular.woff │ │ ├── img │ │ │ └── logo-140x60.png │ │ └── js │ │ │ ├── base.js │ │ │ ├── bootstrap.min.js │ │ │ └── dashboard.js │ ├── css │ │ ├── fancybox.css │ │ ├── ie.css │ │ ├── ie7.css │ │ ├── monokai.css │ │ ├── reset.css │ │ ├── style.css │ │ └── style1.css │ ├── img │ │ ├── ad.gif │ │ ├── box-footer-bg.png │ │ ├── box-header-bg.png │ │ ├── button-arrow-up.png │ │ ├── button-bg-hover.png │ │ ├── button-bg.png │ │ ├── categories-arrow.png │ │ ├── collapse-button-down.png │ │ ├── collapse-button-up.png │ │ ├── colors │ │ │ ├── color_r156_g22_b62_a25.png │ │ │ └── color_r28_g28_b27_a50.png │ │ ├── comments-count-bg-left.png │ │ ├── comments-count-bg-right.png │ │ ├── enlarge-icon.png │ │ ├── fancybox │ │ │ ├── blank.gif │ │ │ ├── fancy_close.png │ │ │ ├── fancy_loading.png │ │ │ ├── fancy_nav_left.png │ │ │ ├── fancy_nav_right.png │ │ │ ├── fancy_shadow_e.png │ │ │ ├── fancy_shadow_n.png │ │ │ ├── fancy_shadow_ne.png │ │ │ ├── fancy_shadow_nw.png │ │ │ ├── fancy_shadow_s.png │ │ │ ├── fancy_shadow_se.png │ │ │ ├── fancy_shadow_sw.png │ │ │ ├── fancy_shadow_w.png │ │ │ ├── fancy_title_left.png │ │ │ ├── fancy_title_main.png │ │ │ ├── fancy_title_over.png │ │ │ ├── fancy_title_right.png │ │ │ ├── fancybox-x.png │ │ │ ├── fancybox-y.png │ │ │ └── fancybox.png │ │ ├── footer-bg.png │ │ ├── footer-bottom-bg.png │ │ ├── footer-logo.png │ │ ├── icon-flickr-feed.png │ │ ├── icon-rss-large.png │ │ ├── icon-rss-small.png │ │ ├── icons │ │ │ └── social-icons │ │ │ │ ├── addthis.png │ │ │ │ ├── aim.png │ │ │ │ ├── aim2.png │ │ │ │ ├── apple.png │ │ │ │ ├── bebo.png │ │ │ │ ├── behance.png │ │ │ │ ├── blogger.png │ │ │ │ ├── brightkite.png │ │ │ │ ├── cargo.png │ │ │ │ ├── delicious.png │ │ │ │ ├── design_bump.png │ │ │ │ ├── designfloat.png │ │ │ │ ├── designmoo.png │ │ │ │ ├── deviantart.png │ │ │ │ ├── digg.png │ │ │ │ ├── dopplr.png │ │ │ │ ├── dribbble.png │ │ │ │ ├── email.png │ │ │ │ ├── ember.png │ │ │ │ ├── evernote.png │ │ │ │ ├── facebook.png │ │ │ │ ├── flickr.png │ │ │ │ ├── friendfeed.png │ │ │ │ ├── github.png │ │ │ │ ├── google.png │ │ │ │ ├── google_buzz.png │ │ │ │ ├── google_talk.png │ │ │ │ ├── googlemaps.png │ │ │ │ ├── lastfm.png │ │ │ │ ├── linkedin.png │ │ │ │ ├── livejournal.png │ │ │ │ ├── mixx.png │ │ │ │ ├── mobileme.png │ │ │ │ ├── msn.png │ │ │ │ ├── myspace.png │ │ │ │ ├── netvibes.png │ │ │ │ ├── newsvine.png │ │ │ │ ├── orkut.png │ │ │ │ ├── pandora.png │ │ │ │ ├── paypal.png │ │ │ │ ├── picasa.png │ │ │ │ ├── posterous.png │ │ │ │ ├── qik.png │ │ │ │ ├── reddit.png │ │ │ │ ├── rss.png │ │ │ │ ├── sharethis.png │ │ │ │ ├── skype.png │ │ │ │ ├── slashdot.png │ │ │ │ ├── squidoo.png │ │ │ │ ├── stumbleupon.png │ │ │ │ ├── technorati.png │ │ │ │ ├── tumblr.png │ │ │ │ ├── twitter.png │ │ │ │ ├── viddler.png │ │ │ │ ├── vimeo.png │ │ │ │ ├── virb.png │ │ │ │ ├── windows.png │ │ │ │ ├── wordpress.png │ │ │ │ ├── xing.png │ │ │ │ ├── yahoo.png │ │ │ │ ├── yahoobuzz.png │ │ │ │ ├── yelp.png │ │ │ │ └── youtube.png │ │ ├── input-bg.png │ │ ├── logo.png │ │ ├── nav-arrow-active.png │ │ ├── nav-arrow.png │ │ ├── nav-bg.png │ │ ├── nav-shadow.png │ │ ├── pagination-active-bg.png │ │ ├── pagination-bg-hover.png │ │ ├── pagination-bg.png │ │ ├── pagination-next-arrows.png │ │ ├── pagination-prev-arrows.png │ │ ├── rating-star-off.png │ │ ├── rating-star-on.png │ │ ├── sample-images │ │ │ ├── 1010x330.jpg │ │ │ ├── 183x105.jpg │ │ │ ├── 240x140.jpg │ │ │ ├── 242x88.jpg │ │ │ ├── 40x40.jpg │ │ │ ├── 60x60.jpg │ │ │ ├── 650x210.jpg │ │ │ ├── 75x40.jpg │ │ │ ├── 75x75.jpg │ │ │ └── 800x600.jpg │ │ ├── textarea-bg.png │ │ └── top-shine.png │ └── js │ │ ├── css3-mediaqueries.js │ │ ├── custom.js │ │ ├── highlight.pack.js │ │ ├── jquery.cycle.all.min.js │ │ ├── jquery.easing.1.3.js │ │ ├── jquery.fancybox-1.3.4.pack.js │ │ ├── jquery.min.js │ │ ├── organictabs.jquery.js │ │ └── selectivizr.js ├── templates │ ├── about-me.html │ ├── artical │ │ ├── artical.html │ │ ├── artical_list.html │ │ ├── status_list.html │ │ └── tag_list.html │ ├── base.html │ └── index.html ├── templatetags │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-34.pyc │ │ └── custom_markdown.cpython-34.pyc │ ├── custom_markdown.py │ └── templates │ │ ├── artical │ │ ├── artical.html │ │ ├── artical_list.html │ │ ├── status_list.html │ │ └── tag_list.html │ │ ├── base.html │ │ └── index.html ├── tests.py ├── upload │ ├── logo-tr.png │ ├── logo.png │ └── user │ │ └── default_user.jpg ├── urls.py └── views.py ├── LandsBlog ├── __init__.py ├── __pycache__ │ ├── __init__.cpython-34.pyc │ ├── settings.cpython-34.pyc │ ├── urls.cpython-34.pyc │ └── wsgi.cpython-34.pyc ├── settings.py ├── urls.py └── wsgi.py ├── RSS_Artical_sql.py ├── SelfBlog ├── __init__.py ├── __pycache__ │ ├── __init__.cpython-34.pyc │ ├── admin.cpython-34.pyc │ ├── models.cpython-34.pyc │ ├── urls.cpython-34.pyc │ └── views.cpython-34.pyc ├── admin.py ├── migrations │ ├── 0001_initial.py │ ├── 0002_auto_20160728_1136.py │ ├── __init__.py │ └── __pycache__ │ │ ├── 0001_initial.cpython-34.pyc │ │ ├── 0002_auto_20160728_1136.cpython-34.pyc │ │ └── __init__.cpython-34.pyc ├── models.py ├── templates │ ├── blog │ │ ├── blog.html │ │ ├── blog_category_list.html │ │ └── blog_tag_list.html │ └── blog_index.html ├── tests.py ├── urls.py └── views.py ├── admin-static ├── admin │ ├── css │ │ ├── base.css │ │ ├── changelists.css │ │ ├── dashboard.css │ │ ├── forms.css │ │ └── login.css │ ├── img │ │ ├── changelist-bg.gif │ │ ├── changelist-bg_rtl.gif │ │ ├── default-bg-reverse.gif │ │ ├── default-bg.gif │ │ ├── deleted-overlay.gif │ │ ├── gis │ │ │ ├── move_vertex_off.png │ │ │ └── move_vertex_on.png │ │ ├── icon-no.gif │ │ ├── icon-unknown.gif │ │ ├── icon-yes.gif │ │ ├── icon_addlink.gif │ │ ├── icon_alert.gif │ │ ├── icon_calendar.gif │ │ ├── icon_changelink.gif │ │ ├── icon_clock.gif │ │ ├── icon_deletelink.gif │ │ ├── icon_error.gif │ │ ├── icon_searchbox.png │ │ ├── icon_success.gif │ │ ├── inline-delete-8bit.png │ │ ├── inline-delete.png │ │ ├── inline-restore-8bit.png │ │ ├── inline-restore.png │ │ ├── inline-splitter-bg.gif │ │ ├── nav-bg-grabber.gif │ │ ├── nav-bg-reverse.gif │ │ ├── nav-bg-selected.gif │ │ ├── nav-bg.gif │ │ ├── selector-icons.gif │ │ ├── selector-search.gif │ │ ├── sorting-icons.gif │ │ ├── tooltag-add.png │ │ └── tooltag-arrowright.png │ └── js │ │ ├── jquery.init.js │ │ └── jquery.js └── bootstrap_admin │ ├── config.json │ ├── css │ └── bootstrap.min.css │ ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ └── glyphicons-halflings-regular.woff │ ├── img │ └── logo-140x60.png │ └── js │ ├── base.js │ ├── bootstrap.min.js │ └── dashboard.js ├── logs ├── access.log └── error.log ├── manage.py ├── readme.txt └── uwsgi.ini /.gitignore: -------------------------------------------------------------------------------- 1 | *.jpg 2 | *.png 3 | *.gif 4 | *.log 5 | *.pyc 6 | 7 | /Blog/upload/ 8 | /db.sqlite3 9 | /db_old.sqlite3 10 | -------------------------------------------------------------------------------- /.idea/.name: -------------------------------------------------------------------------------- 1 | LandsBlog -------------------------------------------------------------------------------- /.idea/LandsBlog.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 20 | 21 | 23 | 24 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /.idea/dataSources.ids: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | org.sqlite.JDBC 5 | jdbc:sqlite:F:\TestFlask\LandsBlog\db.sqlite3 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/dataSources.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | org.sqlite.JDBC 6 | jdbc:sqlite:F:\TestFlask\LandsBlog\db.sqlite3 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Google App Engine (Python) 12 | 13 | 14 | Python 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/scopes/scope_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /AutoRss.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | # Auto execute RSS_Artical_sql.py 3 | . /etc/profile 4 | cd /alidata/django-sites/LandsBlog 5 | cp /alidata/django-sites/LandsBlog/db.sqlite3 /alidata/django-sites/LandsBlog/db_old.sqlite3 6 | python RSS_Artical_sql.py 7 | -------------------------------------------------------------------------------- /Blog/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/__init__.py -------------------------------------------------------------------------------- /Blog/__pycache__/__init__.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/__pycache__/__init__.cpython-34.pyc -------------------------------------------------------------------------------- /Blog/__pycache__/admin.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/__pycache__/admin.cpython-34.pyc -------------------------------------------------------------------------------- /Blog/__pycache__/models.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/__pycache__/models.cpython-34.pyc -------------------------------------------------------------------------------- /Blog/__pycache__/urls.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/__pycache__/urls.cpython-34.pyc -------------------------------------------------------------------------------- /Blog/__pycache__/views.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/__pycache__/views.cpython-34.pyc -------------------------------------------------------------------------------- /Blog/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from .models import Blog, Category, Nav, Carousel, SiteUser, HotSpot, Tag 3 | from django_markdown.admin import MarkdownModelAdmin 4 | 5 | 6 | # Register your models here. 7 | 8 | # —————————————————BlogAdmin—————————————————— 9 | class BlogAdmin(admin.ModelAdmin): 10 | list_display = ('title', 'owner', 'status', 'blog_in_status', 'created', 'modified','read_times','top', 'id') 11 | search_fields = ('title', 'markdown_content') 12 | # 状态选择器 13 | list_filter = ('status', 'blog_in_status', 'owner', 'created', 'modified',) 14 | filter_horizontal = ('tags',) 15 | # 关联字段,slug会将title字段中的英文字符自动填充到slug字段 16 | prepopulated_fields = {'slug': ('title',)} 17 | actions = ['make_blog_public', 'change_blog_daily_status', 'change_blog_popular_status', 'change_blog_industry_status'] 18 | 19 | def make_blog_public(self, request, queryset): 20 | # queryset参数为选中的Blog对象 21 | rows_updated = queryset.update(status=3) 22 | message_bit = "%s 篇文章" % rows_updated 23 | self.message_user(request, "%s 已成功标记为已发布状态." % message_bit) 24 | make_blog_public.short_description = u'修改选中文章为已发布状态' 25 | 26 | def change_blog_daily_status(self, request, queryset): 27 | # queryset参数为选中的Blog对象 28 | rows_updated = queryset.update(blog_in_status = 2) 29 | message_bit = "%s 篇文章" % rows_updated 30 | self.message_user(request, "%s 已成功移至每日热点" % message_bit) 31 | change_blog_daily_status.short_description = u'将选中文章移至每日热点' 32 | 33 | def change_blog_popular_status(self, request, queryset): 34 | # queryset参数为选中的Blog对象 35 | rows_updated = queryset.update(blog_in_status = 4) 36 | message_bit = "%s 篇文章" % rows_updated 37 | self.message_user(request, "%s 已成功移至每日热评" % message_bit) 38 | change_blog_popular_status.short_description = u'将选中文章移至每日热评' 39 | 40 | def change_blog_industry_status(self, request, queryset): 41 | # queryset参数为选中的Blog对象 42 | rows_updated = queryset.update(blog_in_status = 5) 43 | message_bit = "%s 篇文章" % rows_updated 44 | self.message_user(request, "%s 已成功移至业界动态" % message_bit) 45 | change_blog_industry_status.short_description = u'将选中文章移至业界动态' 46 | 47 | 48 | # —————————————————CategoryAdmin—————————————————— 49 | class CategoryAdmin(admin.ModelAdmin): 50 | prepopulated_fields = {'slug': ('label',)} 51 | list_display = ('label','slug') 52 | 53 | 54 | # —————————————————TagAdmin—————————————————— 55 | class TagAdmin(admin.ModelAdmin): 56 | list_display = ('label',) 57 | prepopulated_fields = {'slug': ('label',)} 58 | 59 | 60 | # —————————————————NavAdmin—————————————————— 61 | class NavAdmin(admin.ModelAdmin): 62 | search = ('name',) 63 | list_display = ('name', 'url','order', 'used', 'create_time') 64 | # 显示在admin中可以编辑的字段 65 | fields = ('name', 'url','order', 'used', 'create_time') 66 | 67 | 68 | # —————————————————CarouselAdmin—————————————————— 69 | class CarouselAdmin(admin.ModelAdmin): 70 | search_fields = ('title',) 71 | list_display = ('title', 'blog', 'img', 'create_time') 72 | list_filter = ('create_time',) 73 | prepopulated_fields = {'slug': ('title',)} 74 | fields = ('title', 'slug','blog', 'img', 'summary', 'create_time') 75 | 76 | # —————————————————HotSpotAdmin—————————————————— 77 | class HotSpotAdmin(admin.ModelAdmin): 78 | search_fields = ('title',) 79 | list_display = ('title', 'blog', 'img', 'create_time') 80 | list_filter = ('create_time',) 81 | fields = ('title', 'blog', 'img', 'summary', 'create_time') 82 | 83 | admin.site.register(Blog, BlogAdmin) 84 | admin.site.register(Category, CategoryAdmin) 85 | admin.site.register(Tag, TagAdmin) 86 | admin.site.register(Nav, NavAdmin) 87 | admin.site.register(Carousel, CarouselAdmin) 88 | admin.site.register(HotSpot, HotSpotAdmin) 89 | -------------------------------------------------------------------------------- /Blog/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/migrations/__init__.py -------------------------------------------------------------------------------- /Blog/migrations/__pycache__/0001_initial.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/migrations/__pycache__/0001_initial.cpython-34.pyc -------------------------------------------------------------------------------- /Blog/migrations/__pycache__/0002_blog_blog_in_status.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/migrations/__pycache__/0002_blog_blog_in_status.cpython-34.pyc -------------------------------------------------------------------------------- /Blog/migrations/__pycache__/0002_remove_blog_zan_times.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/migrations/__pycache__/0002_remove_blog_zan_times.cpython-34.pyc -------------------------------------------------------------------------------- /Blog/migrations/__pycache__/0003_auto_20160628_1736.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/migrations/__pycache__/0003_auto_20160628_1736.cpython-34.pyc -------------------------------------------------------------------------------- /Blog/migrations/__pycache__/0003_auto_20160704_1924.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/migrations/__pycache__/0003_auto_20160704_1924.cpython-34.pyc -------------------------------------------------------------------------------- /Blog/migrations/__pycache__/0003_auto_20160705_1123.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/migrations/__pycache__/0003_auto_20160705_1123.cpython-34.pyc -------------------------------------------------------------------------------- /Blog/migrations/__pycache__/0004_auto_20160628_2129.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/migrations/__pycache__/0004_auto_20160628_2129.cpython-34.pyc -------------------------------------------------------------------------------- /Blog/migrations/__pycache__/0004_auto_20160705_1528.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/migrations/__pycache__/0004_auto_20160705_1528.cpython-34.pyc -------------------------------------------------------------------------------- /Blog/migrations/__pycache__/0004_blog_zan_times.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/migrations/__pycache__/0004_blog_zan_times.cpython-34.pyc -------------------------------------------------------------------------------- /Blog/migrations/__pycache__/0005_auto_20160629_1832.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/migrations/__pycache__/0005_auto_20160629_1832.cpython-34.pyc -------------------------------------------------------------------------------- /Blog/migrations/__pycache__/0005_auto_20160704_2055.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/migrations/__pycache__/0005_auto_20160704_2055.cpython-34.pyc -------------------------------------------------------------------------------- /Blog/migrations/__pycache__/0006_auto_20160630_1612.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/migrations/__pycache__/0006_auto_20160630_1612.cpython-34.pyc -------------------------------------------------------------------------------- /Blog/migrations/__pycache__/0007_auto_20160703_1701.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/migrations/__pycache__/0007_auto_20160703_1701.cpython-34.pyc -------------------------------------------------------------------------------- /Blog/migrations/__pycache__/0008_hotspot_slug.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/migrations/__pycache__/0008_hotspot_slug.cpython-34.pyc -------------------------------------------------------------------------------- /Blog/migrations/__pycache__/0009_remove_hotspot_slug.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/migrations/__pycache__/0009_remove_hotspot_slug.cpython-34.pyc -------------------------------------------------------------------------------- /Blog/migrations/__pycache__/0010_hotspot_slug.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/migrations/__pycache__/0010_hotspot_slug.cpython-34.pyc -------------------------------------------------------------------------------- /Blog/migrations/__pycache__/0011_remove_hotspot_slug.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/migrations/__pycache__/0011_remove_hotspot_slug.cpython-34.pyc -------------------------------------------------------------------------------- /Blog/migrations/__pycache__/__init__.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/migrations/__pycache__/__init__.cpython-34.pyc -------------------------------------------------------------------------------- /Blog/static/admin/css/login.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 120px; 3 | } 4 | #content-main { 5 | background: #272727; 6 | border-bottom: 2px solid #444; 7 | border-top: 2px solid #444; 8 | padding: 20px 0; 9 | } 10 | #login-form { 11 | display: block; 12 | margin: 0 auto; 13 | text-align: center; 14 | width: 600px; 15 | } 16 | .logo-admin { 17 | margin:0 auto 20px auto; 18 | display: block; 19 | } 20 | #login-form legend { 21 | border-color: transparent; 22 | color: #fff; 23 | } 24 | #login-form .btn { 25 | transition: background .3s ease-in-out; 26 | } 27 | .password-reset-link { 28 | margin-top: 20px; 29 | } 30 | .toggle-password:hover { 31 | cursor: pointer; 32 | background-color: #ddd; 33 | } 34 | .errornote { 35 | text-align: left; 36 | } 37 | 38 | @media (max-width: 767px) { 39 | body { 40 | padding-top: 60px; 41 | } 42 | .form-row .password { 43 | margin-top: 15px; 44 | } 45 | #login-form { 46 | margin: 0 30px; 47 | width: auto; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /Blog/static/admin/img/changelist-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/changelist-bg.gif -------------------------------------------------------------------------------- /Blog/static/admin/img/changelist-bg_rtl.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/changelist-bg_rtl.gif -------------------------------------------------------------------------------- /Blog/static/admin/img/default-bg-reverse.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/default-bg-reverse.gif -------------------------------------------------------------------------------- /Blog/static/admin/img/default-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/default-bg.gif -------------------------------------------------------------------------------- /Blog/static/admin/img/deleted-overlay.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/deleted-overlay.gif -------------------------------------------------------------------------------- /Blog/static/admin/img/gis/move_vertex_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/gis/move_vertex_off.png -------------------------------------------------------------------------------- /Blog/static/admin/img/gis/move_vertex_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/gis/move_vertex_on.png -------------------------------------------------------------------------------- /Blog/static/admin/img/icon-no.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/icon-no.gif -------------------------------------------------------------------------------- /Blog/static/admin/img/icon-unknown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/icon-unknown.gif -------------------------------------------------------------------------------- /Blog/static/admin/img/icon-yes.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/icon-yes.gif -------------------------------------------------------------------------------- /Blog/static/admin/img/icon_addlink.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/icon_addlink.gif -------------------------------------------------------------------------------- /Blog/static/admin/img/icon_alert.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/icon_alert.gif -------------------------------------------------------------------------------- /Blog/static/admin/img/icon_calendar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/icon_calendar.gif -------------------------------------------------------------------------------- /Blog/static/admin/img/icon_changelink.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/icon_changelink.gif -------------------------------------------------------------------------------- /Blog/static/admin/img/icon_clock.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/icon_clock.gif -------------------------------------------------------------------------------- /Blog/static/admin/img/icon_deletelink.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/icon_deletelink.gif -------------------------------------------------------------------------------- /Blog/static/admin/img/icon_error.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/icon_error.gif -------------------------------------------------------------------------------- /Blog/static/admin/img/icon_searchbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/icon_searchbox.png -------------------------------------------------------------------------------- /Blog/static/admin/img/icon_success.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/icon_success.gif -------------------------------------------------------------------------------- /Blog/static/admin/img/inline-delete-8bit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/inline-delete-8bit.png -------------------------------------------------------------------------------- /Blog/static/admin/img/inline-delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/inline-delete.png -------------------------------------------------------------------------------- /Blog/static/admin/img/inline-restore-8bit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/inline-restore-8bit.png -------------------------------------------------------------------------------- /Blog/static/admin/img/inline-restore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/inline-restore.png -------------------------------------------------------------------------------- /Blog/static/admin/img/inline-splitter-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/inline-splitter-bg.gif -------------------------------------------------------------------------------- /Blog/static/admin/img/nav-bg-grabber.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/nav-bg-grabber.gif -------------------------------------------------------------------------------- /Blog/static/admin/img/nav-bg-reverse.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/nav-bg-reverse.gif -------------------------------------------------------------------------------- /Blog/static/admin/img/nav-bg-selected.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/nav-bg-selected.gif -------------------------------------------------------------------------------- /Blog/static/admin/img/nav-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/nav-bg.gif -------------------------------------------------------------------------------- /Blog/static/admin/img/selector-icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/selector-icons.gif -------------------------------------------------------------------------------- /Blog/static/admin/img/selector-search.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/selector-search.gif -------------------------------------------------------------------------------- /Blog/static/admin/img/sorting-icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/sorting-icons.gif -------------------------------------------------------------------------------- /Blog/static/admin/img/tooltag-add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/tooltag-add.png -------------------------------------------------------------------------------- /Blog/static/admin/img/tooltag-arrowright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/admin/img/tooltag-arrowright.png -------------------------------------------------------------------------------- /Blog/static/admin/js/SelectBox.js: -------------------------------------------------------------------------------- 1 | var SelectBox = { 2 | cache: new Object(), 3 | init: function(id) { 4 | var box = document.getElementById(id); 5 | var node; 6 | SelectBox.cache[id] = new Array(); 7 | var cache = SelectBox.cache[id]; 8 | for (var i = 0; (node = box.options[i]); i++) { 9 | cache.push({value: node.value, text: node.text, displayed: 1}); 10 | } 11 | }, 12 | redisplay: function(id) { 13 | // Repopulate HTML select box from cache 14 | var box = document.getElementById(id); 15 | box.options.length = 0; // clear all options 16 | for (var i = 0, j = SelectBox.cache[id].length; i < j; i++) { 17 | var node = SelectBox.cache[id][i]; 18 | if (node.displayed) { 19 | var new_option = new Option(node.text, node.value, false, false); 20 | // Shows a tooltip when hovering over the option 21 | new_option.setAttribute("title", node.text); 22 | box.options[box.options.length] = new_option; 23 | } 24 | } 25 | }, 26 | filter: function(id, text) { 27 | // Redisplay the HTML select box, displaying only the choices containing ALL 28 | // the words in text. (It's an AND search.) 29 | var tokens = text.toLowerCase().split(/\s+/); 30 | var node, token; 31 | for (var i = 0; (node = SelectBox.cache[id][i]); i++) { 32 | node.displayed = 1; 33 | for (var j = 0; (token = tokens[j]); j++) { 34 | if (node.text.toLowerCase().indexOf(token) == -1) { 35 | node.displayed = 0; 36 | } 37 | } 38 | } 39 | SelectBox.redisplay(id); 40 | }, 41 | delete_from_cache: function(id, value) { 42 | var node, delete_index = null; 43 | for (var i = 0; (node = SelectBox.cache[id][i]); i++) { 44 | if (node.value == value) { 45 | delete_index = i; 46 | break; 47 | } 48 | } 49 | var j = SelectBox.cache[id].length - 1; 50 | for (var i = delete_index; i < j; i++) { 51 | SelectBox.cache[id][i] = SelectBox.cache[id][i+1]; 52 | } 53 | SelectBox.cache[id].length--; 54 | }, 55 | add_to_cache: function(id, option) { 56 | SelectBox.cache[id].push({value: option.value, text: option.text, displayed: 1}); 57 | }, 58 | cache_contains: function(id, value) { 59 | // Check if an item is contained in the cache 60 | var node; 61 | for (var i = 0; (node = SelectBox.cache[id][i]); i++) { 62 | if (node.value == value) { 63 | return true; 64 | } 65 | } 66 | return false; 67 | }, 68 | move: function(from, to) { 69 | var from_box = document.getElementById(from); 70 | var to_box = document.getElementById(to); 71 | var option; 72 | for (var i = 0; (option = from_box.options[i]); i++) { 73 | if (option.selected && SelectBox.cache_contains(from, option.value)) { 74 | SelectBox.add_to_cache(to, {value: option.value, text: option.text, displayed: 1}); 75 | SelectBox.delete_from_cache(from, option.value); 76 | } 77 | } 78 | SelectBox.redisplay(from); 79 | SelectBox.redisplay(to); 80 | }, 81 | move_all: function(from, to) { 82 | var from_box = document.getElementById(from); 83 | var to_box = document.getElementById(to); 84 | var option; 85 | for (var i = 0; (option = from_box.options[i]); i++) { 86 | if (SelectBox.cache_contains(from, option.value)) { 87 | SelectBox.add_to_cache(to, {value: option.value, text: option.text, displayed: 1}); 88 | SelectBox.delete_from_cache(from, option.value); 89 | } 90 | } 91 | SelectBox.redisplay(from); 92 | SelectBox.redisplay(to); 93 | }, 94 | sort: function(id) { 95 | SelectBox.cache[id].sort( function(a, b) { 96 | a = a.text.toLowerCase(); 97 | b = b.text.toLowerCase(); 98 | try { 99 | if (a > b) return 1; 100 | if (a < b) return -1; 101 | } 102 | catch (e) { 103 | // silently fail on IE 'unknown' exception 104 | } 105 | return 0; 106 | } ); 107 | }, 108 | select_all: function(id) { 109 | var box = document.getElementById(id); 110 | for (var i = 0; i < box.options.length; i++) { 111 | box.options[i].selected = 'selected'; 112 | } 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /Blog/static/admin/js/jquery.init.js: -------------------------------------------------------------------------------- 1 | /* Puts the included jQuery into our own namespace using noConflict and passing 2 | * it 'true'. This ensures that the included jQuery doesn't pollute the global 3 | * namespace (i.e. this preserves pre-existing values for both window.$ and 4 | * window.jQuery). 5 | */ 6 | var django = django || {}; 7 | django.jQuery = jQuery.noConflict(true); 8 | -------------------------------------------------------------------------------- /Blog/static/admin/js/prepopulate.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | $.fn.prepopulate = function(dependencies, maxLength) { 3 | /* 4 | Depends on urlify.js 5 | Populates a selected field with the values of the dependent fields, 6 | URLifies and shortens the string. 7 | dependencies - array of dependent fields ids 8 | maxLength - maximum length of the URLify'd string 9 | */ 10 | return this.each(function() { 11 | var prepopulatedField = $(this); 12 | 13 | var populate = function () { 14 | // Bail if the field's value has been changed by the user 15 | if (prepopulatedField.data('_changed')) { 16 | return; 17 | } 18 | 19 | var values = []; 20 | $.each(dependencies, function(i, field) { 21 | field = $(field); 22 | if (field.val().length > 0) { 23 | values.push(field.val()); 24 | } 25 | }); 26 | prepopulatedField.val(URLify(values.join(' '), maxLength)); 27 | }; 28 | 29 | prepopulatedField.data('_changed', false); 30 | prepopulatedField.change(function() { 31 | prepopulatedField.data('_changed', true); 32 | }); 33 | 34 | if (!prepopulatedField.val()) { 35 | $(dependencies.join(',')).keyup(populate).change(populate).focus(populate); 36 | } 37 | }); 38 | }; 39 | })(django.jQuery); 40 | -------------------------------------------------------------------------------- /Blog/static/admin/js/related-widget-wrapper.js: -------------------------------------------------------------------------------- 1 | django.jQuery(function($){ 2 | function updateLinks() { 3 | var $this = $(this); 4 | var siblings = $this.nextAll('.change-related, .delete-related'); 5 | if (!siblings.length) return; 6 | var value = $this.val(); 7 | if (value) { 8 | siblings.each(function(){ 9 | var elm = $(this); 10 | elm.attr('href', elm.attr('data-href-template').replace('__fk__', value)); 11 | }); 12 | } else siblings.removeAttr('href'); 13 | } 14 | var container = $(document); 15 | container.on('change', '.related-widget-wrapper select', updateLinks); 16 | container.find('.related-widget-wrapper select').each(updateLinks); 17 | container.on('click', '.related-widget-wrapper-link', function(event){ 18 | if (this.href) { 19 | showRelatedObjectPopup(this); 20 | } 21 | event.preventDefault(); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /Blog/static/assets/images/donate/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/assets/images/donate/1.jpg -------------------------------------------------------------------------------- /Blog/static/assets/images/donate/10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/assets/images/donate/10.jpg -------------------------------------------------------------------------------- /Blog/static/assets/images/donate/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/assets/images/donate/5.jpg -------------------------------------------------------------------------------- /Blog/static/assets/images/donate/renyi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/assets/images/donate/renyi.jpg -------------------------------------------------------------------------------- /Blog/static/assets/images/github-chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/assets/images/github-chart.png -------------------------------------------------------------------------------- /Blog/static/assets/images/profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/assets/images/profile.png -------------------------------------------------------------------------------- /Blog/static/assets/js/main.js: -------------------------------------------------------------------------------- 1 | jQuery(document).ready(function($) { 2 | 3 | 4 | /*======= Skillset *=======*/ 5 | 6 | $('.level-bar-inner').css('width', '0'); 7 | 8 | $(window).on('load', function() { 9 | 10 | $('.level-bar-inner').each(function() { 11 | 12 | var itemWidth = $(this).data('level'); 13 | 14 | $(this).animate({ 15 | width: itemWidth 16 | }, 400); 17 | 18 | }); 19 | 20 | }); 21 | 22 | 23 | 24 | 25 | /* Github Activity Feed - https://github.com/caseyscarborough/github-activity */ 26 | GitHubActivity.feed({ username: "NoharaHiroshi", selector: "#ghfeed" }); 27 | 28 | 29 | }); -------------------------------------------------------------------------------- /Blog/static/assets/less/responsive.less: -------------------------------------------------------------------------------- 1 | @import "mixins.less"; 2 | @import "theme-default.less"; 3 | 4 | /* Extra small devices (phones, less than 768px) */ 5 | @media (max-width: 767px) { 6 | 7 | .header { 8 | text-align: center; 9 | } 10 | .header .profile-image { 11 | float: none !important; 12 | margin: 0 auto; 13 | } 14 | 15 | .header .profile-content { 16 | float: none !important; 17 | text-align: center; 18 | } 19 | 20 | .header .btn { 21 | margin-top: 30px; 22 | float: none !important; 23 | } 24 | .project-image { 25 | margin-bottom: 15px; 26 | } 27 | 28 | } 29 | 30 | /* Small devices (tablets, 768px and up) */ 31 | @media (min-width: 768px) { 32 | 33 | 34 | 35 | } 36 | 37 | /* Medium devices (desktops, 992px and up) */ 38 | @media (min-width: 992px) { 39 | 40 | } 41 | 42 | /* Large devices (large desktops, 1200px and up) */ 43 | @media (min-width: 1200px) { 44 | 45 | } 46 | 47 | 48 | /* Ex-Large devices (large desktops, 1200px and up) */ 49 | @media (min-width: 1400px) { 50 | .container { 51 | width: 1360px; 52 | } 53 | } 54 | 55 | 56 | -------------------------------------------------------------------------------- /Blog/static/assets/less/styles.less: -------------------------------------------------------------------------------- 1 | /* 2 | * Template Name: Developer - Responsive Website Template for Developers 3 | * Version: 1.3 4 | * Author: Xiaoying Riley 5 | * Twitter: @3rdwave_themes 6 | * License: Creative Commons Attribution 3.0 License 7 | * Website: http://themes.3rdwavemedia.com/ 8 | */ 9 | @import "theme-default.less"; 10 | @import "base.less"; 11 | @import "responsive.less"; 12 | -------------------------------------------------------------------------------- /Blog/static/assets/less/theme-default.less: -------------------------------------------------------------------------------- 1 | @color: #778492; 2 | @color-2: #3AAA64; 3 | @btn-color: #54ba4e; 4 | @btn-color-2: #479FC8; 5 | @text-color: #434343; 6 | @text-color-secondary: #666; 7 | @grey: #999; 8 | @divider: #e8e8e8; 9 | @lighter-grey: #ccc; 10 | @darker-grey: #666; 11 | @smoky-white: #f5f5f5; 12 | @background: #DAE3E7; 13 | @heart: #fb866a; 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /Blog/static/assets/plugins/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/assets/plugins/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /Blog/static/assets/plugins/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/assets/plugins/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /Blog/static/assets/plugins/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/assets/plugins/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /Blog/static/assets/plugins/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/assets/plugins/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /Blog/static/assets/plugins/bootstrap/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/assets/plugins/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/assets/plugins/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/assets/plugins/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/assets/plugins/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/assets/plugins/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/less/animated.less: -------------------------------------------------------------------------------- 1 | // Animated Icons 2 | // -------------------------- 3 | 4 | .@{fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .@{fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/less/bordered-pulled.less: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em @fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .pull-right { float: right; } 11 | .pull-left { float: left; } 12 | 13 | .@{fa-css-prefix} { 14 | &.pull-left { margin-right: .3em; } 15 | &.pull-right { margin-left: .3em; } 16 | } 17 | -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/less/core.less: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/1 FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | transform: translate(0, 0); // ensures no half-pixel rendering in firefox 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/less/fixed-width.less: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .@{fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/less/font-awesome.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables.less"; 7 | @import "mixins.less"; 8 | @import "path.less"; 9 | @import "core.less"; 10 | @import "larger.less"; 11 | @import "fixed-width.less"; 12 | @import "list.less"; 13 | @import "bordered-pulled.less"; 14 | @import "animated.less"; 15 | @import "rotated-flipped.less"; 16 | @import "stacked.less"; 17 | @import "icons.less"; 18 | -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/less/larger.less: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .@{fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .@{fa-css-prefix}-2x { font-size: 2em; } 11 | .@{fa-css-prefix}-3x { font-size: 3em; } 12 | .@{fa-css-prefix}-4x { font-size: 4em; } 13 | .@{fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/less/list.less: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: @fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .@{fa-css-prefix}-li { 11 | position: absolute; 12 | left: -@fa-li-width; 13 | width: @fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.@{fa-css-prefix}-lg { 17 | left: (-@fa-li-width + (4em / 14)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/less/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | .fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/1 FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | transform: translate(0, 0); // ensures no half-pixel rendering in firefox 12 | 13 | } 14 | 15 | .fa-icon-rotate(@degrees, @rotation) { 16 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation); 17 | -webkit-transform: rotate(@degrees); 18 | -ms-transform: rotate(@degrees); 19 | transform: rotate(@degrees); 20 | } 21 | 22 | .fa-icon-flip(@horiz, @vert, @rotation) { 23 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation, mirror=1); 24 | -webkit-transform: scale(@horiz, @vert); 25 | -ms-transform: scale(@horiz, @vert); 26 | transform: scale(@horiz, @vert); 27 | } 28 | -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/less/path.less: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); 7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), 8 | url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), 9 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), 10 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), 11 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/less/rotated-flipped.less: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } 5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } 6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } 7 | 8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } 9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .@{fa-css-prefix}-rotate-90, 15 | :root .@{fa-css-prefix}-rotate-180, 16 | :root .@{fa-css-prefix}-rotate-270, 17 | :root .@{fa-css-prefix}-flip-horizontal, 18 | :root .@{fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/less/stacked.less: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; } 21 | -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/scss/_animated.scss: -------------------------------------------------------------------------------- 1 | // Spinning Icons 2 | // -------------------------- 3 | 4 | .#{$fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .#{$fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/scss/_bordered-pulled.scss: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em $fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .pull-right { float: right; } 11 | .pull-left { float: left; } 12 | 13 | .#{$fa-css-prefix} { 14 | &.pull-left { margin-right: .3em; } 15 | &.pull-right { margin-left: .3em; } 16 | } 17 | -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/scss/_core.scss: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/1 FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | transform: translate(0, 0); // ensures no half-pixel rendering in firefox 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/scss/_fixed-width.scss: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .#{$fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/scss/_larger.scss: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .#{$fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .#{$fa-css-prefix}-2x { font-size: 2em; } 11 | .#{$fa-css-prefix}-3x { font-size: 3em; } 12 | .#{$fa-css-prefix}-4x { font-size: 4em; } 13 | .#{$fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/scss/_list.scss: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: $fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .#{$fa-css-prefix}-li { 11 | position: absolute; 12 | left: -$fa-li-width; 13 | width: $fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.#{$fa-css-prefix}-lg { 17 | left: -$fa-li-width + (4em / 14); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | @mixin fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/1 FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | transform: translate(0, 0); // ensures no half-pixel rendering in firefox 12 | 13 | } 14 | 15 | @mixin fa-icon-rotate($degrees, $rotation) { 16 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); 17 | -webkit-transform: rotate($degrees); 18 | -ms-transform: rotate($degrees); 19 | transform: rotate($degrees); 20 | } 21 | 22 | @mixin fa-icon-flip($horiz, $vert, $rotation) { 23 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); 24 | -webkit-transform: scale($horiz, $vert); 25 | -ms-transform: scale($horiz, $vert); 26 | transform: scale($horiz, $vert); 27 | } 28 | -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/scss/_path.scss: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); 7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), 8 | url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), 9 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), 10 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), 11 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/scss/_rotated-flipped.scss: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } 5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } 6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } 7 | 8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } 9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .#{$fa-css-prefix}-rotate-90, 15 | :root .#{$fa-css-prefix}-rotate-180, 16 | :root .#{$fa-css-prefix}-rotate-270, 17 | :root .#{$fa-css-prefix}-flip-horizontal, 18 | :root .#{$fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/scss/_stacked.scss: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; } 21 | -------------------------------------------------------------------------------- /Blog/static/assets/plugins/font-awesome/scss/font-awesome.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables"; 7 | @import "mixins"; 8 | @import "path"; 9 | @import "core"; 10 | @import "larger"; 11 | @import "fixed-width"; 12 | @import "list"; 13 | @import "bordered-pulled"; 14 | @import "animated"; 15 | @import "rotated-flipped"; 16 | @import "stacked"; 17 | @import "icons"; 18 | -------------------------------------------------------------------------------- /Blog/static/assets/plugins/github-activity/.gitignore: -------------------------------------------------------------------------------- 1 | index.html 2 | bower_components/ 3 | node_modules/ -------------------------------------------------------------------------------- /Blog/static/assets/plugins/github-activity/Gruntfile.js: -------------------------------------------------------------------------------- 1 | var config = { 2 | dist: 'dist', 3 | bower: 'bower_components', 4 | src: 'src', 5 | banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - Copyright 2014 <%= pkg.author %> */\n' 6 | }; 7 | 8 | var pkg = require('./package.json'); 9 | 10 | module.exports = function(grunt) { 11 | grunt.initConfig({ 12 | config: config, 13 | pkg: pkg, 14 | copy: { 15 | dist: { 16 | files: [{ 17 | expand: true, 18 | cwd: '<%= config.bower %>/octicons/octicons', 19 | src: 'octicons.ttf', 20 | dest: '<%= config.dist %>/octicons' 21 | }, 22 | { 23 | expand: true, 24 | cwd: '<%= config.bower %>/octicons/octicons', 25 | src: 'octicons.woff', 26 | dest: '<%= config.dist %>/octicons' 27 | }, 28 | { 29 | expand: true, 30 | cwd: '<%= config.bower %>/octicons/octicons', 31 | src: 'octicons.eot', 32 | dest: '<%= config.dist %>/octicons' 33 | }, 34 | { 35 | expand: true, 36 | cwd: '<%= config.bower %>/octicons/octicons', 37 | src: 'octicons.svg', 38 | dest: '<%= config.dist %>/octicons' 39 | } 40 | ] 41 | } 42 | }, 43 | cssmin: { 44 | add_banner: { 45 | options: { 46 | banner: config.banner 47 | }, 48 | files: { 49 | '<%= config.dist %>/github-activity-<%= pkg.version %>.min.css': [ 50 | '<%= config.src %>/github-activity.css' 51 | ], 52 | '<%= config.dist %>/octicons/octicons.min.css': [ 53 | '<%= config.bower %>/octicons/octicons/octicons.css' 54 | ] 55 | } 56 | } 57 | }, 58 | uglify: { 59 | options: { 60 | banner: config.banner 61 | }, 62 | dist: { 63 | files: { 64 | '<%= config.dist %>/github-activity-<%= pkg.version %>.min.js': [ 65 | '<%= config.src %>/github-activity.js' 66 | ], 67 | '<%= config.dist %>/mustache/mustache.min.js': [ 68 | '<%= config.bower %>/mustache/mustache.js' 69 | ] 70 | } 71 | } 72 | }, 73 | clean: { 74 | build: { 75 | src: ["dist/*"] 76 | } 77 | } 78 | }); 79 | 80 | grunt.loadNpmTasks('grunt-contrib-clean'); 81 | grunt.loadNpmTasks('grunt-contrib-copy'); 82 | grunt.loadNpmTasks('grunt-contrib-cssmin'); 83 | grunt.loadNpmTasks('grunt-contrib-uglify'); 84 | 85 | grunt.registerTask( "wipe", [ "clean" ]) 86 | grunt.registerTask( "default", [ "copy", "cssmin", "uglify:dist" ] ); 87 | }; -------------------------------------------------------------------------------- /Blog/static/assets/plugins/github-activity/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "GitHub Activity Stream", 3 | "main": "github-activity.js", 4 | "version": "0.1.0", 5 | "homepage": "https://github.com/caseyscarborough/github-activity", 6 | "authors": [ 7 | "Casey Scarborough " 8 | ], 9 | "description": "A widget for displaying GitHub activity for a user.", 10 | "keywords": [ 11 | "github" 12 | ], 13 | "license": "MIT", 14 | "private": true, 15 | "ignore": [ 16 | "**/.*", 17 | "node_modules", 18 | "bower_components", 19 | "test", 20 | "tests" 21 | ], 22 | "dependencies": { 23 | "octicons": "~2.1.0", 24 | "mustache": "~0.8.2" 25 | }, 26 | "devDependencies": { 27 | "grunt": "0.4.5" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Blog/static/assets/plugins/github-activity/dist/github-activity-0.1.0.min.css: -------------------------------------------------------------------------------- 1 | /*! GitHub Activity Stream - v0.1.0 - Copyright 2014 Casey Scarborough */ 2 | body,html{height:100%;width:100%;margin:0;padding:0}.gha-feed{width:100%;height:100%;background:#fff;font-weight:700;font-size:14px;font-family:Helvetica,arial,freesans,clean,sans-serif;line-height:1.3;overflow-y:auto;border:1px solid #ddd}.gha-feed,.gha-feed h2,.gha-feed h3,.gha-feed li,.gha-feed p,.gha-feed ul{margin:0;padding:0}.gha-feed ul{list-style-type:none;padding:0;margin:0}.gha-feed li{list-style-type:none;line-height:1.4}.gha-feed small{color:#666;font-weight:400;font-size:13px}.gha-feed small a{font-weight:400}.gha-feed small a .more-commits{font-size:11px}span.gha-time{color:#bbb;font-weight:400;font-size:12px}.gha-feed a{color:#4183c4;text-decoration:none;font-weight:700}.gha-feed a:hover{text-decoration:underline}.gha-feed pre{padding:0;border:0;border-radius:0;box-shadow:1px 1px 4px #bbb;color:#fff}.gha-header{position:absolute;top:1px;left:1px;width:calc(100% - 20px);padding:10px;height:67px;border-bottom:1px solid #ddd;background:#fff;background:-moz-linear-gradient(top,#fff 0,#f4f4f4 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#fff),color-stop(100%,#f4f4f4));background:-webkit-linear-gradient(top,#fff 0,#f4f4f4 100%);background:-o-linear-gradient(top,#fff 0,#f4f4f4 100%);background:-ms-linear-gradient(top,#fff 0,#f4f4f4 100%);background:linear-gradient(to bottom,#fff 0,#f4f4f4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f4f4f4', GradientType=0)}.gha-footer{position:absolute;bottom:-1px;left:1px;padding:5px 5px 5px 10px;border-top:1px solid #ddd;height:16px;width:calc(100% - 15px);background:#fff;background:-moz-linear-gradient(top,#fff 0,#f4f4f4 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#fff),color-stop(100%,#f4f4f4));background:-webkit-linear-gradient(top,#fff 0,#f4f4f4 100%);background:-o-linear-gradient(top,#fff 0,#f4f4f4 100%);background:-ms-linear-gradient(top,#fff 0,#f4f4f4 100%);background:linear-gradient(to bottom,#fff 0,#f4f4f4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f4f4f4', GradientType=0);color:#495961;font-size:13px}.gha-footer a{float:right;color:#495961;padding-right:20px;font-size:13px;font-weight:700}.gha-footer a:hover,.gha-header a:hover{text-decoration:none}.gha-github-icon{display:inline;float:left;padding:9px 0 0;width:35px;height:35px;color:#495961}.gha-github-icon .octicon{font:normal normal 40px octicons}.gha-gravatar{display:inline;float:right;margin-right:10px;padding-right:20px;max-width:60px;height:67px}.gha-gravatar img{padding:3px;width:100%;border:1px solid #ddd;box-shadow:1px 1px 3px #ccc}.gha-activity{clear:both;padding:10px 0;width:100%;border-bottom:1px solid #ddd}.gha-activity.gha-small{margin-top:5px;font-weight:400;font-size:13px}.gha-activity.gha-small a{font-weight:400}.gha-activity.gha-small .gha-message{float:left;width:auto;margin-right:5px;margin-top:5px}.gha-activity.gha-small span{font-size:16px}.gha-activity.gha-small .gha-time{float:left;margin-top:6px}.gha-activity:last-child{padding-bottom:100px}.gha-repo{clear:both;padding:10px 0;width:100%;border-bottom:1px solid #ddd}.gha-activity-icon .octicon{display:inline;float:left;clear:both;margin:6px auto;width:50px;color:#bbb;text-align:center;font:normal normal 30px octicons}.gha-activity-icon .gha-small{font-size:16px}.gha-message{display:inline-block;float:left;width:calc(100% - 50px)}.gha-message-commits{font-size:11px}.gha-message-merge{padding:3px 7px;border-radius:3px;background:#e8f1f6;color:rgba(0,0,0,.5);font-size:12px;line-height:2}.gha-sha{font-size:12px;font-family:Consolas,"Liberation Mono",Courier,monospace}.gha-gravatar-small{float:left;margin-right:6px;width:30px}.gha-gravatar-commit{margin-bottom:-3px;border-radius:2px}.gha-gravatar-user{float:left}.gha-user-info{display:inline-block;float:left;margin:0 auto;padding:6px 10px 5px;color:#495961;font-size:20px}.gha-user-info a{color:#495961}.gha-user-info p a{font-weight:100}.gha-without-name{padding-top:20px;padding-left:15px}.gha-info{margin:15px;padding:10px;border:1px solid #e4e4c6;border-radius:4px;background:#ffffde;color:#6d6d4b;font-weight:400;font-size:13px}.gha-time{color:#bbb;font-weight:400;font-size:12px}.gha-clear{clear:both}.gha-muted{color:#666}.gha-push{height:87px}.gha-push-small{height:26px} -------------------------------------------------------------------------------- /Blog/static/assets/plugins/github-activity/dist/github-activity-0.1.1.min.css: -------------------------------------------------------------------------------- 1 | /*! github-activity - v0.1.1 - Copyright 2014 Casey Scarborough */ 2 | 3 | body,html{height:100%;width:100%;margin:0;padding:0}.gha-feed{width:100%;height:100%;background:#fff;font-weight:700;font-size:14px;font-family:Helvetica,arial,freesans,clean,sans-serif;line-height:1.3;overflow-y:auto;border:1px solid #ddd}.gha-feed,.gha-feed h2,.gha-feed h3,.gha-feed li,.gha-feed p,.gha-feed ul{margin:0;padding:0}.gha-feed ul{list-style-type:none;padding:0;margin:0}.gha-feed li{list-style-type:none;line-height:1.4}.gha-feed small{color:#666;font-weight:400;font-size:13px}.gha-feed small a{font-weight:400}.gha-feed small a .more-commits{font-size:11px}span.gha-time{color:#bbb;font-weight:400;font-size:12px}.gha-feed a{color:#4183c4;text-decoration:none;font-weight:700}.gha-feed a:hover{text-decoration:underline}.gha-feed pre{padding:0;border:0;border-radius:0;box-shadow:1px 1px 4px #bbb;color:#fff}.gha-header{position:absolute;top:1px;left:1px;width:calc(100% - 20px);padding:10px;height:67px;border-bottom:1px solid #ddd;background:#fff;background:-moz-linear-gradient(top,#fff 0,#f4f4f4 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#fff),color-stop(100%,#f4f4f4));background:-webkit-linear-gradient(top,#fff 0,#f4f4f4 100%);background:-o-linear-gradient(top,#fff 0,#f4f4f4 100%);background:-ms-linear-gradient(top,#fff 0,#f4f4f4 100%);background:linear-gradient(to bottom,#fff 0,#f4f4f4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f4f4f4', GradientType=0)}.gha-footer{position:absolute;bottom:-1px;left:1px;padding:5px 5px 5px 10px;border-top:1px solid #ddd;height:16px;width:calc(100% - 15px);background:#fff;background:-moz-linear-gradient(top,#fff 0,#f4f4f4 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#fff),color-stop(100%,#f4f4f4));background:-webkit-linear-gradient(top,#fff 0,#f4f4f4 100%);background:-o-linear-gradient(top,#fff 0,#f4f4f4 100%);background:-ms-linear-gradient(top,#fff 0,#f4f4f4 100%);background:linear-gradient(to bottom,#fff 0,#f4f4f4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f4f4f4', GradientType=0);color:#495961;font-size:13px}.gha-footer a{float:right;color:#495961;padding-right:20px;font-size:13px;font-weight:700}.gha-footer a:hover,.gha-header a:hover{text-decoration:none}.gha-github-icon{display:inline;float:left;padding:9px 0 0;width:35px;height:35px;color:#495961}.gha-github-icon .octicon{font:normal normal 40px octicons}.gha-gravatar{display:inline;float:right;margin-right:10px;padding-right:20px;max-width:60px;height:67px}.gha-gravatar img{padding:3px;width:100%;border:1px solid #ddd;box-shadow:1px 1px 3px #ccc}.gha-activity{clear:both;padding:10px 0;width:100%;border-bottom:1px solid #ddd}.gha-activity.gha-small{margin-top:5px;font-weight:400;font-size:13px}.gha-activity.gha-small a{font-weight:400}.gha-activity.gha-small .gha-message{float:left;width:auto;margin-right:5px;margin-top:5px}.gha-activity.gha-small span{font-size:16px}.gha-activity.gha-small .gha-time{float:left;margin-top:6px}.gha-activity:last-child{padding-bottom:100px}.gha-repo{clear:both;padding:10px 0;width:100%;border-bottom:1px solid #ddd}.gha-activity-icon .octicon{display:inline;float:left;clear:both;margin:6px auto;width:50px;color:#bbb;text-align:center;font:normal normal 30px octicons}.gha-activity-icon .gha-small{font-size:16px}.gha-message{display:inline-block;float:left;width:calc(100% - 50px)}.gha-message-commits{font-size:11px}.gha-message-merge{padding:3px 7px;border-radius:3px;background:#e8f1f6;color:rgba(0,0,0,.5);font-size:12px;line-height:2}.gha-sha{font-size:12px;font-family:Consolas,"Liberation Mono",Courier,monospace}.gha-gravatar-small{float:left;margin-right:6px;width:30px}.gha-gravatar-commit{margin-bottom:-3px;border-radius:2px}.gha-gravatar-user{float:left}.gha-user-info{display:inline-block;float:left;margin:0 auto;padding:6px 10px 5px;color:#495961;font-size:20px}.gha-user-info a{color:#495961}.gha-user-info p a{font-weight:100}.gha-without-name{padding-top:20px;padding-left:15px}.gha-info{margin:15px;padding:10px;border:1px solid #e4e4c6;border-radius:4px;background:#ffffde;color:#6d6d4b;font-weight:400;font-size:13px}.gha-time{color:#bbb;font-weight:400;font-size:12px}.gha-clear{clear:both}.gha-muted{color:#666}.gha-push{height:87px}.gha-push-small{height:26px} -------------------------------------------------------------------------------- /Blog/static/assets/plugins/github-activity/dist/mustache/mustache.min.js: -------------------------------------------------------------------------------- 1 | /*! GitHub Activity Stream - v0.1.0 - Copyright 2014 Casey Scarborough */ 2 | !function(a,b){if("object"==typeof exports&&exports)b(exports);else{var c={};b(c),"function"==typeof define&&define.amd?define(c):a.Mustache=c}}(this,function(a){function b(a,b){return n.call(a,b)}function c(a){return!b(o,a)}function d(a){return"function"==typeof a}function e(a){return a.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function f(a){return String(a).replace(/[&<>"'\/]/g,function(a){return r[a]})}function g(a){if(!q(a)||2!==a.length)throw new Error("Invalid tags: "+a);return[new RegExp(e(a[0])+"\\s*"),new RegExp("\\s*"+e(a[1]))]}function h(b,d){function f(){if(A&&!B)for(;z.length;)delete y[z.pop()];else z=[];A=!1,B=!1}d=d||a.tags,b=b||"","string"==typeof d&&(d=d.split(t));for(var h,l,m,n,o,p,q=g(d),r=new k(b),x=[],y=[],z=[],A=!1,B=!1;!r.eos();){if(h=r.pos,m=r.scanUntil(q[0]))for(var C=0,D=m.length;D>C;++C)n=m.charAt(C),c(n)?z.push(y.length):B=!0,y.push(["text",n,h,h+1]),h+=1,"\n"===n&&f();if(!r.scan(q[0]))break;if(A=!0,l=r.scan(w)||"name",r.scan(s),"="===l?(m=r.scanUntil(u),r.scan(u),r.scanUntil(q[1])):"{"===l?(m=r.scanUntil(new RegExp("\\s*"+e("}"+d[1]))),r.scan(v),r.scanUntil(q[1]),l="&"):m=r.scanUntil(q[1]),!r.scan(q[1]))throw new Error("Unclosed tag at "+r.pos);if(o=[l,m,h,r.pos],y.push(o),"#"===l||"^"===l)x.push(o);else if("/"===l){if(p=x.pop(),!p)throw new Error('Unopened section "'+m+'" at '+h);if(p[1]!==m)throw new Error('Unclosed section "'+p[1]+'" at '+h)}else"name"===l||"{"===l||"&"===l?B=!0:"="===l&&(q=g(d=m.split(t)))}if(p=x.pop())throw new Error('Unclosed section "'+p[1]+'" at '+r.pos);return j(i(y))}function i(a){for(var b,c,d=[],e=0,f=a.length;f>e;++e)b=a[e],b&&("text"===b[0]&&c&&"text"===c[0]?(c[1]+=b[1],c[3]=b[3]):(d.push(b),c=b));return d}function j(a){for(var b,c,d=[],e=d,f=[],g=0,h=a.length;h>g;++g)switch(b=a[g],b[0]){case"#":case"^":e.push(b),f.push(b),e=b[4]=[];break;case"/":c=f.pop(),c[5]=b[2],e=f.length>0?f[f.length-1][4]:d;break;default:e.push(b)}return d}function k(a){this.string=a,this.tail=a,this.pos=0}function l(a,b){this.view=null==a?{}:a,this.cache={".":this.view},this.parent=b}function m(){this.cache={}}var n=RegExp.prototype.test,o=/\S/,p=Object.prototype.toString,q=Array.isArray||function(a){return"[object Array]"===p.call(a)},r={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"},s=/\s*/,t=/\s+/,u=/\s*=/,v=/\s*\}/,w=/#|\^|\/|>|\{|&|=|!/;k.prototype.eos=function(){return""===this.tail},k.prototype.scan=function(a){var b=this.tail.match(a);if(b&&0===b.index){var c=b[0];return this.tail=this.tail.substring(c.length),this.pos+=c.length,c}return""},k.prototype.scanUntil=function(a){var b,c=this.tail.search(a);switch(c){case-1:b=this.tail,this.tail="";break;case 0:b="";break;default:b=this.tail.substring(0,c),this.tail=this.tail.substring(c)}return this.pos+=b.length,b},l.prototype.push=function(a){return new l(a,this)},l.prototype.lookup=function(a){var b;if(a in this.cache)b=this.cache[a];else{for(var c=this;c;){if(a.indexOf(".")>0){b=c.view;for(var e=a.split("."),f=0;null!=b&&fl;++l)switch(h=b[l],h[0]){case"#":if(i=c.lookup(h[1]),!i)continue;if(q(i))for(var n=0,o=i.length;o>n;++n)j+=this.renderTokens(h[4],c.push(i[n]),e,f);else if("object"==typeof i||"string"==typeof i)j+=this.renderTokens(h[4],c.push(i),e,f);else if(d(i)){if("string"!=typeof f)throw new Error("Cannot use higher-order sections without the original template");i=i.call(c.view,f.slice(h[3],h[5]),g),null!=i&&(j+=i)}else j+=this.renderTokens(h[4],c,e,f);break;case"^":i=c.lookup(h[1]),(!i||q(i)&&0===i.length)&&(j+=this.renderTokens(h[4],c,e,f));break;case">":if(!e)continue;i=d(e)?e(h[1]):e[h[1]],null!=i&&(j+=this.renderTokens(this.parse(i),c,e,i));break;case"&":i=c.lookup(h[1]),null!=i&&(j+=i);break;case"name":i=c.lookup(h[1]),null!=i&&(j+=a.escape(i));break;case"text":j+=h[1]}return j},a.name="mustache.js",a.version="0.8.1",a.tags=["{{","}}"];var x=new m;a.clearCache=function(){return x.clearCache()},a.parse=function(a,b){return x.parse(a,b)},a.render=function(a,b,c){return x.render(a,b,c)},a.to_html=function(b,c,e,f){var g=a.render(b,c,e);return d(f)?void f(g):g},a.escape=f,a.Scanner=k,a.Context=l,a.Writer=m}); -------------------------------------------------------------------------------- /Blog/static/assets/plugins/github-activity/dist/octicons/octicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/assets/plugins/github-activity/dist/octicons/octicons.eot -------------------------------------------------------------------------------- /Blog/static/assets/plugins/github-activity/dist/octicons/octicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/assets/plugins/github-activity/dist/octicons/octicons.ttf -------------------------------------------------------------------------------- /Blog/static/assets/plugins/github-activity/dist/octicons/octicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/assets/plugins/github-activity/dist/octicons/octicons.woff -------------------------------------------------------------------------------- /Blog/static/assets/plugins/github-activity/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "github-activity", 3 | "version": "0.1.1", 4 | "description": "A widget for displaying GitHub activity for a user.", 5 | "main": "Gruntfile.js", 6 | "devDependencies": { 7 | "grunt": "~0.4.5", 8 | "grunt-contrib-copy": "~0.5.0", 9 | "grunt-contrib-uglify": "~0.5.1", 10 | "grunt-contrib-cssmin": "~0.10.0", 11 | "grunt-contrib-clean": "~0.6.0" 12 | }, 13 | "scripts": { 14 | "test": "echo \"Error: no test specified\" && exit 1" 15 | }, 16 | "repository": { 17 | "type": "git", 18 | "url": "git://github.com/caseyscarborough/github-activity.git" 19 | }, 20 | "keywords": [ 21 | "github" 22 | ], 23 | "author": "Casey Scarborough", 24 | "license": "MIT", 25 | "bugs": { 26 | "url": "https://github.com/caseyscarborough/github-activity/issues" 27 | }, 28 | "homepage": "https://github.com/caseyscarborough/github-activity" 29 | } 30 | -------------------------------------------------------------------------------- /Blog/static/assets/plugins/jquery-rss/dist/compiler.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/assets/plugins/jquery-rss/dist/compiler.jar -------------------------------------------------------------------------------- /Blog/static/assets/plugins/jquery-rss/dist/jquery.rss.min.js: -------------------------------------------------------------------------------- 1 | (function(d){var e=function(a,b,c,f){this.target=a;this.url=b;this.html=[];this.effectQueue=[];this.options=d.extend({ssl:!1,limit:null,key:null,layoutTemplate:"",entryTemplate:'
  • [{author}@{date}] {title}
    {shortBodyPlain}
  • ',tokens:{},outputMode:"json",effect:"show",offsetStart:!1,offsetEnd:!1,error:function(){console.log("jQuery RSS: url doesn't link to RSS-Feed")},onData:function(){},success:function(){}},c||{});this.callback=f||this.options.success}; 2 | e.htmlTags="doctype,html,head,title,base,link,meta,style,script,noscript,body,article,nav,aside,section,header,footer,h1-h6,hgroup,address,p,hr,pre,blockquote,ol,ul,li,dl,dt,dd,figure,figcaption,div,table,caption,thead,tbody,tfoot,tr,th,td,col,colgroup,form,fieldset,legend,label,input,button,select,datalist,optgroup,option,textarea,keygen,output,progress,meter,details,summary,command,menu,del,ins,img,iframe,embed,object,param,video,audio,source,canvas,track,map,area,a,em,strong,i,b,u,s,small,abbr,q,cite,dfn,sub,sup,time,code,kbd,samp,var,mark,bdi,bdo,ruby,rt,rp,span,br,wbr".split(","); 3 | e.prototype.load=function(a){var b="http"+(this.options.ssl?"s":"")+"://ajax.googleapis.com/ajax/services/feed/load?v=1.0&output="+this.options.outputMode+"&callback=?&q="+encodeURIComponent(this.url);this.options.offsetStart&&this.options.offsetEnd&&(this.options.limit=this.options.offsetEnd);null!=this.options.limit&&(b+="&num="+this.options.limit);null!=this.options.key&&(b+="&key="+this.options.key);d.getJSON(b,a)};e.prototype.render=function(){var a=this;this.load(function(b){try{a.feed=b.responseData.feed, 4 | a.entries=b.responseData.feed.entries}catch(c){return a.entries=[],a.feed=null,a.options.error.call(a)}b=a.generateHTMLForEntries();a.target.append(b.layout);0!==b.entries.length&&(d.isFunction(a.options.onData)&&a.options.onData.call(a),a.appendEntriesAndApplyEffects(d("entries",b.layout),b.entries));0=c&&index<=f&&a.isRelevant(this,b.entries)&&(c=a.evaluateStringForEntry(a.options.entryTemplate,this),b.entries.push(c)):a.isRelevant(this,b.entries)&&(c=a.evaluateStringForEntry(a.options.entryTemplate, 6 | this),b.entries.push(c))});b.layout=this.options.entryTemplate?this.wrapContent(this.options.layoutTemplate.replace("{entries}","")):this.wrapContent("
    ");return b};e.prototype.wrapContent=function(a){return 0!==d.trim(a).indexOf("<")?d("
    "+a+"
    "):d(a)};e.prototype.applyEffect=function(a,b,c){switch(b){case "slide":a.slideDown("slow",c);break;case "slideFast":a.slideDown(c);break;case "slideSynced":this.effectQueue.push({element:a,effect:"slide"}); 7 | break;case "slideFastSynced":this.effectQueue.push({element:a,effect:"slideFast"})}};e.prototype.executeEffectQueue=function(a){var b=this;this.effectQueue.reverse();var c=function(){var f=b.effectQueue.pop();f?b.applyEffect(f.element,f.effect,c):a&&a()};c()};e.prototype.evaluateStringForEntry=function(a,b){var c=a,f=this;d(a.match(/(\{.*?\})/g)).each(function(){var a=this.toString();c=c.replace(a,f.getValueForToken(a,b))});return c};e.prototype.isRelevant=function(a,b){var c=this.getTokenMap(a); 8 | return this.options.filter?this.options.filterLimit&&this.options.filterLimit==b.length?!1:this.options.filter(a,c):!0};e.prototype.getTokenMap=function(a){if(!this.feedTokens){var b=JSON.parse(JSON.stringify(this.feed));delete b.entries;this.feedTokens=b}return d.extend({feed:this.feedTokens,url:a.link,author:a.author,date:a.publishedDate,title:a.title,body:a.content,shortBody:a.contentSnippet,bodyPlain:function(a){for(var a=a.content.replace(//mgi,"").replace(/<\/?[^>]+>/gi, 9 | ""),b=0;b]+>/gi,""),index:d.inArray(a,this.entries),totalEntries:this.entries.length,teaserImage:function(a){try{return a.content.match(/()/gi)[0]}catch(b){return""}}(a),teaserImageUrl:function(a){try{return a.content.match(/()/gi)[0].match(/src="(.*?)"/)[1]}catch(b){return""}}(a)},this.options.tokens)};e.prototype.getValueForToken=function(a,b){var c= 10 | this.getTokenMap(b),d=a.replace(/[\{\}]/g,""),d=c[d];if("undefined"!=typeof d)return"function"==typeof d?d(b,c):d;throw Error("Unknown token: "+a);};d.fn.rss=function(a,b,c){(new e(this,a,b,c)).render();return this}})(jQuery); 11 | -------------------------------------------------------------------------------- /Blog/static/bootstrap_admin/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/bootstrap_admin/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /Blog/static/bootstrap_admin/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/bootstrap_admin/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /Blog/static/bootstrap_admin/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/bootstrap_admin/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /Blog/static/bootstrap_admin/img/logo-140x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/bootstrap_admin/img/logo-140x60.png -------------------------------------------------------------------------------- /Blog/static/bootstrap_admin/js/base.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * IE10 viewport hack for Surface/desktop Windows 8 bug 3 | * Copyright 2014 Twitter, Inc. 4 | * Licensed under the Creative Commons Attribution 3.0 Unported License. For 5 | * details, see http://creativecommons.org/licenses/by/3.0/. 6 | */ 7 | 8 | // See the Getting Started docs for more information: 9 | // http://getbootstrap.com/getting-started/#support-ie10-width 10 | 11 | (function () { 12 | 'use strict'; 13 | if (navigator.userAgent.match(/IEMobile\/10\.0/)) { 14 | var msViewportStyle = document.createElement('style') 15 | msViewportStyle.appendChild( 16 | document.createTextNode( 17 | '@-ms-viewport{width:auto!important}' 18 | ) 19 | ) 20 | document.querySelector('head').appendChild(msViewportStyle) 21 | } 22 | })(); 23 | 24 | /*! jquery.cookie v1.4.1 | MIT */ 25 | !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?a(require("jquery")):a(django.jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}}); 26 | 27 | (function ($) { 28 | $(document).ready(function(){ 29 | var show_hide_sidebar_menu = function () { 30 | hidden_menu = $('#sidebar-menu').data('hidden'); 31 | main_classes = 'col-xs-6 col-xs-offset-6 col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2'; 32 | if (hidden_menu) { 33 | $('.main').addClass(main_classes).removeClass('col-sm-12'); 34 | $('.sidebar-menu').css('left', '0').data('hidden', false); 35 | $('.django-admin-title').hide(); 36 | $.removeCookie('hidden_sidebar_menu', {path: '/'}); 37 | } else { 38 | $('.main').removeClass(main_classes).addClass('col-sm-12'); 39 | $('.sidebar-menu').css('left', '-50%').data('hidden', true); 40 | $('.django-admin-title').fadeIn(); 41 | $.cookie('hidden_sidebar_menu', true, {path: '/'}); 42 | } 43 | }; 44 | if (!$('body').hasClass('popup')) { 45 | if ($.cookie('hidden_sidebar_menu')) { 46 | /* always show on change_list.html */ 47 | if (!$('body').hasClass('change-list')) { 48 | show_hide_sidebar_menu(); 49 | } 50 | } 51 | $('.show-hide-sidebar-menu').on('click', function(e){ 52 | show_hide_sidebar_menu(); 53 | e.preventDefault(); 54 | }); 55 | } 56 | // list models 57 | $('.nav-sidebar li:first-child a').on('click', function () { 58 | var $nav_sidebar = $(this).closest('.nav-sidebar'); 59 | if ($nav_sidebar.hasClass('show-models')) { 60 | $nav_sidebar.removeClass('show-models'); 61 | } else { 62 | $nav_sidebar.addClass('show-models'); 63 | } 64 | return false; 65 | }); 66 | }); 67 | })(django.jQuery); 68 | -------------------------------------------------------------------------------- /Blog/static/css/ie.css: -------------------------------------------------------------------------------- 1 | /* Misc */ 2 | div { zoom: 1; } 3 | #trips-viewer .trips-container, #trips-viewer .trips-nav { margin-top: -1px; } 4 | #comment-form .input_block input { padding: 3px 6px 7px; } 5 | 6 | /* Media Queries */ 7 | @media only screen and (max-width: 1024px) { #main .gallery-list .zoom a span { right: 25px; } } -------------------------------------------------------------------------------- /Blog/static/css/ie7.css: -------------------------------------------------------------------------------- 1 | /* Misc */ 2 | hr { margin-bottom: 10px; } 3 | #sliderNav { bottom: 40px; } 4 | #comments .comments-list .comment { padding: 20px 0 0; } 5 | #main .collapsible .zoom.align-right a span, #main .collapsible .zoom.align-left a span { margin-bottom: 0; } 6 | #main .gallery-list li { display: inline; } 7 | #main .gallery-list .entry-content { padding-bottom: 5px; } 8 | 9 | /* Media Queries */ 10 | @media only screen and (max-width: 1024px) { #main .gallery-list .zoom a span { right: 8px; } } -------------------------------------------------------------------------------- /Blog/static/css/monokai.css: -------------------------------------------------------------------------------- 1 | /* 2 | Monokai style - ported by Luigi Maselli - http://grigio.org 3 | */ 4 | 5 | .hljs { 6 | display: block; 7 | overflow-x: auto; 8 | padding: 0.5em; 9 | background: #272822; color: #ddd; 10 | font-family: Menlo,Monaco,Consolas,"Courier New",monospace; 11 | font-size:14px; 12 | } 13 | 14 | .hljs-tag, 15 | .hljs-keyword, 16 | .hljs-selector-tag, 17 | .hljs-literal, 18 | .hljs-strong, 19 | .hljs-name { 20 | color: #f92672; 21 | } 22 | 23 | .hljs-code { 24 | color: #66d9ef; 25 | } 26 | 27 | .hljs-class .hljs-title { 28 | color: white; 29 | } 30 | 31 | .hljs-attribute, 32 | .hljs-symbol, 33 | .hljs-regexp, 34 | .hljs-link { 35 | color: #bf79db; 36 | } 37 | 38 | .hljs-string, 39 | .hljs-bullet, 40 | .hljs-subst, 41 | .hljs-title, 42 | .hljs-section, 43 | .hljs-emphasis, 44 | .hljs-type, 45 | .hljs-built_in, 46 | .hljs-builtin-name, 47 | .hljs-selector-attr, 48 | .hljs-selector-pseudo, 49 | .hljs-addition, 50 | .hljs-variable, 51 | .hljs-template-tag, 52 | .hljs-template-variable { 53 | color: #a6e22e; 54 | } 55 | 56 | .hljs-comment, 57 | .hljs-quote, 58 | .hljs-deletion, 59 | .hljs-meta { 60 | color: #75715e; 61 | } 62 | 63 | .hljs-keyword, 64 | .hljs-selector-tag, 65 | .hljs-literal, 66 | .hljs-doctag, 67 | .hljs-title, 68 | .hljs-section, 69 | .hljs-type, 70 | .hljs-selector-id { 71 | font-weight: bold; 72 | } 73 | -------------------------------------------------------------------------------- /Blog/static/css/reset.css: -------------------------------------------------------------------------------- 1 | /* http://meyerweb.com/eric/tools/css/reset/ */ 2 | /* v1.0 | 20080212 */ 3 | 4 | html, body, div, span, applet, object, iframe, 5 | h1, h2, h3, h4, h5, h6, p, blockquote, pre, 6 | a, abbr, acronym, address, big, cite, code, 7 | del, dfn, em, font, img, ins, kbd, q, s, samp, 8 | small, strike, strong, sub, sup, tt, var, 9 | b, u, i, center, 10 | dl, dt, dd, ol, ul, li, 11 | fieldset, form, label, legend, 12 | table, caption, tbody, tfoot, thead, tr, th, td { 13 | margin: 0; 14 | padding: 0; 15 | border: 0; 16 | outline: 0; 17 | font-size: 100%; 18 | vertical-align: baseline; 19 | background: transparent; 20 | } 21 | body { 22 | line-height: 1; 23 | } 24 | ol, ul { 25 | list-style: none; 26 | } 27 | blockquote, q { 28 | quotes: none; 29 | border-left: 3px solid #28b8ff; 30 | margin-left: 30px; 31 | padding: 0 25px; 32 | } 33 | blockquote:before, blockquote:after, 34 | q:before, q:after { 35 | content: ''; 36 | content: none; 37 | } 38 | 39 | /* remember to define focus styles! */ 40 | :focus { 41 | outline: 0; 42 | } 43 | 44 | /* remember to highlight inserts somehow! */ 45 | ins { 46 | text-decoration: none; 47 | } 48 | del { 49 | text-decoration: line-through; 50 | } 51 | 52 | /* tables still need 'cellspacing="0"' in the markup */ 53 | table { 54 | border-collapse: collapse; 55 | border-spacing: 0; 56 | } 57 | 58 | /* Some basic settings */ 59 | 60 | h1 { font-size: 30px; } 61 | 62 | h2 { font-size: 26px; } 63 | 64 | h3 { font-size: 22px; } 65 | 66 | h4 { font-size: 18px; } 67 | 68 | h5 { font-size: 16px; } 69 | 70 | h6 { font-size: 14px; } 71 | 72 | ol { list-style: decimal; } 73 | 74 | ul { list-style: disc; } 75 | 76 | li { margin-left: 25px; } 77 | 78 | p,dl,hr,h1,h2,h3,h4,h5,h6,ol,ul,pre, 79 | table,address,fieldset,blockquote { margin-bottom: 20px; } 80 | 81 | /* `Clear Floated Elements 82 | ----------------------------------------------------------------------------------------------------*/ 83 | 84 | /* http://sonspring.com/journal/clearing-floats */ 85 | 86 | .clear { 87 | clear: both; 88 | display: block; 89 | overflow: hidden; 90 | visibility: hidden; 91 | width: 0; 92 | height: 0; 93 | } 94 | 95 | /* http://perishablepress.com/press/2009/12/06/new-clearfix-hack */ 96 | 97 | .clearfix:after { 98 | clear: both; 99 | content: ' '; 100 | display: block; 101 | font-size: 0; 102 | line-height: 0; 103 | visibility: hidden; 104 | width: 0; 105 | height: 0; 106 | } 107 | 108 | /* 109 | The following zoom:1 rule is specifically for IE6 + IE7. 110 | Move to separate stylesheet if invalid CSS is a problem. 111 | */ 112 | * html .clearfix, 113 | *:first-child+html .clearfix { 114 | zoom: 1; 115 | } -------------------------------------------------------------------------------- /Blog/static/img/ad.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/ad.gif -------------------------------------------------------------------------------- /Blog/static/img/box-footer-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/box-footer-bg.png -------------------------------------------------------------------------------- /Blog/static/img/box-header-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/box-header-bg.png -------------------------------------------------------------------------------- /Blog/static/img/button-arrow-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/button-arrow-up.png -------------------------------------------------------------------------------- /Blog/static/img/button-bg-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/button-bg-hover.png -------------------------------------------------------------------------------- /Blog/static/img/button-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/button-bg.png -------------------------------------------------------------------------------- /Blog/static/img/categories-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/categories-arrow.png -------------------------------------------------------------------------------- /Blog/static/img/collapse-button-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/collapse-button-down.png -------------------------------------------------------------------------------- /Blog/static/img/collapse-button-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/collapse-button-up.png -------------------------------------------------------------------------------- /Blog/static/img/colors/color_r156_g22_b62_a25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/colors/color_r156_g22_b62_a25.png -------------------------------------------------------------------------------- /Blog/static/img/colors/color_r28_g28_b27_a50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/colors/color_r28_g28_b27_a50.png -------------------------------------------------------------------------------- /Blog/static/img/comments-count-bg-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/comments-count-bg-left.png -------------------------------------------------------------------------------- /Blog/static/img/comments-count-bg-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/comments-count-bg-right.png -------------------------------------------------------------------------------- /Blog/static/img/enlarge-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/enlarge-icon.png -------------------------------------------------------------------------------- /Blog/static/img/fancybox/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/fancybox/blank.gif -------------------------------------------------------------------------------- /Blog/static/img/fancybox/fancy_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/fancybox/fancy_close.png -------------------------------------------------------------------------------- /Blog/static/img/fancybox/fancy_loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/fancybox/fancy_loading.png -------------------------------------------------------------------------------- /Blog/static/img/fancybox/fancy_nav_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/fancybox/fancy_nav_left.png -------------------------------------------------------------------------------- /Blog/static/img/fancybox/fancy_nav_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/fancybox/fancy_nav_right.png -------------------------------------------------------------------------------- /Blog/static/img/fancybox/fancy_shadow_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/fancybox/fancy_shadow_e.png -------------------------------------------------------------------------------- /Blog/static/img/fancybox/fancy_shadow_n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/fancybox/fancy_shadow_n.png -------------------------------------------------------------------------------- /Blog/static/img/fancybox/fancy_shadow_ne.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/fancybox/fancy_shadow_ne.png -------------------------------------------------------------------------------- /Blog/static/img/fancybox/fancy_shadow_nw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/fancybox/fancy_shadow_nw.png -------------------------------------------------------------------------------- /Blog/static/img/fancybox/fancy_shadow_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/fancybox/fancy_shadow_s.png -------------------------------------------------------------------------------- /Blog/static/img/fancybox/fancy_shadow_se.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/fancybox/fancy_shadow_se.png -------------------------------------------------------------------------------- /Blog/static/img/fancybox/fancy_shadow_sw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/fancybox/fancy_shadow_sw.png -------------------------------------------------------------------------------- /Blog/static/img/fancybox/fancy_shadow_w.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/fancybox/fancy_shadow_w.png -------------------------------------------------------------------------------- /Blog/static/img/fancybox/fancy_title_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/fancybox/fancy_title_left.png -------------------------------------------------------------------------------- /Blog/static/img/fancybox/fancy_title_main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/fancybox/fancy_title_main.png -------------------------------------------------------------------------------- /Blog/static/img/fancybox/fancy_title_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/fancybox/fancy_title_over.png -------------------------------------------------------------------------------- /Blog/static/img/fancybox/fancy_title_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/fancybox/fancy_title_right.png -------------------------------------------------------------------------------- /Blog/static/img/fancybox/fancybox-x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/fancybox/fancybox-x.png -------------------------------------------------------------------------------- /Blog/static/img/fancybox/fancybox-y.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/fancybox/fancybox-y.png -------------------------------------------------------------------------------- /Blog/static/img/fancybox/fancybox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/fancybox/fancybox.png -------------------------------------------------------------------------------- /Blog/static/img/footer-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/footer-bg.png -------------------------------------------------------------------------------- /Blog/static/img/footer-bottom-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/footer-bottom-bg.png -------------------------------------------------------------------------------- /Blog/static/img/footer-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/footer-logo.png -------------------------------------------------------------------------------- /Blog/static/img/icon-flickr-feed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icon-flickr-feed.png -------------------------------------------------------------------------------- /Blog/static/img/icon-rss-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icon-rss-large.png -------------------------------------------------------------------------------- /Blog/static/img/icon-rss-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icon-rss-small.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/addthis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/addthis.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/aim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/aim.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/aim2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/aim2.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/apple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/apple.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/bebo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/bebo.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/behance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/behance.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/blogger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/blogger.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/brightkite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/brightkite.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/cargo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/cargo.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/delicious.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/delicious.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/design_bump.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/design_bump.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/designfloat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/designfloat.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/designmoo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/designmoo.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/deviantart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/deviantart.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/digg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/digg.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/dopplr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/dopplr.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/dribbble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/dribbble.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/email.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/ember.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/ember.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/evernote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/evernote.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/facebook.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/flickr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/flickr.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/friendfeed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/friendfeed.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/github.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/google.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/google_buzz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/google_buzz.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/google_talk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/google_talk.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/googlemaps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/googlemaps.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/lastfm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/lastfm.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/linkedin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/linkedin.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/livejournal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/livejournal.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/mixx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/mixx.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/mobileme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/mobileme.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/msn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/msn.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/myspace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/myspace.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/netvibes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/netvibes.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/newsvine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/newsvine.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/orkut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/orkut.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/pandora.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/pandora.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/paypal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/paypal.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/picasa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/picasa.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/posterous.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/posterous.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/qik.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/qik.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/reddit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/reddit.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/rss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/rss.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/sharethis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/sharethis.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/skype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/skype.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/slashdot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/slashdot.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/squidoo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/squidoo.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/stumbleupon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/stumbleupon.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/technorati.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/technorati.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/tumblr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/tumblr.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/twitter.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/viddler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/viddler.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/vimeo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/vimeo.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/virb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/virb.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/windows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/windows.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/wordpress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/wordpress.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/xing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/xing.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/yahoo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/yahoo.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/yahoobuzz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/yahoobuzz.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/yelp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/yelp.png -------------------------------------------------------------------------------- /Blog/static/img/icons/social-icons/youtube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/icons/social-icons/youtube.png -------------------------------------------------------------------------------- /Blog/static/img/input-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/input-bg.png -------------------------------------------------------------------------------- /Blog/static/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/logo.png -------------------------------------------------------------------------------- /Blog/static/img/nav-arrow-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/nav-arrow-active.png -------------------------------------------------------------------------------- /Blog/static/img/nav-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/nav-arrow.png -------------------------------------------------------------------------------- /Blog/static/img/nav-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/nav-bg.png -------------------------------------------------------------------------------- /Blog/static/img/nav-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/nav-shadow.png -------------------------------------------------------------------------------- /Blog/static/img/pagination-active-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/pagination-active-bg.png -------------------------------------------------------------------------------- /Blog/static/img/pagination-bg-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/pagination-bg-hover.png -------------------------------------------------------------------------------- /Blog/static/img/pagination-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/pagination-bg.png -------------------------------------------------------------------------------- /Blog/static/img/pagination-next-arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/pagination-next-arrows.png -------------------------------------------------------------------------------- /Blog/static/img/pagination-prev-arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/pagination-prev-arrows.png -------------------------------------------------------------------------------- /Blog/static/img/rating-star-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/rating-star-off.png -------------------------------------------------------------------------------- /Blog/static/img/rating-star-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/rating-star-on.png -------------------------------------------------------------------------------- /Blog/static/img/sample-images/1010x330.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/sample-images/1010x330.jpg -------------------------------------------------------------------------------- /Blog/static/img/sample-images/183x105.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/sample-images/183x105.jpg -------------------------------------------------------------------------------- /Blog/static/img/sample-images/240x140.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/sample-images/240x140.jpg -------------------------------------------------------------------------------- /Blog/static/img/sample-images/242x88.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/sample-images/242x88.jpg -------------------------------------------------------------------------------- /Blog/static/img/sample-images/40x40.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/sample-images/40x40.jpg -------------------------------------------------------------------------------- /Blog/static/img/sample-images/60x60.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/sample-images/60x60.jpg -------------------------------------------------------------------------------- /Blog/static/img/sample-images/650x210.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/sample-images/650x210.jpg -------------------------------------------------------------------------------- /Blog/static/img/sample-images/75x40.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/sample-images/75x40.jpg -------------------------------------------------------------------------------- /Blog/static/img/sample-images/75x75.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/sample-images/75x75.jpg -------------------------------------------------------------------------------- /Blog/static/img/sample-images/800x600.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/sample-images/800x600.jpg -------------------------------------------------------------------------------- /Blog/static/img/textarea-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/textarea-bg.png -------------------------------------------------------------------------------- /Blog/static/img/top-shine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/static/img/top-shine.png -------------------------------------------------------------------------------- /Blog/static/js/organictabs.jquery.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 3 | $.organicTabs = function(el, options) { 4 | 5 | var base = this; 6 | base.$el = $(el); 7 | base.$nav = base.$el.find(".nav"); 8 | 9 | base.init = function() { 10 | 11 | base.options = $.extend({},$.organicTabs.defaultOptions, options); 12 | 13 | // Accessible hiding fix 14 | $(".hide").css({ 15 | "position": "relative", 16 | "top": 0, 17 | "left": 0, 18 | "display": "none" 19 | }); 20 | 21 | base.$nav.delegate("li > a", "click", function() { 22 | 23 | // Figure out current list via CSS class 24 | var curList = base.$el.find("a.current").attr("href").substring(1), 25 | 26 | // List moving to 27 | $newList = $(this), 28 | 29 | // Figure out ID of new list 30 | listID = $newList.attr("href").substring(1), 31 | 32 | // Set outer wrapper height to (static) height of current inner list 33 | $allListWrap = base.$el.find(".list-wrap"), 34 | curListHeight = $allListWrap.height(); 35 | $allListWrap.height(curListHeight); 36 | 37 | if ((listID != curList) && ( base.$el.find(":animated").length == 0)) { 38 | 39 | // Fade out current list 40 | base.$el.find("#"+curList).fadeOut(base.options.speed, function() { 41 | 42 | // Fade in new list on callback 43 | base.$el.find("#"+listID).fadeIn(base.options.speed); 44 | 45 | // Adjust outer wrapper to fit new list snuggly 46 | var newHeight = base.$el.find("#"+listID).height(); 47 | $allListWrap.animate({ 48 | height: newHeight 49 | }); 50 | 51 | // Remove highlighting - Add to just-clicked tab 52 | base.$el.find(".nav li a").removeClass("current"); 53 | $newList.addClass("current"); 54 | 55 | }); 56 | 57 | } 58 | 59 | // Don't behave like a regular link 60 | // Stop propegation and bubbling 61 | return false; 62 | }); 63 | 64 | }; 65 | base.init(); 66 | }; 67 | 68 | $.organicTabs.defaultOptions = { 69 | "speed": 300 70 | }; 71 | 72 | $.fn.organicTabs = function(options) { 73 | return this.each(function() { 74 | (new $.organicTabs(this, options)); 75 | }); 76 | }; 77 | 78 | })(jQuery); -------------------------------------------------------------------------------- /Blog/static/js/selectivizr.js: -------------------------------------------------------------------------------- 1 | /* 2 | selectivizr v1.0.0 - (c) Keith Clark, freely distributable under the terms of the MIT license. 3 | selectivizr.com 4 | */ 5 | (function(x){function K(a){return a.replace(L,o).replace(M,function(b,e,c){b=c.split(",");c=0;for(var g=b.length;c0){d=f;var u;h=j.substring(0,h).replace(R,n);if(h==n||h.charAt(h.length-1)==t)h+="*";try{u=v(h)}catch(da){}if(u){h=0;for(l=u.length;h-1)a=a.substring(0,f);if(a.charAt(0)==":")switch(a.slice(1)){case "root":b=function(d){return c?d!=D:d==D};break;case "target":if(p==8){b=function(d){function k(){var l=location.hash,i=l.slice(1);return c?l==""||d.id!=i:l!=""&&d.id==i}x.attachEvent("onhashchange",function(){r(d,e,k())});return k()};break}return false;case "checked":b=function(d){U.test(d.type)&&d.attachEvent("onpropertychange",function(){event.propertyName=="checked"&&r(d,e,d.checked!==c)});return d.checked!==c};break;case "disabled":c=!c;case "enabled":b=function(d){if(V.test(d.tagName)){d.attachEvent("onpropertychange",function(){event.propertyName=="$disabled"&&r(d,e,d.a===c)});w.push(d);d.a=d.disabled;return d.disabled===c}return a==":enabled"?c:!c};break;case "focus":g="focus";j="blur";case "hover":if(!g){g="mouseenter";j="mouseleave"}b=function(d){d.attachEvent("on"+(c?j:g),function(){r(d,e,true)});d.attachEvent("on"+(c?g:j),function(){r(d,e,false)});return c};break;default:if(!W.test(a))return false;break}return{className:e,b:b}}function C(a){return E+"-"+(p==6&&X?Y++:a.replace(Z,function(b){return b.charCodeAt(0)}))}function N(a){return a.replace(F,o).replace($,t)}function r(a,b,e){var c=a.className;b=A(c,b,e);if(b!=c){a.className=b;a.parentNode.className+=n}}function A(a,b,e){var c=RegExp("(^|\\s)"+b+"(\\s|$)"),g=c.test(a);return e?g?a:a+t+b:g?a.replace(c,o).replace(F,o):a}function G(a,b){if(/^https?:\/\//i.test(a))return b.substring(0,b.indexOf("/",8))==a.substring(0,a.indexOf("/",8))?a:null;if(a.charAt(0)=="/")return b.substring(0,b.indexOf("/",8))+a;var e=b.split("?")[0];if(a.charAt(0)!="?"&&e.charAt(e.length-1)!="/")e=e.substring(0,e.lastIndexOf("/")+1);return e+a}function H(a){if(a){s.open("GET",a,false);s.send();return(s.status==200?s.responseText:n).replace(aa,n).replace(ba,function(b,e,c){return H(G(c,a))})}return n}function ca(){var a,b;a=m.getElementsByTagName("BASE");for(var e=a.length>0?a[0].href:m.location.href,c=0;c0&&setInterval(function(){for(var g=0,j=w.length;g8||!s)){var I={NW:"*.Dom.select",DOMAssistant:"*.$",Prototype:"$$",YAHOO:"*.util.Selector.query",MooTools:"$$",Sizzle:"*",jQuery:"*",dojo:"*.query"},v,w=[],Y=0,X=true,E="slvzr",J=E+"DOMReady",aa=/(\/\*[^*]*\*+([^\/][^*]*\*+)*\/)\s*/g,ba=/@import\s*url\(\s*(["'])?(.*?)\1\s*\)[\w\W]*?;/g,W=/^:(empty|(first|last|only|nth(-last)?)-(child|of-type))$/,L=/:(:first-(?:line|letter))/g,M=/(^|})\s*([^\{]*?[\[:][^{]+)/g,Q=/([ +~>])|(:[a-z-]+(?:\(.*?\)+)?)|(\[.*?\])/g,R=/(:not\()?:(hover|enabled|disabled|focus|checked|target|active|visited|first-line|first-letter)\)?/g,Z=/[^\w-]/g,V=/^(INPUT|SELECT|TEXTAREA|BUTTON)$/,U=/^(checkbox|radio)$/,B=p==8?/[\$\^]=(['"])\1/:p==7?/[\$\^*]=(['"])\1/:null,O=/([(\[+~])\s+/g,P=/\s+([)\]+~])/g,$=/\s+/g,F=/^\s*((?:[\S\s]*\S)?)\s*$/,n="",t=" ",o="$1";m.write(" 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 94 | 95 | 96 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 127 | 128 | 129 | 130 | 131 | -------------------------------------------------------------------------------- /Blog/templatetags/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/templatetags/__init__.py -------------------------------------------------------------------------------- /Blog/templatetags/__pycache__/__init__.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/templatetags/__pycache__/__init__.cpython-34.pyc -------------------------------------------------------------------------------- /Blog/templatetags/__pycache__/custom_markdown.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/templatetags/__pycache__/custom_markdown.cpython-34.pyc -------------------------------------------------------------------------------- /Blog/templatetags/custom_markdown.py: -------------------------------------------------------------------------------- 1 | import markdown2 2 | 3 | from django import template 4 | from django.template.defaultfilters import stringfilter 5 | from django.utils.encoding import force_text 6 | from django.utils.safestring import mark_safe 7 | 8 | register = template.Library() 9 | 10 | 11 | @register.filter(is_safe=True) 12 | @stringfilter 13 | def custom_markdown(value): 14 | return mark_safe(markdown2.markdown(force_text(value), 15 | extras=["fenced-code-blocks", "cuddled-lists", "metadata", "tables", "spoiler"])) 16 | -------------------------------------------------------------------------------- /Blog/templatetags/templates/artical/artical.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% load custom_markdown %} 3 | {% load comments %} 4 | {% block page-content %} 5 | 6 | 7 | 8 |
    9 | 10 |
    11 | 12 |
    13 | 14 | 15 |
    16 | 17 |
    18 | 19 |

    {{ artical.title }}

    20 | 21 |

    22 | {{ artical.category}} 23 | {{ artical.created|date:"m-d h:i"}} 24 | 阅读 ({{ artical.read_times}}) 25 | {% get_comment_count for artical as artical_count %} 26 | 评论 ({{ artical_count }}) 27 |

    28 | 29 |
    30 | 31 | 38 | 39 |
    40 | 41 |

    {{artical.html_content|custom_markdown|removetags:"a span div"}}

    42 | 43 | 44 |
    45 | 46 | 47 |
    48 | 49 |

    Comments

    50 |
    51 |
    52 |
    53 |
    54 |
    55 | 56 | 57 | 58 | 59 | 60 |
    61 |
    62 |
    63 |
    64 |
    65 | 66 |

    Recent Comments

    67 |
    68 | {% get_comment_list for artical as artical_comment_list %} 69 | {% for comment in artical_comment_list %} 70 | 71 |
    72 | {{ comment.name }}发表于{{ comment.submit_date|timesince }} ago 73 |
    74 |

    {{ comment.comment }}

    75 |


    76 | {%endfor %} 77 |
    78 | 79 |
    80 | 81 | 82 |
    83 | 84 | 150 | 151 |
    152 | 153 |
    154 | 155 |
    156 | {% endblock %} 157 | -------------------------------------------------------------------------------- /Blog/templatetags/templates/artical/status_list.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% load comments %} 3 | {% block page-content %} 4 | 5 |
    6 | 7 | 8 |
    9 |
    10 |
    11 |
    {{ status_name }}
    12 | 13 | {% for artical in artical_status_list %} 14 |
    15 |
    16 | {{ 17 |
    18 |
    19 | {{ artical.title }} 20 | 21 | 22 | 23 | {% get_comment_count for artical as artical_count %} 24 | 25 |

    {{ artical.summary}}

    26 |
    27 |
    28 |
    29 | {% endfor %} 30 | 31 | 32 | 33 |
    34 |
      35 | {% if artical_status_list.has_previous %} 36 |
    • 37 | {% else %} 38 |
    • 39 | {% endif %} 40 | 41 | {%for page_number in artical_status_list.paginator.page_range %} 42 | {% if page_number = artical_status_list.number %} 43 |
    • {{ page_number }}
    • 44 | {% else %} 45 |
    • {{ page_number }}
    • 46 | {% endif %} 47 | {% endfor %} 48 | 49 | {% if artical_status_list.has_next %} 50 |
    • 51 | {% else %} 52 |
    • 53 | {% endif %} 54 |
    55 |
    56 | 57 | 58 |
    59 |
    60 | 61 | 62 | 63 | 64 |
    65 |
    热文
    66 |
    67 | {% for popular in popular_list %} 68 |
    69 |
    70 | {{ 71 |
    72 |
    73 | {{ popular.title }} 74 |

    {{ popular.category }} {{ popular.modified|date:"m-d h:i"}}

    75 |
    76 |
    77 |
    78 | {% endfor %} 79 |
    80 |
    81 | 82 | 83 | 84 |
    85 |
    86 |
    87 | {% endblock %} 88 | -------------------------------------------------------------------------------- /Blog/templatetags/templates/base.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Lands&Blog 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 17 | 18 | 21 | 22 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 51 | 52 | {% block page-content %} 53 | {% endblock %} 54 | 55 | 56 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /Blog/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /Blog/upload/logo-tr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/upload/logo-tr.png -------------------------------------------------------------------------------- /Blog/upload/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/upload/logo.png -------------------------------------------------------------------------------- /Blog/upload/user/default_user.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/Blog/upload/user/default_user.jpg -------------------------------------------------------------------------------- /Blog/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls import include, url 2 | from Blog.views import IndexView, ArticalListView, ArticalView, TagListView, StatusListView, AboutMeView 3 | from django.conf import settings 4 | 5 | urlpatterns = [ 6 | url(r'^$', IndexView.as_view(), name='index_view' ), 7 | url(r'^(?P\d+)/', IndexView.as_view() ), 8 | url(r'^upload/(?P.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT }), 9 | url(r'^artical/(?P\w*)$', ArticalListView.as_view(), name='artical_list_view' ), 10 | url(r'^artical/(?P\w*)/(?P\d+)/$', ArticalListView.as_view()), 11 | url(r'^status/(?P\w*)$', StatusListView.as_view(), name='artical_list_view' ), 12 | url(r'^status/(?P\w*)/(?P\d+)/$', StatusListView.as_view()), 13 | url(r'^tag/(?P\w*)$', TagListView.as_view(), name='Tag_list_view' ), 14 | url(r'^tag/(?P\w*)/(?P\d+)/$', TagListView.as_view()), 15 | url(r'^content/(?P.*)$', ArticalView.as_view(), name='artical'), 16 | url(r'^aboutme/', AboutMeView, name='aboutme_view' ), 17 | ] 18 | -------------------------------------------------------------------------------- /LandsBlog/__init__.py: -------------------------------------------------------------------------------- 1 | import pymysql 2 | pymysql.install_as_MySQLdb() 3 | -------------------------------------------------------------------------------- /LandsBlog/__pycache__/__init__.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/LandsBlog/__pycache__/__init__.cpython-34.pyc -------------------------------------------------------------------------------- /LandsBlog/__pycache__/settings.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/LandsBlog/__pycache__/settings.cpython-34.pyc -------------------------------------------------------------------------------- /LandsBlog/__pycache__/urls.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/LandsBlog/__pycache__/urls.cpython-34.pyc -------------------------------------------------------------------------------- /LandsBlog/__pycache__/wsgi.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/LandsBlog/__pycache__/wsgi.cpython-34.pyc -------------------------------------------------------------------------------- /LandsBlog/settings.py: -------------------------------------------------------------------------------- 1 | """ 2 | Django settings for LandsBlog project. 3 | 4 | Generated by 'django-admin startproject' using Django 1.8. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/1.8/topics/settings/ 8 | 9 | For the full list of settings and their values, see 10 | https://docs.djangoproject.com/en/1.8/ref/settings/ 11 | """ 12 | 13 | # Build paths inside the project like this: os.path.join(BASE_DIR, ...) 14 | import os 15 | 16 | BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 17 | 18 | SITE_ROOT = os.path.dirname(os.path.abspath(__file__)) 19 | 20 | WEBSITE_TITLE = 'Lands&Blog' 21 | 22 | WEBSITE_URL = 'http://www.landsblog.com' 23 | 24 | # Quick-start development settings - unsuitable for production 25 | # See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/ 26 | 27 | # SECURITY WARNING: keep the secret key used in production secret! 28 | SECRET_KEY = 'yt8x002qv*k2l&-gpgak#)4gk0g##@vd%@u+u4pi2hi-0!(v)e' 29 | 30 | # SECURITY WARNING: don't run with debug turned on in production! 31 | DEBUG = False 32 | 33 | ALLOWED_HOSTS = ['www.landsblog.com','landsblog.com'] 34 | 35 | SITE_ID = 1 36 | 37 | PAGE_NUM = 10 38 | # Application definition 39 | 40 | INSTALLED_APPS = ( 41 | 'bootstrap_admin', 42 | 'django.contrib.admin', 43 | 'django.contrib.auth', 44 | 'django.contrib.contenttypes', 45 | 'django.contrib.sessions', 46 | 'django.contrib.messages', 47 | 'django.contrib.staticfiles', 48 | 'django.contrib.sites', 49 | 'django_comments', 50 | 'Blog', 51 | 'SelfBlog', 52 | ) 53 | 54 | MIDDLEWARE_CLASSES = ( 55 | 'django.contrib.sessions.middleware.SessionMiddleware', 56 | 'django.middleware.common.CommonMiddleware', 57 | # 'django.middleware.csrf.CsrfViewMiddleware', 58 | 'django.contrib.auth.middleware.AuthenticationMiddleware', 59 | 'django.middleware.gzip.GZipMiddleware', 60 | 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 61 | 'django.contrib.messages.middleware.MessageMiddleware', 62 | 'django.middleware.clickjacking.XFrameOptionsMiddleware', 63 | 'django.middleware.security.SecurityMiddleware', 64 | ) 65 | 66 | ROOT_URLCONF = 'LandsBlog.urls' 67 | 68 | TEMPLATES = [ 69 | { 70 | 'BACKEND': 'django.template.backends.django.DjangoTemplates', 71 | 'DIRS': [], 72 | 'APP_DIRS': True, 73 | 'OPTIONS': { 74 | 'context_processors': [ 75 | 'django.template.context_processors.debug', 76 | 'django.template.context_processors.request', 77 | 'django.contrib.auth.context_processors.auth', 78 | 'django.contrib.messages.context_processors.messages', 79 | ], 80 | }, 81 | }, 82 | ] 83 | 84 | WSGI_APPLICATION = 'LandsBlog.wsgi.application' 85 | 86 | 87 | # Database 88 | # https://docs.djangoproject.com/en/1.8/ref/settings/#databases 89 | 90 | DATABASES = { 91 | 'default': { 92 | 'ENGINE': 'django.db.backends.sqlite3', 93 | 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 94 | #'ENGINE': 'django.db.backends.mysql', 95 | #'NAME': 'LandsBlog', 96 | #'USER':'root', 97 | #'PASSWORD':'my380788433', 98 | #'HOST':'', 99 | #'PORT':'', 100 | } 101 | } 102 | 103 | 104 | # Internationalization 105 | # https://docs.djangoproject.com/en/1.8/topics/i18n/ 106 | 107 | LANGUAGE_CODE = 'zh-hans' 108 | 109 | TIME_ZONE = 'Asia/Shanghai' 110 | 111 | USE_I18N = True 112 | 113 | USE_L10N = True 114 | 115 | USE_TZ = False 116 | 117 | # Static files (CSS, JavaScript, Images) 118 | # https://docs.djangoproject.com/en/1.8/howto/static-files/ 119 | 120 | STATIC_URL = '/static/' 121 | 122 | MEDIA_ROOT = BASE_DIR + '/Blog/upload/' 123 | 124 | MEDIA_URL = '/upload/' 125 | -------------------------------------------------------------------------------- /LandsBlog/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls import include, url 2 | from django.contrib import admin 3 | 4 | urlpatterns = [ 5 | # Examples: 6 | # url(r'^$', 'LandsBlog.views.home', name='home'), 7 | # url(r'^blog/', include('blog.urls')), 8 | 9 | url(r'^login_admin/', include(admin.site.urls)), 10 | url(r'', include('Blog.urls')), 11 | url(r'blog/', include('SelfBlog.urls')), 12 | ] 13 | -------------------------------------------------------------------------------- /LandsBlog/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for RSSFeed project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | from os.path import join,dirname,abspath 12 | 13 | PROJECT_DIR = dirname(dirname(abspath(__file__))) 14 | import sys 15 | sys.path.insert(0,PROJECT_DIR) 16 | 17 | os.environ["DJANGO_SETTINGS_MODULE"] = "LandsBlog.settings" 18 | 19 | from django.core.wsgi import get_wsgi_application 20 | application = get_wsgi_application() 21 | -------------------------------------------------------------------------------- /SelfBlog/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/SelfBlog/__init__.py -------------------------------------------------------------------------------- /SelfBlog/__pycache__/__init__.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/SelfBlog/__pycache__/__init__.cpython-34.pyc -------------------------------------------------------------------------------- /SelfBlog/__pycache__/admin.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/SelfBlog/__pycache__/admin.cpython-34.pyc -------------------------------------------------------------------------------- /SelfBlog/__pycache__/models.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/SelfBlog/__pycache__/models.cpython-34.pyc -------------------------------------------------------------------------------- /SelfBlog/__pycache__/urls.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/SelfBlog/__pycache__/urls.cpython-34.pyc -------------------------------------------------------------------------------- /SelfBlog/__pycache__/views.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/SelfBlog/__pycache__/views.cpython-34.pyc -------------------------------------------------------------------------------- /SelfBlog/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from .models import Blog, Category, Tag 3 | 4 | # Register your models here. 5 | 6 | # —————————————————BlogAdmin—————————————————— 7 | class BlogAdmin(admin.ModelAdmin): 8 | list_display = ('title', 'category', 'status', 'created', 'modified','read_times','top', 'id') 9 | search_fields = ('title', 'markdown_content') 10 | # 状态选择器 11 | list_filter = ('status', 'category', 'tags', 'created', 'modified', 'created') 12 | # 关联字段,slug会将title字段中的英文字符自动填充到slug字段 13 | prepopulated_fields = {'slug': ('title',)} 14 | actions = ['make_blog_public'] 15 | 16 | def make_blog_public(self, request, queryset): 17 | # queryset参数为选中的Story对象 18 | rows_updated = queryset.update(status=3) 19 | message_bit = "%s 篇博客" % rows_updated 20 | self.message_user(request, "%s 已成功标记为已发布状态." % message_bit) 21 | make_blog_public.short_description = u'修改选中博客为已发布状态' 22 | 23 | 24 | # —————————————————CategoryAdmin—————————————————— 25 | class CategoryAdmin(admin.ModelAdmin): 26 | prepopulated_fields = {'slug': ('label',)} 27 | list_display = ('label','html_title','slug') 28 | 29 | 30 | # —————————————————TagAdmin—————————————————— 31 | class TagAdmin(admin.ModelAdmin): 32 | list_display = ('label',) 33 | prepopulated_fields = {'slug': ('label',)} 34 | 35 | 36 | admin.site.register(Blog, BlogAdmin) 37 | admin.site.register(Category, CategoryAdmin) 38 | admin.site.register(Tag, TagAdmin) 39 | -------------------------------------------------------------------------------- /SelfBlog/migrations/0001_initial.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | from django.db import models, migrations 5 | import datetime 6 | from django.conf import settings 7 | 8 | 9 | class Migration(migrations.Migration): 10 | 11 | dependencies = [ 12 | migrations.swappable_dependency(settings.AUTH_USER_MODEL), 13 | ] 14 | 15 | operations = [ 16 | migrations.CreateModel( 17 | name='Blog', 18 | fields=[ 19 | ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True, serialize=False)), 20 | ('title', models.CharField(verbose_name='博客', max_length=100)), 21 | ('slug', models.SlugField(verbose_name='简短标题')), 22 | ('img', models.ImageField(verbose_name='blog图片', default='blog/blog-default.jpg', upload_to='blog')), 23 | ('summary', models.TextField(verbose_name='摘要', max_length=200, null=True, blank=True)), 24 | ('markdown_content', models.TextField(verbose_name='Markdown内容')), 25 | ('html_content', models.TextField(verbose_name='转换Html内容', editable=False)), 26 | ('status', models.IntegerField(verbose_name='发布状态', choices=[(1, '草稿状态'), (2, '待批准状态'), (3, '已发布状态'), (4, '已存档')], default=1)), 27 | ('created', models.DateTimeField(verbose_name='创建时间', default=datetime.datetime.now)), 28 | ('modified', models.DateTimeField(verbose_name='修改时间', default=datetime.datetime.now)), 29 | ('read_times', models.PositiveIntegerField(verbose_name='阅读次数', default=0)), 30 | ('zan_times', models.PositiveIntegerField(verbose_name='打赏次数', null=True, default=0)), 31 | ('top', models.BooleanField(verbose_name='是否推荐', default=False)), 32 | ], 33 | options={ 34 | 'verbose_name': '博客', 35 | 'verbose_name_plural': '博客', 36 | 'ordering': ['-modified', '-created'], 37 | }, 38 | ), 39 | migrations.CreateModel( 40 | name='Category', 41 | fields=[ 42 | ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True, serialize=False)), 43 | ('label', models.CharField(max_length=50, blank=True)), 44 | ('slug', models.SlugField()), 45 | ], 46 | options={ 47 | 'verbose_name': '分类', 48 | 'verbose_name_plural': '分类', 49 | }, 50 | ), 51 | migrations.CreateModel( 52 | name='Tag', 53 | fields=[ 54 | ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True, serialize=False)), 55 | ('label', models.CharField(verbose_name='标签', max_length=20)), 56 | ('slug', models.SlugField()), 57 | ], 58 | options={ 59 | 'verbose_name': '标签', 60 | 'verbose_name_plural': '标签', 61 | }, 62 | ), 63 | migrations.AddField( 64 | model_name='blog', 65 | name='category', 66 | field=models.ForeignKey(verbose_name='分类', to='SelfBlog.Category'), 67 | ), 68 | migrations.AddField( 69 | model_name='blog', 70 | name='owner', 71 | field=models.ForeignKey(verbose_name='发布者', related_name='self_blog_user', to=settings.AUTH_USER_MODEL), 72 | ), 73 | migrations.AddField( 74 | model_name='blog', 75 | name='tags', 76 | field=models.ManyToManyField(verbose_name='标签', to='SelfBlog.Tag'), 77 | ), 78 | ] 79 | -------------------------------------------------------------------------------- /SelfBlog/migrations/0002_auto_20160728_1136.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | from django.db import models, migrations 5 | 6 | 7 | class Migration(migrations.Migration): 8 | 9 | dependencies = [ 10 | ('SelfBlog', '0001_initial'), 11 | ] 12 | 13 | operations = [ 14 | migrations.AddField( 15 | model_name='category', 16 | name='html_description', 17 | field=models.CharField(max_length=80, blank=True, null=True), 18 | ), 19 | migrations.AddField( 20 | model_name='category', 21 | name='html_keywords', 22 | field=models.CharField(max_length=40, blank=True, null=True), 23 | ), 24 | migrations.AddField( 25 | model_name='category', 26 | name='html_title', 27 | field=models.CharField(max_length=20, blank=True, null=True), 28 | ), 29 | ] 30 | -------------------------------------------------------------------------------- /SelfBlog/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/SelfBlog/migrations/__init__.py -------------------------------------------------------------------------------- /SelfBlog/migrations/__pycache__/0001_initial.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/SelfBlog/migrations/__pycache__/0001_initial.cpython-34.pyc -------------------------------------------------------------------------------- /SelfBlog/migrations/__pycache__/0002_auto_20160728_1136.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/SelfBlog/migrations/__pycache__/0002_auto_20160728_1136.cpython-34.pyc -------------------------------------------------------------------------------- /SelfBlog/migrations/__pycache__/__init__.cpython-34.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/SelfBlog/migrations/__pycache__/__init__.cpython-34.pyc -------------------------------------------------------------------------------- /SelfBlog/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | from django.contrib.auth.models import User 3 | from django.core.urlresolvers import reverse 4 | from markdown import markdown 5 | from markdown import markdown 6 | import datetime 7 | 8 | # Create your models here. 9 | 10 | VIEWABLE_STATUS = [3,4] 11 | # 实例化manager对象 12 | class ViewableManager(models.Manager): 13 | def get_queryset(self): 14 | # 调用父类的方法,在原来返回的QuerySet的基础上返回新的QuerySet 15 | default_queryset = super(ViewableManager, self).get_queryset() 16 | return default_queryset.filter(status__in = VIEWABLE_STATUS) 17 | 18 | 19 | # —————————————————Tag—————————————————— 20 | class Tag(models.Model): 21 | label = models.CharField(max_length=20, verbose_name=u'标签' ) 22 | slug = models.SlugField() 23 | 24 | class Meta: 25 | verbose_name_plural = verbose_name = u'标签' 26 | 27 | def __str__(self): 28 | return self.label 29 | 30 | 31 | # —————————————————Category—————————————————— 32 | class Category(models.Model): 33 | label = models.CharField(blank=True, max_length=50) 34 | slug = models.SlugField() 35 | html_title = models.CharField(blank=True, null=True, max_length=20) 36 | html_description = models.CharField(blank=True, null=True, max_length=80) 37 | html_keywords = models.CharField(blank=True, null=True, max_length=40) 38 | 39 | class Meta: 40 | verbose_name_plural = verbose_name = '分类' 41 | 42 | def __str__(self): 43 | return self.label 44 | 45 | 46 | # —————————————————Blog—————————————————— 47 | class Blog(models.Model): 48 | #A hunk of content for our site, generally corresponding to a page 49 | 50 | #编辑Blog状态 51 | STATUS_CHOICES = ( 52 | (1, '草稿状态'), 53 | (2, '待批准状态'), 54 | (3, '已发布状态'), 55 | (4, '已存档'), 56 | ) 57 | 58 | 59 | # 浏览器的标题栏和渲染页面上显示的标题 60 | title = models.CharField(max_length=100, verbose_name=u'博客') 61 | # 页面在url里的唯一的名字 62 | slug = models.SlugField(verbose_name=u'简短标题') 63 | # 文章的类别,指向Category的一对多的外键 64 | category =models.ForeignKey(Category, verbose_name=u'分类') 65 | # 设置Blog图片 66 | img = models.ImageField(upload_to='blog', verbose_name=u'blog图片', default='blog/blog-default.jpg') 67 | # 文章内容摘要 68 | summary = models.TextField(blank=True, null=True, verbose_name=u'摘要',max_length=200) 69 | # Markdown格式的页面正文 70 | markdown_content = models.TextField(verbose_name=u'Markdown内容') 71 | # HTML格式的页面文本,编辑时自动渲染,为了避免和Markdown编辑混淆,禁止编辑 72 | html_content = models.TextField(editable=False, verbose_name=u'转换Html内容') 73 | # 拥有这个内容的admin用户:指向User的一对多的外键 74 | owner = models.ForeignKey(User, verbose_name=u'发布者', related_name=u'self_blog_user') 75 | # 编辑Blog状态,默认为待编辑状态 76 | status = models.IntegerField(choices=STATUS_CHOICES, default=1, verbose_name=u'发布状态') 77 | # Blog创建的时间,自动设置当前时间 78 | created = models.DateTimeField(default=datetime.datetime.now, verbose_name=u'创建时间') 79 | # Blog最后一次修改的时间 80 | modified = models.DateTimeField(default=datetime.datetime.now, verbose_name=u'修改时间') 81 | # Blog阅读次数 82 | read_times = models.PositiveIntegerField(verbose_name=u'阅读次数', default=0) 83 | # Blog打赏次数 84 | zan_times = models.PositiveIntegerField(verbose_name=u'打赏次数', default=0, null=True) 85 | # Blog设置推荐 86 | top = models.BooleanField(verbose_name=u'是否推荐', default=False) 87 | # 文章标签 88 | tags = models.ManyToManyField(Tag, verbose_name=u'标签') 89 | 90 | def save(self, *args, **kwargs): 91 | self.html_content = markdown(self.markdown_content) 92 | self.modified = datetime.datetime.now() 93 | super(Blog, self).save( *args, **kwargs) 94 | 95 | 96 | class Meta: 97 | ordering = ['-modified','-created'] 98 | verbose_name_plural = verbose_name = '博客' 99 | 100 | 101 | def get_absolute_url(self): 102 | return reverse('blog', args=(self.slug,)) 103 | 104 | admin_objects = models.Manager() # 默认管理器 105 | objects = ViewableManager() 106 | 107 | def __str__(self): 108 | return self.title 109 | 110 | 111 | -------------------------------------------------------------------------------- /SelfBlog/templates/blog/blog_tag_list.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% load comments %} 3 | 4 | {% block page-content %} 5 | 6 | 7 | 8 |
    9 | 10 |
    11 | 12 |
    13 | 14 | 15 | {% for blog in blog_tag_list %} 16 |
    17 | 18 |
    19 |

    {{ blog.category }}

    20 | 21 |

    {{ blog.title }}

    22 | 23 |
    24 | 25 | 26 |
    27 | 28 | 29 | {% get_comment_count for blog as blog_count %} 30 |

    发布于 {{ blog.created|date:"m-d h:i"}} 阅读 ({{ blog.read_times }}) 评论 ({{ blog_count }})

    31 |

    {{blog.summary }}

    32 |
    33 | Continue reading 34 |
    35 | 36 |
    37 |
      38 | {% for tag in blog.tags.select_related %} 39 |
    • {{ tag }}
    • 40 | {% endfor %} 41 |
    42 | 43 |
    44 | 45 |
    46 | {% endfor %} 47 | 48 | 49 | 50 |
      51 | {% if blog_tag_list.has_previous %} 52 | 53 | {% else %} 54 | 55 | {% endif %} 56 | 57 | {% for page_number in blog_tag_list.paginator.page_range %} 58 | {% if page_number = blog_tag_list.number %} 59 |
    • {{ page_number }}
    • 60 | {% else %} 61 |
    • {{ page_number }}
    • 62 | {% endif %} 63 | {% endfor %} 64 | {% if blog_tag_list.has_next %} 65 | 66 | {% else %} 67 | 68 | {% endif %} 69 |
    70 | 71 |
    72 | 73 | 156 | 157 |
    158 | 159 |
    160 | 161 |
    162 | {% endblock %} 163 | -------------------------------------------------------------------------------- /SelfBlog/templates/blog_index.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% load comments %} 3 | 4 | {% block page-content %} 5 | 6 | 7 | 8 |
    9 | 10 |
    11 | 12 |
    13 | 14 | 15 | {% for blog in blog_all_list %} 16 |
    17 | 18 |
    19 |

    {{ blog.category }}

    20 | 21 |

    {{ blog.title }}

    22 | 23 |
    24 | 25 | 26 |
    27 | 28 | 29 |

    发布于 {{ blog.created|date:"m-d h:i"}} 阅读 ({{ blog.read_times }}) 评论 ()

    30 |

    {{blog.summary }}

    31 |
    32 | Continue reading 33 |
    34 | 35 |
    36 |
      37 | {% for tag in blog.tags.select_related %} 38 |
    • {{ tag }}
    • 39 | {% endfor %} 40 |
    41 | 42 |
    43 | 44 |
    45 | {% endfor %} 46 | 47 | 48 | 49 |
      50 | {% if blog_all_list.has_previous %} 51 | 52 | {% else %} 53 | 54 | {% endif %} 55 | 56 | {% for page_number in blog_all_list.paginator.page_range %} 57 | {% if page_number = blog_all_list.number %} 58 |
    • {{ page_number }}
    • 59 | {% else %} 60 |
    • {{ page_number }}
    • 61 | {% endif %} 62 | {% endfor %} 63 | {% if artical_list.has_next %} 64 | 65 | {% else %} 66 | 67 | {% endif %} 68 |
    69 | 70 |
    71 | 72 | 155 | 156 |
    157 | 158 |
    159 | 160 |
    161 | {% endblock %} 162 | -------------------------------------------------------------------------------- /SelfBlog/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /SelfBlog/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls import include, url 2 | from SelfBlog.views import IndexView, BlogView, TagListView, CategoryListView 3 | from django.conf import settings 4 | 5 | urlpatterns = [ 6 | url(r'^$', IndexView.as_view(), name='blog'), 7 | url(r'(?P\d+)$', IndexView.as_view()), 8 | url(r'upload/(?P.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT }), 9 | url(r'content/(?P.*)$', BlogView.as_view(), name='blog'), 10 | url(r'tag/(?P\w*)$', TagListView.as_view(), name='Tag_list_view' ), 11 | url(r'tag/(?P\w*)/(?P\d+)/$', TagListView.as_view()), 12 | url(r'category/(?P\w*)$', CategoryListView.as_view(), name='Category_list_view' ), 13 | url(r'category/(?P\w*)/(?P\d+)/$', CategoryListView.as_view()), 14 | ] 15 | -------------------------------------------------------------------------------- /admin-static/admin/css/login.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 120px; 3 | } 4 | #content-main { 5 | background: #272727; 6 | border-bottom: 2px solid #444; 7 | border-top: 2px solid #444; 8 | padding: 20px 0; 9 | } 10 | #login-form { 11 | display: block; 12 | margin: 0 auto; 13 | text-align: center; 14 | width: 600px; 15 | } 16 | .logo-admin { 17 | margin:0 auto 20px auto; 18 | display: block; 19 | } 20 | #login-form legend { 21 | border-color: transparent; 22 | color: #fff; 23 | } 24 | #login-form .btn { 25 | transition: background .3s ease-in-out; 26 | } 27 | .password-reset-link { 28 | margin-top: 20px; 29 | } 30 | .toggle-password:hover { 31 | cursor: pointer; 32 | background-color: #ddd; 33 | } 34 | .errornote { 35 | text-align: left; 36 | } 37 | 38 | @media (max-width: 767px) { 39 | body { 40 | padding-top: 60px; 41 | } 42 | .form-row .password { 43 | margin-top: 15px; 44 | } 45 | #login-form { 46 | margin: 0 30px; 47 | width: auto; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /admin-static/admin/img/changelist-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/changelist-bg.gif -------------------------------------------------------------------------------- /admin-static/admin/img/changelist-bg_rtl.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/changelist-bg_rtl.gif -------------------------------------------------------------------------------- /admin-static/admin/img/default-bg-reverse.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/default-bg-reverse.gif -------------------------------------------------------------------------------- /admin-static/admin/img/default-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/default-bg.gif -------------------------------------------------------------------------------- /admin-static/admin/img/deleted-overlay.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/deleted-overlay.gif -------------------------------------------------------------------------------- /admin-static/admin/img/gis/move_vertex_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/gis/move_vertex_off.png -------------------------------------------------------------------------------- /admin-static/admin/img/gis/move_vertex_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/gis/move_vertex_on.png -------------------------------------------------------------------------------- /admin-static/admin/img/icon-no.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/icon-no.gif -------------------------------------------------------------------------------- /admin-static/admin/img/icon-unknown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/icon-unknown.gif -------------------------------------------------------------------------------- /admin-static/admin/img/icon-yes.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/icon-yes.gif -------------------------------------------------------------------------------- /admin-static/admin/img/icon_addlink.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/icon_addlink.gif -------------------------------------------------------------------------------- /admin-static/admin/img/icon_alert.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/icon_alert.gif -------------------------------------------------------------------------------- /admin-static/admin/img/icon_calendar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/icon_calendar.gif -------------------------------------------------------------------------------- /admin-static/admin/img/icon_changelink.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/icon_changelink.gif -------------------------------------------------------------------------------- /admin-static/admin/img/icon_clock.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/icon_clock.gif -------------------------------------------------------------------------------- /admin-static/admin/img/icon_deletelink.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/icon_deletelink.gif -------------------------------------------------------------------------------- /admin-static/admin/img/icon_error.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/icon_error.gif -------------------------------------------------------------------------------- /admin-static/admin/img/icon_searchbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/icon_searchbox.png -------------------------------------------------------------------------------- /admin-static/admin/img/icon_success.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/icon_success.gif -------------------------------------------------------------------------------- /admin-static/admin/img/inline-delete-8bit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/inline-delete-8bit.png -------------------------------------------------------------------------------- /admin-static/admin/img/inline-delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/inline-delete.png -------------------------------------------------------------------------------- /admin-static/admin/img/inline-restore-8bit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/inline-restore-8bit.png -------------------------------------------------------------------------------- /admin-static/admin/img/inline-restore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/inline-restore.png -------------------------------------------------------------------------------- /admin-static/admin/img/inline-splitter-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/inline-splitter-bg.gif -------------------------------------------------------------------------------- /admin-static/admin/img/nav-bg-grabber.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/nav-bg-grabber.gif -------------------------------------------------------------------------------- /admin-static/admin/img/nav-bg-reverse.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/nav-bg-reverse.gif -------------------------------------------------------------------------------- /admin-static/admin/img/nav-bg-selected.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/nav-bg-selected.gif -------------------------------------------------------------------------------- /admin-static/admin/img/nav-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/nav-bg.gif -------------------------------------------------------------------------------- /admin-static/admin/img/selector-icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/selector-icons.gif -------------------------------------------------------------------------------- /admin-static/admin/img/selector-search.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/selector-search.gif -------------------------------------------------------------------------------- /admin-static/admin/img/sorting-icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/sorting-icons.gif -------------------------------------------------------------------------------- /admin-static/admin/img/tooltag-add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/tooltag-add.png -------------------------------------------------------------------------------- /admin-static/admin/img/tooltag-arrowright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/admin/img/tooltag-arrowright.png -------------------------------------------------------------------------------- /admin-static/admin/js/jquery.init.js: -------------------------------------------------------------------------------- 1 | /* Puts the included jQuery into our own namespace using noConflict and passing 2 | * it 'true'. This ensures that the included jQuery doesn't pollute the global 3 | * namespace (i.e. this preserves pre-existing values for both window.$ and 4 | * window.jQuery). 5 | */ 6 | var django = django || {}; 7 | django.jQuery = jQuery.noConflict(true); 8 | -------------------------------------------------------------------------------- /admin-static/bootstrap_admin/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/bootstrap_admin/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /admin-static/bootstrap_admin/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/bootstrap_admin/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /admin-static/bootstrap_admin/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/bootstrap_admin/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /admin-static/bootstrap_admin/img/logo-140x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NoharaHiroshi/LandsBlog/b6f818bab65f3ab586e56143ad0adb7f065f5fff/admin-static/bootstrap_admin/img/logo-140x60.png -------------------------------------------------------------------------------- /admin-static/bootstrap_admin/js/base.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * IE10 viewport hack for Surface/desktop Windows 8 bug 3 | * Copyright 2014 Twitter, Inc. 4 | * Licensed under the Creative Commons Attribution 3.0 Unported License. For 5 | * details, see http://creativecommons.org/licenses/by/3.0/. 6 | */ 7 | 8 | // See the Getting Started docs for more information: 9 | // http://getbootstrap.com/getting-started/#support-ie10-width 10 | 11 | (function () { 12 | 'use strict'; 13 | if (navigator.userAgent.match(/IEMobile\/10\.0/)) { 14 | var msViewportStyle = document.createElement('style') 15 | msViewportStyle.appendChild( 16 | document.createTextNode( 17 | '@-ms-viewport{width:auto!important}' 18 | ) 19 | ) 20 | document.querySelector('head').appendChild(msViewportStyle) 21 | } 22 | })(); 23 | 24 | /*! jquery.cookie v1.4.1 | MIT */ 25 | !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?a(require("jquery")):a(django.jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}}); 26 | 27 | (function ($) { 28 | $(document).ready(function(){ 29 | var show_hide_sidebar_menu = function () { 30 | hidden_menu = $('#sidebar-menu').data('hidden'); 31 | main_classes = 'col-xs-6 col-xs-offset-6 col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2'; 32 | if (hidden_menu) { 33 | $('.main').addClass(main_classes).removeClass('col-sm-12'); 34 | $('.sidebar-menu').css('left', '0').data('hidden', false); 35 | $('.django-admin-title').hide(); 36 | $.removeCookie('hidden_sidebar_menu', {path: '/'}); 37 | } else { 38 | $('.main').removeClass(main_classes).addClass('col-sm-12'); 39 | $('.sidebar-menu').css('left', '-50%').data('hidden', true); 40 | $('.django-admin-title').fadeIn(); 41 | $.cookie('hidden_sidebar_menu', true, {path: '/'}); 42 | } 43 | }; 44 | if (!$('body').hasClass('popup')) { 45 | if ($.cookie('hidden_sidebar_menu')) { 46 | /* always show on change_list.html */ 47 | if (!$('body').hasClass('change-list')) { 48 | show_hide_sidebar_menu(); 49 | } 50 | } 51 | $('.show-hide-sidebar-menu').on('click', function(e){ 52 | show_hide_sidebar_menu(); 53 | e.preventDefault(); 54 | }); 55 | } 56 | // list models 57 | $('.nav-sidebar li:first-child a').on('click', function () { 58 | var $nav_sidebar = $(this).closest('.nav-sidebar'); 59 | if ($nav_sidebar.hasClass('show-models')) { 60 | $nav_sidebar.removeClass('show-models'); 61 | } else { 62 | $nav_sidebar.addClass('show-models'); 63 | } 64 | return false; 65 | }); 66 | }); 67 | })(django.jQuery); 68 | -------------------------------------------------------------------------------- /manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import sys 4 | 5 | if __name__ == "__main__": 6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "LandsBlog.settings") 7 | 8 | from django.core.management import execute_from_command_line 9 | 10 | execute_from_command_line(sys.argv) 11 | -------------------------------------------------------------------------------- /readme.txt: -------------------------------------------------------------------------------- 1 | 这是一个集合订阅内容&个人博客的Django项目。 2 | 3 | 配置:Django1.8 + Python3.4 + Bootstrap3.0 4 | 5 | 网站已经上线:http://www.landsblog.com 项目仍在不断更新。 6 | 7 | 目前项目集成: 8 | |-1.订阅功能:自动订阅虎嗅、人人都是产品经理、果壳网等60多个IT资讯网站内容,每4小时自动更新推送至网站首页。 9 | |-2.个人博客:普通的个人博客功能,包含博客分类、推荐博客、阅读排行榜、热门标签板块。 10 | |-3.评论功能:Django自带评论模块Django-comments,并加以修改。 11 | 12 | 13 | -------------------------------------------------------------------------------- /uwsgi.ini: -------------------------------------------------------------------------------- 1 | [uwsgi] 2 | socket= 127.0.0.1:9090 3 | chdir=/alidata/django-sites/LandsBlog 4 | wsgi-file=/alidata/django-sites/LandsBlog/LandsBlog/wsgi.py 5 | uid=515 6 | gid=515 7 | processes=4 8 | threads=2 9 | stats=127.0.0.1:1080 10 | --------------------------------------------------------------------------------